<?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>160407</bug_id>
          
          <creation_ts>2016-08-01 09:45:36 -0700</creation_ts>
          <short_desc>[Fetch API] Pass directly FetchRequest fetch options to ThreadableLoader</short_desc>
          <delta_ts>2016-08-01 23:48:20 -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 Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151937</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216126</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-01 09:45:36 -0700</bug_when>
    <thetext>We should pass directly FetchRequest fetch options to ThreadableLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216130</commentid>
    <comment_count>1</comment_count>
      <attachid>285016</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-01 09:51:47 -0700</bug_when>
    <thetext>Created attachment 285016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216131</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-01 09:53:11 -0700</bug_when>
    <thetext>Attachment 285016 did not pass style-queue:


ERROR: Source/WebCore/loader/ResourceLoaderOptions.h:86:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216397</commentid>
    <comment_count>3</comment_count>
      <attachid>285077</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-01 23:18:09 -0700</bug_when>
    <thetext>Created attachment 285077
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216398</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-01 23:20:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created attachment 285077 [details]
&gt; Patch for landing

Updating patch for win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216399</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-01 23:21:05 -0700</bug_when>
    <thetext>Attachment 285077 did not pass style-queue:


ERROR: Source/WebCore/loader/ResourceLoaderOptions.h:86:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216406</commentid>
    <comment_count>6</comment_count>
      <attachid>285077</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-01 23:48:16 -0700</bug_when>
    <thetext>Comment on attachment 285077
Patch for landing

Clearing flags on attachment: 285077

Committed r204014: &lt;http://trac.webkit.org/changeset/204014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216407</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-01 23:48:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285016</attachid>
            <date>2016-08-01 09:51:47 -0700</date>
            <delta_ts>2016-08-01 23:18:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160407-20160801185026.patch</filename>
            <type>text/plain</type>
            <size>60274</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWMyMDBiZGVmYTljYjcx
NGVlNjk4MGQ0NTZiNzg0ZTI2OWRmZDMzZC4uMmNjNDI5YTdkNGQwYzEwZDRhNTFiZTBlMDg4NmNh
YjFiYmE1MTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxNi0wOC0wMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gUGFz
cyBkaXJlY3RseSBGZXRjaFJlcXVlc3QgZmV0Y2ggb3B0aW9ucyB0byBUaHJlYWRhYmxlTG9hZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFu
Z2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgQWRkZWQgYSBSZXNvdXJjZUxvYWRlck9wdGlvbnMg
Y29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIEZldGNoT3B0aW9ucyBhcyBpbnB1dC4KKyAgICAgICAg
UmVtb3ZlZCBzZXR0ZXJzIGFuZCBnZXR0ZXJzIG9mIFJlc291cmNlTG9hZGVyT3B0aW9ucyBhcyBp
dCBpcyBhIHN0cnVjdC4KKyAgICAgICAgVXBkYXRlZCBtZW1iZXIgZmllbGRzIGFjY29yZGluZ2x5
LgorCisgICAgICAgIFVwZGF0ZWQgY29kZSBhY2NvcmRpbmdseS4KKyAgICAgICAgUmVtb3ZlZCBl
eHBsaWNpdCBvcHRpb24gc2V0dGluZyBpZiBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdCB2
YWx1ZS4KKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpj
YWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGZpbGVh
cGkvRmlsZVJlYWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9h
ZGVyOjpzdGFydCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ck5ldHdvcmtBZ2VudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmln
aW5QcmVmbGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlcjo6dmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZSk6CisgICAgICAgIChXZWJD
b3JlOjpDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0KToKKyAgICAg
ICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3Jp
Z2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6Om1ha2VTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0
U3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6
OlJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjppbml0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcjo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YU9yQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nT25lUGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cEZvckVycm9yKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzZXRTZW5kQ2FsbGJhY2tQb2xp
Y3kpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFNuaWZmQ29udGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW5jbHVkZUNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpSZXNvdXJjZUxvYWRlck9w
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpzZW5kTG9h
ZENhbGxiYWNrcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9w
dGlvbnM6OnNldFNlbmRMb2FkQ2FsbGJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c25pZmZDb250ZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c2V0U25pZmZDb250ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6ZGF0YUJ1ZmZlcmlu
Z1BvbGljeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlv
bnM6OnNldERhdGFCdWZmZXJpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJPcHRpb25zOjphbGxvd0NyZWRlbnRpYWxzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c2V0QWxsb3dDcmVkZW50aWFscyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OnNlY3Vy
aXR5Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRp
b25zOjpzZXRTZWN1cml0eUNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyT3B0aW9uczo6Y2VydGlmaWNhdGVJbmZvUG9saWN5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c2V0Q2VydGlmaWNhdGVJbmZvUG9s
aWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6
Y29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25z
OjpkZWZlcnNMb2FkaW5nUG9saWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyT3B0aW9uczo6c2V0RGVmZXJzTG9hZGluZ1BvbGljeSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OmNhY2hpbmdQb2xpY3kpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpzZXRDYWNoaW5n
UG9saWN5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJhY2tMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OnNldERhdGFCdWZmZXJpbmdQb2xpY3kpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2hvdWxkU2VuZFJlc291cmNl
TG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZGF0YUJ1
ZmZlcmluZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6YWxsb3dz
Q2FjaGluZyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0QXNQb3RlbnRpYWxseUNyb3Nz
T3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmFsbG93c0NhY2hpbmcp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6
OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6CisgICAgICAgICogbG9hZGVyL21h
Yy9SZXNvdXJjZUxvYWRlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
Ojp3aWxsQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGFBcnJheSk6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFNvdXJjZTo6Y29ubmVjdCk6CisgICAgICAgICogc3R5bGUv
U3R5bGVQZW5kaW5nUmVzb3VyY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpsb2Fk
UGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpsb2FkUGVuZGluZ1NWR0Zp
bHRlcnMpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UpOgorICAgICAg
ICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6dXBkYXRlRXh0ZXJuYWxE
b2N1bWVudCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKwogMjAxNi0wOC0wMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubmZAZ21haWwuY29tPgogCiAgICAgICAgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIFJl
c291cmNlUmVxdWVzdCBjb3BpZXMgaW4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDc3Y2FmZDAzMDYx
MmQxNzU2MDMzNWM2Mjk2OTVjZTdjNTQ3Y2I1M2QuLjc4Y2FlN2E0MDViY2Q4YTRkOWQwZjE5YzFk
OWFlOTMwNDc4NTg5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hM
b2FkZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAogI2lu
Y2x1ZGUgIkJsb2JVUkwuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzLmgiCiAjaW5jbHVkZSAiRmV0Y2hCb2R5LmgiCiAjaW5jbHVkZSAiRmV0Y2hMb2FkZXJDbGll
bnQuaCIKICNpbmNsdWRlICJGZXRjaFJlcXVlc3QuaCIKQEAgLTU5LDExICs2MCwxMCBAQCB2b2lk
IEZldGNoTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBCbG9i
JiBibG9iKQogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIik7CiAKICAgICBUaHJlYWRh
YmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFj
a3MoU2VuZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5zZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlm
ZkNvbnRlbnQpOwotICAgIG9wdGlvbnMuc2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEb05vdEJ1ZmZl
ckRhdGEpOworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwor
ICAgIG9wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IERvTm90QnVmZmVyRGF0YTsKICAgICBv
cHRpb25zLnByZWZsaWdodFBvbGljeSA9IENvbnNpZGVyUHJlZmxpZ2h0OwotICAgIG9wdGlvbnMu
c2V0QWxsb3dDcmVkZW50aWFscyhBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBvcHRpb25z
LmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZTsKICAgICBv
cHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9u
cy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IENvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2U7CiAKQEAgLTczLDE3ICs3Myw5IEBAIHZvaWQgRmV0
Y2hMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEJsb2ImIGJs
b2IpCiAKIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3MoU2Vu
ZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5zZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRl
bnQpOwotICAgIG9wdGlvbnMuc2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEb05vdEJ1ZmZlckRhdGEp
OwotICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gQ29uc2lkZXJQcmVmbGlnaHQ7Ci0gICAg
b3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2U7Ci0KLSAgICAvLyBGSVhNRTogUGFzcyBk
aXJlY3RseSBhbGwgZmV0Y2ggb3B0aW9ucyB0byBsb2FkZXIgb3B0aW9ucy4KLSAgICBvcHRpb25z
LnJlZGlyZWN0ID0gcmVxdWVzdC5mZXRjaE9wdGlvbnMoKS5yZWRpcmVjdDsKLSAgICBvcHRpb25z
Lm1vZGUgPSByZXF1ZXN0LmZldGNoT3B0aW9ucygpLm1vZGU7Ci0gICAgb3B0aW9ucy5jcmVkZW50
aWFscyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCkuY3JlZGVudGlhbHM7CisgICAgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhyZXF1ZXN0LmZldGNoT3B0aW9ucygpLCBDb25zaWRlclBy
ZWZsaWdodCwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwg
U3RyaW5nKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5mZXRjaCkpOworICAgIG9w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOworICAgIG9wdGlvbnMuZGF0
YUJ1ZmZlcmluZ1BvbGljeSA9IERvTm90QnVmZmVyRGF0YTsKIAogICAgIG1fbG9hZGVyID0gVGhy
ZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCZjb250ZXh0LCB0aGlzLCByZXF1ZXN0LmludGVybmFsUmVx
dWVzdCgpLCBvcHRpb25zKTsKICAgICBtX2lzU3RhcnRlZCA9IG1fbG9hZGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDE0ZjJiMTY1OWYyZDU2ZTQx
ZGFmOTNjOTQxNWI3YTAyOTVkNjE0ODcuLjdlNTYzNTU2YWYzNzJiNWI1M2FkNmMyZjczNWU5OTM0
NzY1MDQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBDYWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNo
ZWRGb250KERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBpc1NWRywgYm9vbAogICAgICAgICByZXR1
cm4gbV9jYWNoZWRGb250LmdldCgpOwogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlv
bnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
OwotICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihpc0luaXRp
YXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlID8gQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KG1fcmVzb3VyY2UpKSwgb3B0aW9ucyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VTZXRWYWx1ZS5jcHAKaW5kZXggMjgyYzBhZDM1MTUyNzBlNjgxOThkNDNkYjhjYjdjMzY2OWM1
MjE3OS4uOWQ4NzQxOWJhNDNiMTM4Y2FkMjVhNzViZTZjYjU0MWRmZjZjYTUyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIFN0eWxl
Q2FjaGVkSW1hZ2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJl
c291cmNlTG9hZGVyJiBsb2FkCiAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwogICAgICAgICBpZiAob3B0aW9ucy5tb2Rl
ID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewogICAgICAgICAgICAgQVNTRVJUKGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nl
c3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCAqZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKKyAgICAgICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLCAqZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAg
ICAgICAgICAgIGRldGFjaFBlbmRpbmdJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCmluZGV4IDIyNTNlNWVhZWI5OGNlZmFiM2JkOWFjYjA0ZWEwNjViZmU0NWU3N2MuLjcz
MDU4ZWZhOTk3MDVhMzg1ODFkMjk3ZWM3OGI2MDIxZmY0NGEyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NT
SW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29u
c3QKIAogICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29y
cykgewogICAgICAgICAgICAgQVNTRVJUKGxvYWRlci5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpKTsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCAqbG9hZGVyLmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKKyAgICAgICAgICAgIHVwZGF0ZVJl
cXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCAq
bG9hZGVyLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAg
ICAgICAgICAgIGRldGFjaFBlbmRpbmdJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCmluZGV4IGNhOTg2YTc1ODM5M2JkZWY2NWQ2Zjk4ODQ2ZTU3YzVlZmJkODZjYjUuLjY5
ZGRiMzU1MTVmNzJkYmY5YTkxMjE5MDA1YmM3NmRiMjBmOGE4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKQEAgLTI2MSw3ICsyNjEsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAgICAgaWYgKCFzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNlKG1fZWxlbWVudC5hdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LmlzSW5V
c2VyQWdlbnRTaGFkb3dUcmVlKCkpOwogICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0
aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCk7Ci0gICAgICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiho
YXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGlj
eUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7
CisgICAgICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGhhc0tu
b3duTm9uY2UgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hl
Y2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCiAg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2Vs
ZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKSwgb3B0aW9ucyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IGFlNjgxZTVk
MjUwM2JlMjMxNDM1MTI4ZmE0MmY0ZmEzOWZhZjA4NzYuLjMyNjQxZGVjMmNmY2JiNmZkYzI0YWEx
NzBiMDU2MGNkNjk5OTVlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVy
TG9hZGVyLmNwcApAQCAtODYsMTAgKzg2LDggQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG8KICAg
ICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIkdFVCIpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxs
YmFja3MpOwotICAgIG9wdGlvbnMuc2V0U25pZmZDb250ZW50KERvTm90U25pZmZDb250ZW50KTsK
LSAgICBvcHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xpY3koRG9Ob3RCdWZmZXJEYXRhKTsKLSAg
ICBvcHRpb25zLnByZWZsaWdodFBvbGljeSA9IENvbnNpZGVyUHJlZmxpZ2h0OworICAgIG9wdGlv
bnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOworICAgIG9wdGlvbnMuZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9IERvTm90QnVmZmVyRGF0YTsKICAgICBvcHRpb25zLmNyZWRlbnRpYWxz
ID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZTsKICAgICBvcHRpb25zLm1vZGUg
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5jb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpEb05vdEVuZm9yY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5k
ZXggZTNiYmY1ZGM3Nzk5ZTZkZWIxY2NmYTIyY2YxZjk4MDg2NWZjMWI3Ni4uY2RhYTMxNzM1MmQz
M2RlMGEzM2I0NmEwZGQ5YWRjOWQ2NjE0Mjg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcApAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpw
cm9jZXNzKCkKIAogICAgICAgICBpZiAoZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+YWxsb3dTdHlsZVdpdGhOb25jZShhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhU
TUxOYW1lczo6bm9uY2VBdHRyKSkpIHsKICAgICAgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9u
cyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9w
dGlvbnMoKTsKLSAgICAgICAgICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sp
OworICAgICAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0g
Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrOwogICAgICAg
ICAgICAgcmVxdWVzdC5zZXRPcHRpb25zKG9wdGlvbnMpOwogICAgICAgICB9CiAgICAgICAgIHJl
cXVlc3Quc2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNyb3NzT3JpZ2luKCksIGRvY3VtZW50
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdv
cmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0Fn
ZW50LmNwcAppbmRleCA4MTFjY2JhODk2MTMxNzUwNWQzNTM0OGJhZDQxZTA5OTgzZWVhYjZhLi5l
MTc0NjlhNDdjNGVkZmRmZDJkZGNlZDUxOWRjYjcyNTAzMjE1MDQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtNjcwLDgg
KzY3MCw4IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojpsb2FkUmVzb3VyY2UoRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgcmVxdWVzdC5zZXRIaWRkZW5G
cm9tSW5zcGVjdG9yKHRydWUpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9u
czsKLSAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOyAvLyBT
byB3ZSByZW1vdmUgdGhpcyBmcm9tIG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJzIG9uIGNvbXBs
ZXRpb24uCi0gICAgb3B0aW9ucy5zZXREZWZlcnNMb2FkaW5nUG9saWN5KERlZmVyc0xvYWRpbmdQ
b2xpY3k6OkRpc2FsbG93RGVmZXJzTG9hZGluZyk7IC8vIFNvIHRoZSByZXF1ZXN0IGlzIG5ldmVy
IGRlZmVycmVkLgorICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tz
OyAvLyBTbyB3ZSByZW1vdmUgdGhpcyBmcm9tIG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJzIG9u
IGNvbXBsZXRpb24uCisgICAgb3B0aW9ucy5kZWZlcnNMb2FkaW5nUG9saWN5ID0gRGVmZXJzTG9h
ZGluZ1BvbGljeTo6RGlzYWxsb3dEZWZlcnNMb2FkaW5nOyAvLyBTbyB0aGUgcmVxdWVzdCBpcyBu
ZXZlciBkZWZlcnJlZC4KICAgICBvcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5v
Q29yczsKICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6U2FtZU9yaWdpbjsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50ID0gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAKaW5kZXggNzhjYjc0ZjAzNzdkZDExZTgzYTZjOGI0NjBlNWNlZjJiYTA3NjYwMi4uOWY2
ZjFmMzM2MTY1MjRiMzAyODU0NzZhM2IxM2FlNWEwYmU4NjU0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTY5
LDEyICs2OSwxMiBAQCB2b2lkIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6dmFsaWRhdGVQ
cmVmbGlnaHRSZXNwb25zZShEb2N1bWVudFRocmVhZGFibGVMbwogICAgIH0KIAogICAgIFN0cmlu
ZyBkZXNjcmlwdGlvbjsKLSAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25z
ZSwgbG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzKCksIGxvYWRlci5zZWN1cml0eU9y
aWdpbigpLCBkZXNjcmlwdGlvbikpIHsKKyAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVj
ayhyZXNwb25zZSwgbG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzLCBsb2FkZXIuc2Vj
dXJpdHlPcmlnaW4oKSwgZGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGxvYWRlci5wcmVmbGlnaHRG
YWlsdXJlKGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5h
bCwgMCwgcmVxdWVzdC51cmwoKSwgZGVzY3JpcHRpb24sIFJlc291cmNlRXJyb3I6OlR5cGU6OkFj
Y2Vzc0NvbnRyb2wpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVzdWx0
ID0gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4o
bG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzKCkpOworICAgIGF1dG8gcmVzdWx0ID0g
c3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4obG9h
ZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzKTsKICAgICBpZiAoIXJlc3VsdC0+cGFyc2Uo
cmVzcG9uc2UsIGRlc2NyaXB0aW9uKQogICAgICAgICB8fCAhcmVzdWx0LT5hbGxvd3NDcm9zc09y
aWdpbk1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgZGVzY3JpcHRpb24pCiAgICAgICAgIHx8
ICFyZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVs
ZHMoKSwgZGVzY3JpcHRpb24pKSB7CkBAIC0xMDAsMTUgKzEwMCw4IEBAIHZvaWQgQ3Jvc3NPcmln
aW5QcmVmbGlnaHRDaGVja2VyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UpCiAKIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjpzdGFydFByZWZsaWdodCgp
CiB7Ci0gICAgYXV0byBvcHRpb25zID0gbV9sb2FkZXIub3B0aW9ucygpOworICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gc3RhdGljX2Nhc3Q8RmV0Y2hPcHRpb25zPihtX2xvYWRl
ci5vcHRpb25zKCkpOwogICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzOjpPbWl0OwotICAgIG9wdGlvbnMuc2V0U2VjdXJpdHlDaGVjayhEb1NlY3VyaXR5
Q2hlY2spOwotICAgIC8vIERvbid0IHNuaWZmIGNvbnRlbnQgb3Igc2VuZCBsb2FkIGNhbGxiYWNr
cyBmb3IgdGhlIHByZWZsaWdodCByZXF1ZXN0LgotICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxs
YmFja3MoRG9Ob3RTZW5kQ2FsbGJhY2tzKTsKLSAgICBvcHRpb25zLnNldFNuaWZmQ29udGVudChE
b05vdFNuaWZmQ29udGVudCk7Ci0gICAgLy8gS2VlcCBidWZmZXJpbmcgdGhlIGRhdGEgZm9yIHRo
ZSBwcmVmbGlnaHQgcmVxdWVzdC4KLSAgICBvcHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
QnVmZmVyRGF0YSk7Ci0KICAgICBvcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRp
cmVjdDo6TWFudWFsOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHByZWZsaWdodFJlcXVl
c3QoY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QobV9yZXF1ZXN0LCBtX2xvYWRl
ci5zZWN1cml0eU9yaWdpbigpKSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDRiNzJhZjczZmY3YWI3ZjE3
NDFjMzllZmViMGZlMjllZjI5YzJmNGMuLjJhNTM3NDUyYWEzZTg4OTA2YzlkODVjNjZlNTEzMzY0
YmY1NzIxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwCkBAIC05Niw3ICs5Niw3IEBAIERvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwgVGhyZWFkYWJs
CiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0FsbG93ZWRCeUNvbnRl
bnRTZWN1cml0eVBvbGljeShyZXF1ZXN0LnVybCgpKSk7CiAKLSAgICBtX29wdGlvbnMuc2V0QWxs
b3dDcmVkZW50aWFscygobV9vcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OkluY2x1ZGUgfHwgKG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlv
bnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luICYmIG1fc2FtZU9yaWdpblJlcXVlc3QpKSA/IEFs
bG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOworICAg
IG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gKG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIHx8IChtX29wdGlvbnMuY3JlZGVudGlh
bHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbiAmJiBtX3NhbWVPcmln
aW5SZXF1ZXN0KSkgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzOwogCiAgICAgaWYgKG1fc2FtZU9yaWdpblJlcXVlc3QgfHwgbV9vcHRpb25zLm1v
ZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKICAgICAgICAgbG9hZFJlcXVlc3Qo
V1RGTW92ZShyZXF1ZXN0KSwgRG9TZWN1cml0eUNoZWNrKTsKQEAgLTExOSw3ICsxMTksNyBAQCB2
b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiByZQogICAgICAgICBtYWtlU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nl
c3NSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwogICAgIGVsc2UgewogICAgICAgICBtX3NpbXBs
ZVJlcXVlc3QgPSBmYWxzZTsKLSAgICAgICAgaWYgKENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQoc2VjdXJpdHlPcmlnaW4oKS50b1N0
cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpLCByZXF1
ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpKQorICAgICAgICBp
ZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFBy
ZWZsaWdodChzZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksIHJlcXVlc3QudXJsKCksIG1fb3B0
aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRw
SGVhZGVyRmllbGRzKCkpKQogICAgICAgICAgICAgcHJlZmxpZ2h0U3VjY2VzcyhXVEZNb3ZlKHJl
cXVlc3QpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbWFrZUNyb3NzT3JpZ2luQWNjZXNz
UmVxdWVzdFdpdGhQcmVmbGlnaHQoV1RGTW92ZShyZXF1ZXN0KSk7CkBAIC0xMzcsNyArMTM3LDcg
QEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om1ha2VTaW1wbGVDcm9zc09yaWdpbkFj
Y2Vzc1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCks
IG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkpOworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nl
c3NDb250cm9sKHJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzKTsKICAgICBsb2FkUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBEb1NlY3VyaXR5Q2hl
Y2spOwogfQogCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXIKICAg
ICAgICAgaWYgKG1fc2ltcGxlUmVxdWVzdCkgewogICAgICAgICAgICAgU3RyaW5nIGFjY2Vzc0Nv
bnRyb2xFcnJvckRlc2NyaXB0aW9uOwogICAgICAgICAgICAgYWxsb3dSZWRpcmVjdCA9IGlzVmFs
aWRDcm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKHJlcXVlc3QudXJsKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgKG1fc2FtZU9yaWdpblJlcXVlc3QgfHwgcGFzc2VzQWNjZXNzQ29u
dHJvbENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCks
IHNlY3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSk7CisgICAg
ICAgICAgICAgICAgJiYgKG1fc2FtZU9yaWdpblJlcXVlc3QgfHwgcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBzZWN1
cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKGFsbG93UmVkaXJlY3QpIHsKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIFJlc291cgogICAgICAgICAgICAgbV9zYW1lT3JpZ2luUmVxdWVzdCA9IGZh
bHNlOwogCiAgICAgICAgICAgICBpZiAobV9vcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0
aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pCi0gICAgICAgICAgICAgICAgbV9vcHRpb25z
LnNldEFsbG93Q3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAg
ICAgICAgICAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFsczsKIAogICAgICAgICAgICAgY2xlYW5SZWRpcmVjdGVkUmVxdWVzdEZvckFjY2Vz
c0NvbnRyb2wocmVxdWVzdCk7CiAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIERvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29ucwogCiAgICAgU3RyaW5nIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uOwogICAg
IGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlv
bnM6Ok1vZGU6OkNvcnMpIHsKLSAgICAgICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2so
cmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCksIHNlY3VyaXR5T3JpZ2luKCks
IGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkgeworICAgICAgICBpZiAoIXBhc3Nlc0Fj
Y2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMsIHNl
Y3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkgewogICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbldlYktpdElu
dGVybmFsLCAwLCByZXNwb25zZS51cmwoKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24s
IFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtMzM0LDcgKzMzNCw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpkaWRGYWlsKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
CiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0U3VjY2VzcyhSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIFJlc291cmNlUmVxdWVzdCBhY3R1YWxSZXF1ZXN0
KFdURk1vdmUocmVxdWVzdCkpOwotICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGFj
dHVhbFJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxz
KCkpOworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGFjdHVhbFJlcXVlc3QsIHNl
Y3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKIAogICAgIG1fcHJl
ZmxpZ2h0Q2hlY2tlciA9IE51bGxvcHQ7CiAKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lkIERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgU2VjdXJpdHlDaAogewogICAgIC8vIEFueSBjcmVkZW50aWFsIHNob3VsZCBoYXZlIGJlZW4g
cmVtb3ZlZCBmcm9tIHRoZSBjcm9zcy1zaXRlIHJlcXVlc3RzLgogICAgIGNvbnN0IFVSTCYgcmVx
dWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgbV9vcHRpb25zLnNldFNlY3VyaXR5Q2hlY2so
c2VjdXJpdHlDaGVjayk7CisgICAgbV9vcHRpb25zLnNlY3VyaXR5Q2hlY2sgPSBzZWN1cml0eUNo
ZWNrOwogICAgIEFTU0VSVChtX3NhbWVPcmlnaW5SZXF1ZXN0IHx8IHJlcXVlc3RVUkwudXNlcigp
LmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fc2FtZU9yaWdpblJlcXVlc3QgfHwgcmVxdWVzdFVS
TC5wYXNzKCkuaXNFbXB0eSgpKTsKIApAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
ZWN1cml0eUNoCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KFdURk1v
dmUocmVxdWVzdCksIG9wdGlvbnMpOwogICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5yZXNvdXJjZVRpbWluZ0VuYWJsZWQoKSkKICAgICAgICAgICAg
IG5ld1JlcXVlc3Quc2V0SW5pdGlhdG9yKG1fb3B0aW9ucy5pbml0aWF0b3IpOwotICAgICAgICBu
ZXdSZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRBbGxvd0Nvb2tpZXMobV9vcHRp
b25zLmFsbG93Q3JlZGVudGlhbHMoKSA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAg
ICAgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0QWxsb3dDb29raWVzKG1f
b3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCiAg
ICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7CiAgICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3Vt
ZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFJhd1Jlc291cmNlKG5ld1JlcXVlc3Qp
OwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIGF1
dG8mIGZyYW1lTG9hZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICAgICAg
aWYgKCFmcmFtZUxvYWRlci5taXhlZENvbnRlbnRDaGVja2VyKCkuY2FuUnVuSW5zZWN1cmVDb250
ZW50KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdFVSTCkpCiAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIGlkZW50aWZpZXIgPSBmcmFtZUxvYWRlci5sb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KHJlcXVlc3QsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCksIG1fb3B0
aW9ucy5jbGllbnRDcmVkZW50aWFsUG9saWN5LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOworICAg
ICAgICBpZGVudGlmaWVyID0gZnJhbWVMb2FkZXIubG9hZFJlc291cmNlU3luY2hyb25vdXNseShy
ZXF1ZXN0LCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscywgbV9vcHRpb25zLmNsaWVudENyZWRl
bnRpYWxQb2xpY3ksIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgfQogCiAgICAgaWYgKCFl
cnJvci5pc051bGwoKSAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpIDw9IDApIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IDc2MDIwZTM5YTRjNWMwOTdmNjExZWQ0
NDg0ZWIzM2NmNzY1NmY1YzcuLmQ2MTZmZjgwOGQ1ZTBlYjUwYmI1NmY2YmVhOWU5MGI5NzhiNGJh
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMTc0LDcgKzE3NCw3
IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSBudWxscHRyOwogICAgIGlmICghYXR0
ci5pc051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIpLmlz
RW1wdHkoKSkgewogICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7Ci0gICAgICAg
IG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihlbGVtZW50KCkuaXNJ
blVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246
OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9s
aWN5Q2hlY2spOworICAgICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b24gPSBlbGVtZW50KCkuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LmNvbXBsZXRlVVJMKHNvdXJjZVVS
SShhdHRyKSkpLCBvcHRpb25zKTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoJmVsZW1l
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMzc3
YzA4ZmY3NjRiZGE3M2E0NjM4YjY5MWI2NjlhN2IxYTY0YzMxLi42NTYwMjBhMGFjNjM4YmRmMGFl
YjBhNDQ3NjY4ZmVjNTMzODUyOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVzb3VyY2VM
b2FkZXI6OlJlc291cmNlTG9hZGVyKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25z
IG9wdGlvbnMpCiAgICAgOiBtX2ZyYW1lKCZmcmFtZSkKICAgICAsIG1fZG9jdW1lbnRMb2FkZXIo
ZnJhbWUubG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKSkKLSAgICAsIG1fZGVmZXJzTG9h
ZGluZyhvcHRpb25zLmRlZmVyc0xvYWRpbmdQb2xpY3koKSA9PSBEZWZlcnNMb2FkaW5nUG9saWN5
OjpBbGxvd0RlZmVyc0xvYWRpbmcgJiYgZnJhbWUucGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisg
ICAgLCBtX2RlZmVyc0xvYWRpbmcob3B0aW9ucy5kZWZlcnNMb2FkaW5nUG9saWN5ID09IERlZmVy
c0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZyAmJiBmcmFtZS5wYWdlKCktPmRlZmVy
c0xvYWRpbmcoKSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewogfQpAQCAtMTI1LDkgKzEy
NSw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmluaXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
KQogICAgIH0KICNlbmRpZgogICAgIAotICAgIG1fZGVmZXJzTG9hZGluZyA9IG1fb3B0aW9ucy5k
ZWZlcnNMb2FkaW5nUG9saWN5KCkgPT0gRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNM
b2FkaW5nICYmIG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpOworICAgIG1fZGVmZXJz
TG9hZGluZyA9IG1fb3B0aW9ucy5kZWZlcnNMb2FkaW5nUG9saWN5ID09IERlZmVyc0xvYWRpbmdQ
b2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZyAmJiBtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRp
bmcoKTsKIAotICAgIGlmIChtX29wdGlvbnMuc2VjdXJpdHlDaGVjaygpID09IERvU2VjdXJpdHlD
aGVjayAmJiAhbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxh
eShjbGllbnRSZXF1ZXN0LnVybCgpKSkgeworICAgIGlmIChtX29wdGlvbnMuc2VjdXJpdHlDaGVj
ayA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgIW1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCktPmNhbkRpc3BsYXkoY2xpZW50UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgRnJhbWVM
b2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChtX2ZyYW1lLmdldCgpLCBjbGllbnRSZXF1ZXN0
LnVybCgpLnN0cmluZygpKTsKICAgICAgICAgcmVsZWFzZVJlc291cmNlcygpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0yMDYsMTIgKzIwNiwxMiBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpz
dGFydCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoZnJhbWVMb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgbV9yZXF1
ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fb3B0aW9ucy5zbmlmZkNvbnRlbnQoKSA9PSBT
bmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFt
ZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJz
TG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNvbnRlbnQpOwogfQogCiB2
b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewotICAg
IGlmIChtX29wdGlvbnMuZGVmZXJzTG9hZGluZ1BvbGljeSgpID09IERlZmVyc0xvYWRpbmdQb2xp
Y3k6OkRpc2FsbG93RGVmZXJzTG9hZGluZykKKyAgICBpZiAobV9vcHRpb25zLmRlZmVyc0xvYWRp
bmdQb2xpY3kgPT0gRGVmZXJzTG9hZGluZ1BvbGljeTo6RGlzYWxsb3dEZWZlcnNMb2FkaW5nKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBkZWZlcnM7CkBAIC0yNjgs
MTQgKzI2OCwxNCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCgpCiB9CiAKIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1Bv
bGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KQoteyAKLSAgICBtX29wdGlvbnMuc2V0RGF0YUJ1ZmZl
cmluZ1BvbGljeShkYXRhQnVmZmVyaW5nUG9saWN5KTsgCit7CisgICAgbV9vcHRpb25zLmRhdGFC
dWZmZXJpbmdQb2xpY3kgPSBkYXRhQnVmZmVyaW5nUG9saWN5OwogCiAgICAgLy8gUmVzZXQgYW55
IGFscmVhZHkgYnVmZmVyZWQgZGF0YQogICAgIGlmIChkYXRhQnVmZmVyaW5nUG9saWN5ID09IERv
Tm90QnVmZmVyRGF0YSkKICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBudWxscHRyOwogfQotICAg
IAorCiB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3dpdGNoVG9TdWJzdGl0dXRlUmVzb3VyY2Uo
KQogewogICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRlci0+aXNTdWJzdGl0dXRlTG9hZFBlbmRp
bmcodGhpcykpOwpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERh
dGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZl
ciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewotICAgIGlmICht
X29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVmZmVyRGF0YSkKKyAgICBp
ZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fcmVzb3VyY2VEYXRhIHx8IGRhdGFQYXlsb2FkVHlw
ZSA9PSBEYXRhUGF5bG9hZFdob2xlUmVzb3VyY2UpIHsKQEAgLTM1MCw3ICszNTAsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1f
b3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNlbmRDYWxsYmFja3MpIHsKKyAgICBpZiAo
bV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IFNlbmRDYWxsYmFja3MpIHsKICAgICAgICAg
aWYgKGNyZWF0ZWRSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICAgICBmcmFtZUxvYWRlcigp
LT5ub3RpZmllcigpLmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KG1faWRlbnRpZmll
ciwgZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCk7CiAKQEAgLTQ1OCw4ICs0NTgsOCBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcikKIAogICAgIGlmIChGb3JtRGF0YSogZGF0YSA9IG1fcmVxdWVzdC5odHRwQm9keSgpKQog
ICAgICAgICBkYXRhLT5yZW1vdmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkKCk7Ci0gICAgICAgIAot
ICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2FsbGJhY2tzKQor
CisgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzKQog
ICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJlY2VpdmVSZXNwb25zZSh0aGlz
LCBtX3Jlc3BvbnNlKTsKIH0KIApAQCAtNDg5LDExICs0ODksMTEgQEAgdm9pZCBSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgsIFIKICAgICBSZWY8UmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwog
CiAgICAgYWRkRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgYnVmZmVyLmdldCgpLCBkYXRhUGF5
bG9hZFR5cGUpOwotICAgIAorCiAgICAgLy8gRklYTUU6IElmIHdlIGdldCBhIHJlc291cmNlIHdp
dGggbW9yZSB0aGFuIDJCIGJ5dGVzLCB0aGlzIGNvZGUgd29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5n
LgogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcg
c3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBh
biBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KLSAgICBpZiAobV9vcHRpb25zLnNlbmRM
b2FkQ2FsbGJhY2tzKCkgPT0gU2VuZENhbGxiYWNrcyAmJiBtX2ZyYW1lKQorICAgIGlmIChtX29w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrcyAmJiBtX2ZyYW1lKQogICAg
ICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZl
ciA/IGJ1ZmZlci0+ZGF0YSgpIDogZGF0YSwgYnVmZmVyID8gYnVmZmVyLT5zaXplKCkgOiBsZW5n
dGgsIHN0YXRpY19jYXN0PGludD4oZW5jb2RlZERhdGFMZW5ndGgpKTsKIH0KIApAQCAtNTE5LDcg
KzUxOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KGRv
dWJsZSBmaW5pc2hUaW1lKQogICAgIGlmIChtX25vdGlmaWVkTG9hZENvbXBsZXRlKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9ub3RpZmllZExvYWRDb21wbGV0ZSA9IHRydWU7Ci0gICAgaWYgKG1f
b3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNlbmRDYWxsYmFja3MpCisgICAgaWYgKG1f
b3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzKQogICAgICAgICBmcmFt
ZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZEZpbmlzaExvYWQodGhpcywgZmluaXNoVGltZSk7CiB9
CiAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjbGVhbnVwRm9yRXJy
b3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKG1fbm90aWZpZWRMb2FkQ29t
cGxldGUpCiAgICAgICAgIHJldHVybjsKICAgICBtX25vdGlmaWVkTG9hZENvbXBsZXRlID0gdHJ1
ZTsKLSAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzKCkgPT0gU2VuZENhbGxiYWNr
cyAmJiBtX2lkZW50aWZpZXIpCisgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9
PSBTZW5kQ2FsbGJhY2tzICYmIG1faWRlbnRpZmllcikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+
bm90aWZpZXIoKS5kaWRGYWlsVG9Mb2FkKHRoaXMsIGVycm9yKTsKIH0KIApAQCAtNjc4LDkgKzY3
OCw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUq
KQogCiBib29sIFJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpCiB7
Ci0gICAgaWYgKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkgPT0gRG9Ob3RBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKQorICAgIGlmIChtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBEb05v
dEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwog
ICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgcmV0dXJu
IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKGRvY3Vt
ZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSk7CiB9CkBAIC03MDAsNyArNzAwLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGwKICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgZGVy
ZWZpbmcgdGhpczsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyBSYWRhciAzMjY2MjE2LgogICAgIFJl
ZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKLSAgICBpZiAobV9vcHRp
b25zLmFsbG93Q3JlZGVudGlhbHMoKSA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAg
aWYgKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMp
IHsKICAgICAgICAgaWYgKGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkpIHsKICAg
ICAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKHRoaXMsIGNoYWxsZW5nZSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGVjN2U0ZDI1MWFmNTg3MzdhNGYz
MTczNWMyZDRjYjkyNWUxYTk5YWIuLjhjNzM4YTJjYTdjOTBjNTlkNjgxZjA2MTJhM2U1MjBlZTU2
YjZhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMjUsMTEg
KzEyNSwxMSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVxdWVzdC51cmwoKTsgfQogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUoKSBjb25zdCB7
IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQotICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9h
ZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygp
ID09IFNlbmRDYWxsYmFja3M7IH0KLSAgICB2b2lkIHNldFNlbmRDYWxsYmFja1BvbGljeShTZW5k
Q2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MpIHsgbV9vcHRpb25zLnNldFNlbmRMb2Fk
Q2FsbGJhY2tzKHNlbmRMb2FkQ2FsbGJhY2tzKTsgfQotICAgIGJvb2wgc2hvdWxkU25pZmZDb250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudCgpID09IFNuaWZmQ29u
dGVudDsgfQorICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0
IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9
CisgICAgdm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2VuZENhbGxiYWNrUG9saWN5IHNlbmRM
b2FkQ2FsbGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2Fs
bGJhY2tzOyB9CisgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdDsKLSAgICBi
b29sIHNob3VsZEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuY2VydGlmaWNhdGVJbmZvUG9saWN5KCkgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5mbzsgfQor
ICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
b3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5mbzsg
fQogCiAgICAgYm9vbCByZWFjaGVkVGVybWluYWxTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVh
Y2hlZFRlcm1pbmFsU3RhdGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyT3B0aW9ucy5oCmluZGV4IGM3NzlmYmQxODUzZTI3OWM0NDAwNmY0MmY5MGNhYmYzZmJm
OTE5MjMuLmFjOTM0MjU4Mzk4ZDMzYTZjY2UyZDRmYTQwMzY1ODkwMTZkNGZiN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKQEAgLTgxLDYwICs4
MSwzNSBAQCBlbnVtIGNsYXNzIENsaWVudENyZWRlbnRpYWxQb2xpY3kgewogfTsKIAogc3RydWN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewotICAgIFJlc291
cmNlTG9hZGVyT3B0aW9ucygpCi0gICAgICAgIDogbV9zZW5kTG9hZENhbGxiYWNrcyhEb05vdFNl
bmRDYWxsYmFja3MpCi0gICAgICAgICwgbV9zbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQp
Ci0gICAgICAgICwgbV9kYXRhQnVmZmVyaW5nUG9saWN5KEJ1ZmZlckRhdGEpCi0gICAgICAgICwg
bV9hbGxvd0NyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKLSAgICAgICAg
LCBtX3NlY3VyaXR5Q2hlY2soRG9TZWN1cml0eUNoZWNrKQotICAgICAgICAsIG1fY2VydGlmaWNh
dGVJbmZvUG9saWN5KERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbykKLSAgICB7Ci0gICAgfQor
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQorCisgICAgUmVzb3VyY2VMb2FkZXJPcHRp
b25zKGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykgOiBGZXRjaE9wdGlvbnMob3B0aW9ucykg
eyB9CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrUG9saWN5IHNlbmRM
b2FkQ2FsbGJhY2tzLCBDb250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50LCBEYXRhQnVm
ZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3ksIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY3JlZGVudGlhbFBvbGljeSwgRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscywgU2VjdXJpdHlDaGVja1BvbGljeSBz
ZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgQ2VydGlmaWNhdGVJbmZvUG9s
aWN5IGNlcnRpZmljYXRlSW5mb1BvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
biBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uLCBEZWZlcnNMb2FkaW5nUG9saWN5IGRl
ZmVyc0xvYWRpbmdQb2xpY3ksIENhY2hpbmdQb2xpY3kgY2FjaGluZ1BvbGljeSkKLSAgICAgICAg
OiBtX3NlbmRMb2FkQ2FsbGJhY2tzKHNlbmRMb2FkQ2FsbGJhY2tzKQotICAgICAgICAsIG1fc25p
ZmZDb250ZW50KHNuaWZmQ29udGVudCkKLSAgICAgICAgLCBtX2RhdGFCdWZmZXJpbmdQb2xpY3ko
ZGF0YUJ1ZmZlcmluZ1BvbGljeSkKLSAgICAgICAgLCBtX2FsbG93Q3JlZGVudGlhbHMoYWxsb3dD
cmVkZW50aWFscykKLSAgICAgICAgLCBtX3NlY3VyaXR5Q2hlY2soc2VjdXJpdHlDaGVjaykKLSAg
ICAgICAgLCBtX2NlcnRpZmljYXRlSW5mb1BvbGljeShjZXJ0aWZpY2F0ZUluZm9Qb2xpY3kpCi0g
ICAgICAgICwgbV9jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKGNvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb24pCi0gICAgICAgICwgbV9kZWZlcnNMb2FkaW5nUG9saWN5KGRlZmVy
c0xvYWRpbmdQb2xpY3kpCi0gICAgICAgICwgbV9jYWNoaW5nUG9saWN5KGNhY2hpbmdQb2xpY3kp
CisgICAgICAgIDogc2VuZExvYWRDYWxsYmFja3Moc2VuZExvYWRDYWxsYmFja3MpCisgICAgICAg
ICwgc25pZmZDb250ZW50KHNuaWZmQ29udGVudCkKKyAgICAgICAgLCBkYXRhQnVmZmVyaW5nUG9s
aWN5KGRhdGFCdWZmZXJpbmdQb2xpY3kpCisgICAgICAgICwgYWxsb3dDcmVkZW50aWFscyhhbGxv
d0NyZWRlbnRpYWxzKQorICAgICAgICAsIHNlY3VyaXR5Q2hlY2soc2VjdXJpdHlDaGVjaykKKyAg
ICAgICAgLCBjZXJ0aWZpY2F0ZUluZm9Qb2xpY3koY2VydGlmaWNhdGVJbmZvUG9saWN5KQorICAg
ICAgICAsIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oY29udGVudFNlY3VyaXR5UG9s
aWN5SW1wb3NpdGlvbikKKyAgICAgICAgLCBkZWZlcnNMb2FkaW5nUG9saWN5KGRlZmVyc0xvYWRp
bmdQb2xpY3kpCisgICAgICAgICwgY2FjaGluZ1BvbGljeShjYWNoaW5nUG9saWN5KQogICAgICAg
ICAsIGNsaWVudENyZWRlbnRpYWxQb2xpY3koY3JlZGVudGlhbFBvbGljeSkKICAgICB7CiAgICAg
ICAgIHRoaXMtPmNyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7CiAgICAgICAgIHRoaXMtPm1vZGUg
PSBtb2RlOwogICAgIH0KIAotICAgIFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNr
cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNlbmRDYWxsYmFja1BvbGljeT4obV9zZW5k
TG9hZENhbGxiYWNrcyk7IH0KLSAgICB2b2lkIHNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxs
YmFja1BvbGljeSBhbGxvdykgeyBtX3NlbmRMb2FkQ2FsbGJhY2tzID0gYWxsb3c7IH0KLSAgICBD
b250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q29udGVudFNuaWZmaW5nUG9saWN5PihtX3NuaWZmQ29udGVudCk7IH0KLSAgICB2b2lk
IHNldFNuaWZmQ29udGVudChDb250ZW50U25pZmZpbmdQb2xpY3kgcG9saWN5KSB7IG1fc25pZmZD
b250ZW50ID0gcG9saWN5OyB9Ci0gICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5n
UG9saWN5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGF0YUJ1ZmZlcmluZ1BvbGljeT4o
bV9kYXRhQnVmZmVyaW5nUG9saWN5KTsgfQotICAgIHZvaWQgc2V0RGF0YUJ1ZmZlcmluZ1BvbGlj
eShEYXRhQnVmZmVyaW5nUG9saWN5IHBvbGljeSkgeyBtX2RhdGFCdWZmZXJpbmdQb2xpY3kgPSBw
b2xpY3k7IH0KLSAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RvcmVkQ3JlZGVudGlhbHM+KG1fYWxsb3dDcmVkZW50aWFs
cyk7IH0KLSAgICB2b2lkIHNldEFsbG93Q3JlZGVudGlhbHMoU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3cpIHsgbV9hbGxvd0NyZWRlbnRpYWxzID0gYWxsb3c7IH0KLSAgICBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2soKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTZWN1cml0eUNo
ZWNrUG9saWN5PihtX3NlY3VyaXR5Q2hlY2spOyB9Ci0gICAgdm9pZCBzZXRTZWN1cml0eUNoZWNr
KFNlY3VyaXR5Q2hlY2tQb2xpY3kgY2hlY2spIHsgbV9zZWN1cml0eUNoZWNrID0gY2hlY2s7IH0K
LSAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgY2VydGlmaWNhdGVJbmZvUG9saWN5KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2VydGlmaWNhdGVJbmZvUG9saWN5PihtX2NlcnRpZmljYXRl
SW5mb1BvbGljeSk7IH0KLSAgICB2b2lkIHNldENlcnRpZmljYXRlSW5mb1BvbGljeShDZXJ0aWZp
Y2F0ZUluZm9Qb2xpY3kgcG9saWN5KSB7IG1fY2VydGlmaWNhdGVJbmZvUG9saWN5ID0gcG9saWN5
OyB9Ci0gICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
KENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gaW1wb3NpdGlvbikgeyBtX2NvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBpbXBvc2l0aW9uOyB9Ci0gICAgRGVmZXJzTG9hZGlu
Z1BvbGljeSBkZWZlcnNMb2FkaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnNMb2Fk
aW5nUG9saWN5OyB9Ci0gICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nUG9saWN5KERlZmVyc0xvYWRp
bmdQb2xpY3kgZGVmZXJzTG9hZGluZ1BvbGljeSkgeyBtX2RlZmVyc0xvYWRpbmdQb2xpY3kgPSBk
ZWZlcnNMb2FkaW5nUG9saWN5OyB9Ci0gICAgQ2FjaGluZ1BvbGljeSBjYWNoaW5nUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoaW5nUG9saWN5OyB9Ci0gICAgdm9pZCBzZXRDYWNoaW5nUG9s
aWN5KENhY2hpbmdQb2xpY3kgY2FjaGluZ1BvbGljeSkgeyBtX2NhY2hpbmdQb2xpY3kgPSBjYWNo
aW5nUG9saWN5OyB9Ci0KLSAgICB1bnNpZ25lZCBtX3NlbmRMb2FkQ2FsbGJhY2tzIDogMTsKLSAg
ICB1bnNpZ25lZCBtX3NuaWZmQ29udGVudCA6IDE7Ci0gICAgdW5zaWduZWQgbV9kYXRhQnVmZmVy
aW5nUG9saWN5IDogMTsKLSAgICB1bnNpZ25lZCBtX2FsbG93Q3JlZGVudGlhbHMgOiAxOyAvLyBX
aGV0aGVyIEhUVFAgY3JlZGVudGlhbHMgYW5kIGNvb2tpZXMgYXJlIHNlbnQgd2l0aCB0aGUgcmVx
dWVzdC4KLSAgICB1bnNpZ25lZCBtX3NlY3VyaXR5Q2hlY2sgOiAxOwotICAgIHVuc2lnbmVkIG1f
Y2VydGlmaWNhdGVJbmZvUG9saWN5IDogMTsgLy8gV2hldGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxk
IGluY2x1ZGUgY2VydGlmaWNhdGUgaW5mby4KLSAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uIG1fY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiB7IENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sgfTsKLSAgICBEZWZlcnNMb2FkaW5nUG9s
aWN5IG1fZGVmZXJzTG9hZGluZ1BvbGljeSB7IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVm
ZXJzTG9hZGluZyB9OwotICAgIENhY2hpbmdQb2xpY3kgbV9jYWNoaW5nUG9saWN5IHsgQ2FjaGlu
Z1BvbGljeTo6QWxsb3dDYWNoaW5nIH07CisgICAgU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2Fk
Q2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJhY2tzIH07CisgICAgQ29udGVudFNuaWZmaW5nUG9s
aWN5IHNuaWZmQ29udGVudCB7IERvTm90U25pZmZDb250ZW50IH07CisgICAgRGF0YUJ1ZmZlcmlu
Z1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5IHsgQnVmZmVyRGF0YSB9OworICAgIFN0b3JlZENy
ZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgeyBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMg
fTsKKyAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hl
Y2sgfTsKKyAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgY2VydGlmaWNhdGVJbmZvUG9saWN5IHsg
RG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvIH07CisgICAgQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uIHsgQ29udGVudFNlY3Vy
aXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayB9OworICAgIERlZmVyc0xvYWRpbmdQ
b2xpY3kgZGVmZXJzTG9hZGluZ1BvbGljeSB7IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVm
ZXJzTG9hZGluZyB9OworICAgIENhY2hpbmdQb2xpY3kgY2FjaGluZ1BvbGljeSB7IENhY2hpbmdQ
b2xpY3k6OkFsbG93Q2FjaGluZyB9OwogCiAgICAgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGll
bnRDcmVkZW50aWFsUG9saWN5IHsgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xp
ZW50Rm9yQ3JlZGVudGlhbHMgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAppbmRleCA2NzZhMjM5NTIyMDUwZjlmYTQ4NjhhYzU4MTZlYmQ3NWRlNjU5
ZjZhLi45ZmFlY2JhNDM0OTAxNTgxOWQ2YjhiZTc1Mzc4MzY5M2E2OWFhMTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQxNSw3ICs0MTUsNyBA
QCBib29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sKGNvbnN0IFJlc291cmNlUgogICAgIEFTU0VSVChtX29yaWdpbik7CiAgICAgU3Ry
aW5nIGVycm9yRGVzY3JpcHRpb247CiAgICAgYm9vbCByZXNwb25zZVBhc3Nlc0NPUlMgPSBtX29y
aWdpbi0+Y2FuUmVxdWVzdChwcmV2aW91c1JlcXVlc3QudXJsKCkpCi0gICAgICAgIHx8IHBhc3Nl
c0FjY2Vzc0NvbnRyb2xDaGVjayhyZWRpcmVjdFJlc3BvbnNlLCBvcHRpb25zKCkuYWxsb3dDcmVk
ZW50aWFscygpLCAqbV9vcmlnaW4sIGVycm9yRGVzY3JpcHRpb24pOworICAgICAgICB8fCBwYXNz
ZXNBY2Nlc3NDb250cm9sQ2hlY2socmVkaXJlY3RSZXNwb25zZSwgb3B0aW9ucygpLmFsbG93Q3Jl
ZGVudGlhbHMsICptX29yaWdpbiwgZXJyb3JEZXNjcmlwdGlvbik7CiAgICAgaWYgKCFyZXNwb25z
ZVBhc3Nlc0NPUlMgfHwgIWlzVmFsaWRDcm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKG5ld1JlcXVl
c3QudXJsKCkpKSB7CiAgICAgICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkp
IHsKICAgICAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSAiQ3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0aW9uIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3k6ICIg
KwpAQCAtNDI4LDcgKzQyOCw3IEBAIGJvb2wgU3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJl
Y3Rpb25Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2woY29uc3QgUmVzb3VyY2VSCiAgICAgLy8gSWYg
dGhlIHJlcXVlc3QgVVJMIG9yaWdpbiBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIG9y
aWdpbiwgdGhlIHJlcXVlc3Qgb3JpZ2luIHNob3VsZCBiZSBzZXQgdG8gYSBnbG9iYWxseSB1bmlx
dWUgaWRlbnRpZmllci4KICAgICBtX29yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlx
dWUoKTsKICAgICBjbGVhblJlZGlyZWN0ZWRSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChuZXdSZXF1
ZXN0KTsKLSAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChuZXdSZXF1ZXN0LCAqbV9v
cmlnaW4sIG9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzKCkpOworICAgIHVwZGF0ZVJlcXVlc3RG
b3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsICptX29yaWdpbiwgb3B0aW9ucygpLmFsbG93Q3Jl
ZGVudGlhbHMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwCmluZGV4IDZjMGU1OWY2MjkzNGVmNGMwMjg4Yzg1ZGJjNDAxZjVi
OGU1OTczMjMuLmM4MDEwYzY5MzNmMzAyZWI4N2Q4OTExOWZhOTk2ZTRhYmExOTNkMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0xNTMsNyArMTUzLDcg
QEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgY3Jvc3NPcmlnaW5Nb2RlLCBib29sIGkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3du
Y2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAogICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKTsKLSAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb24oaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworICAgIG9wdGlvbnMuY29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJB
Z2VudFNoYWRvd1RyZWUgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9s
aWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNr
OwogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKSwgb3B0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IGI2NmQ1NGZh
OWExYzM1NjVkNjgzMTZkMTI2NTYxNDAyODBiZjc4YjguLmM4MDYwNTE4MGU5NGNlY2JiYTgzOGJk
ZDE2YWM5ZTdkOWE5NTRkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgQ2FjaGVkUmF3
UmVzb3VyY2U6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAKIHZvaWQgQ2FjaGVkUmF3
UmVzb3VyY2U6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRh
QnVmZmVyaW5nUG9saWN5KQogewotICAgIG1fb3B0aW9ucy5zZXREYXRhQnVmZmVyaW5nUG9saWN5
KGRhdGFCdWZmZXJpbmdQb2xpY3kpOworICAgIG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5
ID0gZGF0YUJ1ZmZlcmluZ1BvbGljeTsKIH0KIAogc3RhdGljIGJvb2wgc2hvdWxkSWdub3JlSGVh
ZGVyRm9yQ2FjaGVSZXVzZShIVFRQSGVhZGVyTmFtZSBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZGQ1Nzg3NTk4OWNkMjA5NzI4
YjUzYzc0NGE0YjE2ZmYzMWNkYTc0Zi4uN2RiN2VkMjU2OTJiZWZhZGUwNmVlYWYyNGRhNTg2ZmFk
OWFlMjA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNo
ZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAgICB9
CiAKICAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKTsKLSAgICBp
ZiAob3B0aW9ucy5zZWN1cml0eUNoZWNrKCkgPT0gRG9TZWN1cml0eUNoZWNrICYmIChmcmFtZUxv
YWRlci5zdGF0ZSgpID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCB8fCAhZnJhbWVMb2FkZXIuYWN0
aXZlRG9jdW1lbnRMb2FkZXIoKSB8fCBmcmFtZUxvYWRlci5hY3RpdmVEb2N1bWVudExvYWRlcigp
LT5pc1N0b3BwaW5nKCkpKSB7CisgICAgaWYgKG9wdGlvbnMuc2VjdXJpdHlDaGVjayA9PSBEb1Nl
Y3VyaXR5Q2hlY2sgJiYgKGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lv
bmFsIHx8ICFmcmFtZUxvYWRlci5hY3RpdmVEb2N1bWVudExvYWRlcigpIHx8IGZyYW1lTG9hZGVy
LmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSkpIHsKICAgICAgICAgZmFpbEJl
Zm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDI1NGRkMmJhMmQ0YjdiODZmMzUz
OTc1NGI4MTMwMDA5ZDBhOTM4YWEuLjY5YThmZjVkOTUzYmI0NGM1ODdmODAzY2E3NzZiMzgwYTEw
ZGQyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CkBAIC0yMjYsMTAgKzIyNiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcnJvck9jY3VycmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8IG1fc3RhdHVzID09IERlY29k
ZUVycm9yOyB9CiAgICAgYm9vbCBsb2FkRmFpbGVkT3JDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJu
ICFtX2Vycm9yLmlzTnVsbCgpOyB9CiAKLSAgICBib29sIHNob3VsZFNlbmRSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9
PSBTZW5kQ2FsbGJhY2tzOyB9Ci0gICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5n
UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3koKTsg
fQorICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CisgICAg
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3k7IH0KIAotICAgIGJvb2wgYWxsb3dzQ2FjaGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jYWNoaW5nUG9saWN5KCkgPT0gQ2FjaGluZ1Bv
bGljeTo6QWxsb3dDYWNoaW5nOyB9CisgICAgYm9vbCBhbGxvd3NDYWNoaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zLmNhY2hpbmdQb2xpY3kgPT0gQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNo
aW5nOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKCkgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDg1YjMwOWYzZTU5MmU3ZTZhOWQwMThkM2ViZTBhNTM5MjA1ZWMwMGUuLmMzNDA5
YjI3NDY1NWE1OTZkYmJjODgxMTM0ODdkYWRjZGY1MjMxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMzkwLDcg
KzM5MCw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgVVJMJiB1cmwsCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKLSAgICBib29sIHNraXBDb250ZW50U2VjdXJpdHlQb2xpY3lDaGVjayA9IG9wdGlv
bnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbigpID09IENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjazsKKyAgICBib29sIHNraXBDb250ZW50U2Vj
dXJpdHlQb2xpY3lDaGVjayA9IG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
biA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2s7CiAg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQgcmVkaXJl
Y3RSZXNwb25zZVJlY2VpdmVkID0gZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgPyBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZDo6WWVzIDogQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQ6Ok5vOwogCiAgICAgLy8gU29t
ZSB0eXBlcyBvZiByZXNvdXJjZXMgY2FuIGJlIGxvYWRlZCBvbmx5IGZyb20gdGhlIHNhbWUgb3Jp
Z2luLiAgT3RoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZTBmZTdjNDFkNmZkZWY1NjA0YjRkZjNjMDI4NTk3
NDFiNDZkM2ExMy4uNjBkNzAwMDYzOThkOGU1YTg0NzMzYjI2ZWZhZDAwMjhkNjliZGQ0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAKQEAgLTEwMCwxMCArMTAwLDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiBtb2RlLCBEb2N1CiAg
ICAgICAgIHJldHVybjsKICAgICBtX29wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6
Q29yczsKICAgICBtX29wdGlvbnMuY3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpJbmNsdWRlIDogRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKLSAg
ICBtX29wdGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscyhlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDog
RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVudGlh
bHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlh
bHM7CiAKICAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSk7Ci0gICAgdXBkYXRl
UmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobV9yZXNvdXJjZVJlcXVlc3QsICpkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKKyAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgKmRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDYzZmY4YzQ1YWNiZDFkYjA5OGM0NGUwN2Y5YTIxYzIx
ZjFjNDMzNDAuLmYzZjU2ODUwNWEwMjg3NTExM2VjYmJhMzg1YjI2Mzk3NjhlN2QxNGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NS
ZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7
Ci0gICAgYm9vbCBhbGxvd3NDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmNhY2hp
bmdQb2xpY3koKSA9PSBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmc7IH0KKyAgICBib29sIGFs
bG93c0NhY2hpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2FjaGluZ1BvbGljeSA9PSBD
YWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmc7IH0KIAogICAgIHZvaWQgc2V0SW5pdGlhdG9yKERv
Y3VtZW50TG9hZGVyJik7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGluaXRpYXRpbmdEb2N1bWVudExv
YWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyLmdldCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKaW5kZXggMzM4NzAxYjYxMDJjNGYwMWYzZWE3
Y2QxOTA3ZTZjYWQ0MDA4ZjRmZi4uYjMzOWE4ZTU4Y2RhYWQ1MWY1YWY4MGVhNDYzOTRiZDdiYzUw
MjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcApAQCAtMzAsNiArMzAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQogICAgIDogY3NzKCJjc3MiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwgZmV0Y2goImZldGNoIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAgICAsIGljb24oImljb24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQogICAgICwgeG1saHR0cHJlcXVlc3QoInhtbGh0
dHByZXF1ZXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5oCmluZGV4IDI2NTczYmIxNzE2OTYwNGRkMjc0NjdiZGMzODI3OTEw
MzYwNTRkZDAuLmQ3Y2ZlMDFjOGQyMDAwODMyNmEwOTE5N2ViZmRmNDY0NTczODFmMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaApAQCAtMzUsNiArMzUsNyBAQCBzdHJ1Y3QgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyB7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycygpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nIGNzczsKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcgZmV0Y2g7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nIGljb247CiAgICAgY29uc3QgQXRv
bWljU3RyaW5nIHhtbGh0dHByZXF1ZXN0OwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4IDU2
MjBjOTAyMjFkNDNmYjRiNzk2NWVhNmMzOTdkNTgxNTg3ZmU3OTYuLjE1ZTU5MDQwNmNlYmQzN2Ix
NTgwYmRlODcyNTQ5Y2MxMzAwYzk5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21h
Yy9SZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtNTEsNyArNTEsNyBAQCBDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IENGQ2FjaAogCiBOU0NhY2hlZFVSTFJlc3BvbnNlKiBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hl
UmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkK
IHsKLSAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzKCkgPT0gRG9Ob3RTZW5kQ2Fs
bGJhY2tzKQorICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gRG9Ob3RTZW5k
Q2FsbGJhY2tzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gZnJhbWVMb2Fk
ZXIoKS0+Y2xpZW50KCkud2lsbENhY2hlUmVzcG9uc2UoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRp
ZmllcigpLCByZXNwb25zZSk7CiB9CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCiAgICAgICAgIENG
RGF0YVJlZiBkYXRhID0gc3RhdGljX2Nhc3Q8Q0ZEYXRhUmVmPihDRkFycmF5R2V0VmFsdWVBdElu
ZGV4KGRhdGFBcnJheSwgaSkpOwogICAgICAgICB1bnNpZ25lZCBkYXRhTGVuID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KENGRGF0YUdldExlbmd0aChkYXRhKSk7CiAKLSAgICAgICAgaWYgKG1fb3B0
aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gQnVmZmVyRGF0YSkgeworICAgICAgICBpZiAo
bV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSkgewogICAgICAgICAg
ICAgaWYgKCFtX3Jlc291cmNlRGF0YSkKICAgICAgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBtX3Jlc291cmNlRGF0YS0+YXBw
ZW5kKGRhdGEpOwpAQCAtODAsNyArODAsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogICAgICAgICAvLyBGSVhNRTogSWYg
d2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29kZSB3b24n
dCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBj
b21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFj
dGljZS4KICAgICAgICAgLy8gQ291bGQgYmUgYW4gaXNzdWUgd2l0aCBhIGdpYW50IGxvY2FsIGZp
bGUuCi0gICAgICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2Fs
bGJhY2tzICYmIG1fZnJhbWUpCisgICAgICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MgPT0gU2VuZENhbGxiYWNrcyAmJiBtX2ZyYW1lKQogICAgICAgICAgICAgZnJhbWVMb2FkZXIo
KS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0aGlzLCByZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgZGF0YUxlbiwgZGF0YUxlbik7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAppbmRleCA2NTUyODgzN2ZkYmIyNTdk
ZGJhODNmNTgwZmU5NGQwYTM2OTQ5ZjI4Li44MTdlNTk0MGE1NWUzZTE4OGNlYmIyOTQ3ZGY4ZTkw
ZmQ5NGI5MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApAQCAtMTA0LDEyICsx
MDQsMTEgQEAgdm9pZCBFdmVudFNvdXJjZTo6Y29ubmVjdCgpCiAgICAgICAgIHJlcXVlc3Quc2V0
SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0RXZlbnRJRCwgbV9sYXN0RXZlbnRJ
ZCk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMu
c2V0U2VuZExvYWRDYWxsYmFja3MoU2VuZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5zZXRTbmlm
ZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpOworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MgPSBTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBtX3dpdGhDcmVk
ZW50aWFscyA/IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlv
bnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5
ID0gUHJldmVudFByZWZsaWdodDsKICAgICBvcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6OkNvcnM7Ci0gICAgb3B0aW9ucy5zZXREYXRhQnVmZmVyaW5nUG9saWN5KERvTm90QnVmZmVy
RGF0YSk7CisgICAgb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID0gRG9Ob3RCdWZmZXJEYXRh
OwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNyY0RpcmVj
dGl2ZTsKIAogICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVBlbmRpbmdSZXNvdXJjZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmNwcAppbmRleCBlZmNk
NWY1NDJhY2Y3NDhlYzcwODFhM2QzZWJhYmY4ZWYxYzhlYzM4Li4wNDBiYzAzZWExZjAzYjk2YWRi
ZDhiMDNiYzFlYjA4MGVjOTJjNTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVBlbmRpbmdSZXNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UGVuZGluZ1Jlc291cmNlcy5jcHAKQEAgLTQ4LDEyICs0OCwxMiBAQCBzdGF0aWMgUmVmUHRyPFN0
eWxlSW1hZ2U+IGxvYWRQZW5kaW5nSW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHls
ZUltYWdlJgogewogICAgIGF1dG8mIHBlbmRpbmdJbWFnZSA9IGRvd25jYXN0PFN0eWxlUGVuZGlu
Z0ltYWdlPihpbWFnZSk7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9w
dGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihlbGVtZW50ICYmIGVsZW1l
bnQtPmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
OjpEb1BvbGljeUNoZWNrKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb24gPSBlbGVtZW50ICYmIGVsZW1lbnQtPmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBD
b250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50
U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCiAgICAgLy8gRklYTUU6
IFdoeSBkb2VzIHNoYXBlLW91dHNpZGUgaGF2ZSBkaWZmZXJlbnQgcG9saWN5IHRoYW4gb3RoZXIg
cHJvcGVydGllcz8KICAgICBpZiAobG9hZFBvbGljeSA9PSBMb2FkUG9saWN5OjpTaGFwZU91dHNp
ZGUpIHsKICAgICAgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwot
ICAgICAgICBvcHRpb25zLnNldEFsbG93Q3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKTsKKyAgICAgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gRG9Ob3RBbGxvd1N0
b3JlZENyZWRlbnRpYWxzOwogICAgIH0KIAogICAgIGlmIChhdXRvIGltYWdlVmFsdWUgPSBwZW5k
aW5nSW1hZ2UuY3NzSW1hZ2VWYWx1ZSgpKQpAQCAtMTcxLDcgKzE3MSw3IEBAIHN0YXRpYyB2b2lk
IGxvYWRQZW5kaW5nU1ZHRmlsdGVycyhjb25zdCBQZW5kaW5nUmVzb3VyY2VzJiBwZW5kaW5nUmVz
b3VyY2VzLCBEb2N1CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9u
cyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9w
dGlvbnMoKTsKLSAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24o
ZWxlbWVudCAmJiBlbGVtZW50LT5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpID8gQ29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5
UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgb3B0aW9ucy5jb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gZWxlbWVudCAmJiBlbGVtZW50LT5pc0luVXNlckFnZW50
U2hhZG93VHJlZSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGlj
eUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjazsK
IAogICAgIGZvciAoYXV0byYgZmlsdGVyT3BlcmF0aW9uIDogcGVuZGluZ1Jlc291cmNlcy5wZW5k
aW5nU1ZHRmlsdGVycykKICAgICAgICAgZmlsdGVyT3BlcmF0aW9uLT5nZXRPckNyZWF0ZUNhY2hl
ZFNWR0RvY3VtZW50UmVmZXJlbmNlKCktPmxvYWQoZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApp
bmRleCBiNjdlMmU4OWY5MDgyNDZjYzE0MWU1NGQwMjcwOGNjZTA5YzdlMDBhLi5lZjJhZWQ4OTAx
YjgwNjRlNGRjNTlmODAzNGE5NzdhNGYwMTcwYzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVu
dDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVx
dWVzdEltYWdlUmVzb3VyY2UoKQogewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25z
ID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsK
LSAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oaXNJblVzZXJB
Z2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQ
b2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hl
Y2spOworICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5V
c2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpT
a2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGlj
eUNoZWNrOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJlZigpKSksIG9wdGlvbnMpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VV
cmlFbGVtZW50LmNwcAppbmRleCBlMzhkYmUzNzZmNzFkNjI4ZWUwOGM3MTM1ZjE5ZDc2MTNhMTBk
MDk3Li5lNzQ3OTYxNjFjNDQ2YmQxZTljNzdhNzczMWEwNzQ4MjZjYWI1NGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMTAxLDcgKzEwMSw3
IEBAIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBocmVmID0gZ2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKICAg
ICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsKICAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9w
dGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9u
cygpOwotICAgICAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24o
aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRv
UG9saWN5Q2hlY2spOworICAgICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb24gPSBpc0luVXNlckFnZW50U2hhZG93VHJlZSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjazsKIAogICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2Fj
aGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1
bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYpKSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKaW5kZXggMzk1MDAwYmZhMDQyZDU3ZWQzODAwMGQ1N2Q4ODM0OGRmNzllNmJm
OC4uMjZkOTI5M2Y2ZmEwYTFkY2VhOTUyZjZiOTcyYzQ0MDY0MDc3OGJmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQgU1ZHVXNlRWxl
bWVudDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCgpCiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVu
dCA9IG51bGxwdHI7CiAgICAgZWxzZSB7CiAgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBv
cHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKTsKLSAgICAgICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
KGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpE
b1BvbGljeUNoZWNrKTsKKyAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uID0gaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb246OkRvUG9saWN5Q2hlY2s7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgeyBSZXNvdXJjZVJlcXVlc3QgeyBleHRlcm5hbERvY3VtZW50VVJMIH0sIG9wdGlvbnMg
fTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2JmZDYwZGJjNmEzMjQ1OTIw
MjNhODdjMjY4MmRiMjg4YjMzZDI2MC4uNjdmOWNjYTE1YmUyNmFjMDUxZmNkNDFlZDU5MzEwNzg4
NTEzMjhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5bmNo
cm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aQogICAgIFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CiAgICAgb3B0aW9ucy5tb2RlID0gbW9k
ZTsKLSAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOworICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMu
Y29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDsKIAogICAgIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpLCBXVEZNb3ZlKCpyZXF1ZXN0KSwgKnRoaXMsIG9wdGlvbnMpOwpAQCAtOTMsNyArOTMs
NyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25z
IG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5tb2RlID0gbW9kZTsKLSAgICBvcHRpb25z
LnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOworICAgIG9wdGlvbnMuc2VuZExv
YWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDsKIAog
ICAgIC8vIER1cmluZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJlbW92ZSB0
aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAppbmRleCBlMjViMDgwY2QyMmU2YjY5NzAwNzAzYjZkMTgxOGFlYWM1YWVmZjY2
Li43ZGZlYjZmZTRiMGE5Y2YyZWQzYjMxN2M5NmM0YjFmMDNiYWIyMjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTY4Nyw4ICs2ODcsNyBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZHMobV9yZXF1ZXN0SGVhZGVycyk7CiAKICAgICBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3Mo
U2VuZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5zZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNv
bnRlbnQpOworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwog
ICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGln
aHQgOiBDb25zaWRlclByZWZsaWdodDsKICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gbV9pbmNs
dWRlQ3JlZGVudGlhbHMgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBvcHRpb25zLm1vZGUgPSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285077</attachid>
            <date>2016-08-01 23:18:09 -0700</date>
            <delta_ts>2016-08-01 23:48:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-160407-20160802081646.patch</filename>
            <type>text/plain</type>
            <size>60936</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1NGI0MGVjZDAzMzA4
MmQ0NTM5OTBkOTgzMDEzNGExOGFlYTE5Ni4uZmIwY2FkYjQ2NDVjNmMzNGI5ZGRiZGE2MTk1NDZm
NzI2Yzc3MWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxNi0wOC0wMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gUGFz
cyBkaXJlY3RseSBGZXRjaFJlcXVlc3QgZmV0Y2ggb3B0aW9ucyB0byBUaHJlYWRhYmxlTG9hZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIE5vIGNoYW5nZSBv
ZiBiZWhhdmlvci4KKworICAgICAgICBBZGRlZCBhIFJlc291cmNlTG9hZGVyT3B0aW9ucyBjb25z
dHJ1Y3RvciB0aGF0IHRha2VzIGEgRmV0Y2hPcHRpb25zIGFzIGlucHV0LgorICAgICAgICBSZW1v
dmVkIHNldHRlcnMgYW5kIGdldHRlcnMgb2YgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGFzIGl0IGlz
IGEgc3RydWN0LgorICAgICAgICBVcGRhdGVkIG1lbWJlciBmaWVsZHMgYWNjb3JkaW5nbHkuCisK
KyAgICAgICAgVXBkYXRlZCBjb2RlIGFjY29yZGluZ2x5LgorICAgICAgICBSZW1vdmVkIGV4cGxp
Y2l0IG9wdGlvbiBzZXR0aW5nIGlmIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IHZhbHVl
LgorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaExvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KToKKyAgICAgICAgKiBjc3Mv
Q1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNo
ZWRJbWFnZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgICogZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6
OnN0YXJ0KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0
d29ya0FnZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGln
aHRDaGVja2VyOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQpOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5B
Y2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpwcmVmbGlnaHRTdWNj
ZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJl
cXVlc3QpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6UmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmluaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpzZXREYXRhQnVmZmVyaW5nUG9saWN5KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjbGVhbnVwRm9yRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFNlbmRDYWxsYmFja1BvbGljeSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6c2hvdWxkU25pZmZDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRJbmNsdWRlQ2VydGlmaWNh
dGVJbmZvKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OlJlc291cmNlTG9hZGVyT3B0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OnNlbmRMb2FkQ2Fs
bGJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9u
czo6c2V0U2VuZExvYWRDYWxsYmFja3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXJPcHRpb25zOjpzbmlmZkNvbnRlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpzZXRTbmlmZkNvbnRlbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpkYXRhQnVmZmVyaW5nUG9s
aWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6
c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlck9wdGlvbnM6OmFsbG93Q3JlZGVudGlhbHMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpzZXRBbGxvd0NyZWRlbnRpYWxzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c2VjdXJpdHlD
aGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6
OnNldFNlY3VyaXR5Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJPcHRpb25zOjpjZXJ0aWZpY2F0ZUluZm9Qb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpzZXRDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zOjpjb250
ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyT3B0aW9uczo6c2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OmRl
ZmVyc0xvYWRpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJPcHRpb25zOjpzZXREZWZlcnNMb2FkaW5nUG9saWN5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9uczo6Y2FjaGluZ1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnM6OnNldENhY2hpbmdQb2xp
Y3kpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbCk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSYXdSZXNvdXJjZTo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeSk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpzaG91bGRTZW5kUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpkYXRhQnVmZmVy
aW5nUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjphbGxvd3NDYWNo
aW5nKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmln
aW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6YWxsb3dzQ2FjaGluZyk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDoKKyAgICAgICAgKiBsb2FkZXIvbWFjL1Jl
c291cmNlTG9hZGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6Ondp
bGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YUFycmF5KToKKyAgICAgICAgKiBwYWdlL0V2ZW50U291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpjb25uZWN0KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZVBlbmRpbmdSZXNvdXJjZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmxvYWRQZW5k
aW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmxvYWRQZW5kaW5nU1ZHRmlsdGVy
cyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICog
c3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250
RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERvY3Vt
ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorCiAyMDE2LTA4LTAxICBBbmRyZWFzIEtsaW5nICA8
YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBTaHJpbmsgTWVkaWFRdWVyeVNldHMgdG8gZml0
IGFmdGVyIHBhcnNpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuY3BwCmluZGV4IDc3Y2FmZDAzMDYxMmQxNzU2MDMzNWM2Mjk2OTVjZTdjNTQ3Y2I1M2QuLjc4
Y2FlN2E0MDViY2Q4YTRkOWQwZjE5YzFkOWFlOTMwNDc4NTg5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaWYg
RU5BQkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkJsb2JVUkwuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRmV0Y2hCb2R5LmgiCiAj
aW5jbHVkZSAiRmV0Y2hMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGZXRjaFJlcXVlc3QuaCIK
QEAgLTU5LDExICs2MCwxMCBAQCB2b2lkIEZldGNoTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBCbG9iJiBibG9iKQogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhv
ZCgiR0VUIik7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9w
dGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3MoU2VuZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5z
ZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpOwotICAgIG9wdGlvbnMuc2V0RGF0YUJ1
ZmZlcmluZ1BvbGljeShEb05vdEJ1ZmZlckRhdGEpOworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxs
YmFja3MgPSBTZW5kQ2FsbGJhY2tzOworICAgIG9wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9
IERvTm90QnVmZmVyRGF0YTsKICAgICBvcHRpb25zLnByZWZsaWdodFBvbGljeSA9IENvbnNpZGVy
UHJlZmxpZ2h0OwotICAgIG9wdGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscyhBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzKTsKKyAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6SW5jbHVkZTsKICAgICBvcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVu
dCA9IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2U7CiAKQEAg
LTczLDE3ICs3Myw5IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIEJsb2ImIGJsb2IpCiAKIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVz
dCkKIHsKLSAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMu
c2V0U2VuZExvYWRDYWxsYmFja3MoU2VuZENhbGxiYWNrcyk7Ci0gICAgb3B0aW9ucy5zZXRTbmlm
ZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpOwotICAgIG9wdGlvbnMuc2V0RGF0YUJ1ZmZlcmlu
Z1BvbGljeShEb05vdEJ1ZmZlckRhdGEpOwotICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0g
Q29uc2lkZXJQcmVmbGlnaHQ7Ci0gICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZv
cmNlbWVudCA9IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2U7
Ci0KLSAgICAvLyBGSVhNRTogUGFzcyBkaXJlY3RseSBhbGwgZmV0Y2ggb3B0aW9ucyB0byBsb2Fk
ZXIgb3B0aW9ucy4KLSAgICBvcHRpb25zLnJlZGlyZWN0ID0gcmVxdWVzdC5mZXRjaE9wdGlvbnMo
KS5yZWRpcmVjdDsKLSAgICBvcHRpb25zLm1vZGUgPSByZXF1ZXN0LmZldGNoT3B0aW9ucygpLm1v
ZGU7Ci0gICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCkuY3Jl
ZGVudGlhbHM7CisgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhyZXF1ZXN0LmZl
dGNoT3B0aW9ucygpLCBDb25zaWRlclByZWZsaWdodCwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU3RyaW5nKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMoKS5mZXRjaCkpOworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2Fs
bGJhY2tzOworICAgIG9wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IERvTm90QnVmZmVyRGF0
YTsKIAogICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCZjb250ZXh0LCB0
aGlzLCByZXF1ZXN0LmludGVybmFsUmVxdWVzdCgpLCBvcHRpb25zKTsKICAgICBtX2lzU3RhcnRl
ZCA9IG1fbG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CmluZGV4IDE0ZjJiMTY1OWYyZDU2ZTQxZGFmOTNjOTQxNWI3YTAyOTVkNjE0ODcuLjdlNTYzNTU2
YWYzNzJiNWI1M2FkNmMyZjczNWU5OTM0NzY1MDQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBDYWNoZWRGb250KiBD
U1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBp
c1NWRywgYm9vbAogICAgICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwogCiAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5
UG9saWN5SW1wb3NpdGlvbihpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVl
ID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgb3B0aW9u
cy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudElu
VXNlckFnZW50U2hhZG93VHJlZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNr
aXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5
Q2hlY2s7CiAKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKSwgb3B0aW9ucyk7CiAgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggMjgyYzBhZDM1MTUy
NzBlNjgxOThkNDNkYjhjYjdjMzY2OWM1MjE3OS4uOWQ4NzQxOWJhNDNiMTM4Y2FkMjVhNzViZTZj
YjU0MWRmZjZjYTUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApA
QCAtMTIwLDcgKzEyMCw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6
OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkCiAgICAgICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwog
ICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewog
ICAgICAgICAgICAgQVNTRVJUKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICAgICAg
ICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLCAqZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG9wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscygpKTsKKyAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCAqZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2lu
KCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1
ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIGRldGFjaFBlbmRpbmdJbWFnZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDIyNTNlNWVhZWI5OGNlZmFiM2Jk
OWFjYjA0ZWEwNjViZmU0NWU3N2MuLjczMDU4ZWZhOTk3MDVhMzg1ODFkMjk3ZWM3OGI2MDIxZmY0
NGEyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDcgKzg0LDcg
QEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QKIAogICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewogICAgICAgICAgICAgQVNTRVJUKGxvYWRlci5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RG
b3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCAqbG9hZGVy
LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscygp
KTsKKyAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLCAqbG9hZGVyLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1
ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIGRldGFjaFBlbmRpbmdJbWFnZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGNhOTg2YTc1ODM5M2JkZWY2NWQ2
Zjk4ODQ2ZTU3YzVlZmJkODZjYjUuLjY5ZGRiMzU1MTVmNzJkYmY5YTkxMjE5MDA1YmM3NmRiMjBm
OGE4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI2MSw3ICsyNjEs
NyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVcmwpCiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNl
VXJsKS5pc0VtcHR5KCkpIHsKICAgICAgICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50
LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNl
KG1fZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9u
Y2VBdHRyKSwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwogICAgICAgICBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7Ci0gICAgICAgIG9wdGlvbnMuc2V0Q29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbihoYXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9s
aWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5
UG9saWN5SW1wb3NpdGlvbiA9IGhhc0tub3duTm9uY2UgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uOjpEb1BvbGljeUNoZWNrOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzb3Vy
Y2VVcmwpKSwgb3B0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJM
b2FkZXIuY3BwCmluZGV4IGFlNjgxZTVkMjUwM2JlMjMxNDM1MTI4ZmE0MmY0ZmEzOWZhZjA4NzYu
LjMyNjQxZGVjMmNmY2JiNmZkYzI0YWExNzBiMDU2MGNkNjk5OTVlN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtODYsMTAgKzg2LDggQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBCbG8KICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIkdFVCIpOwog
CiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNldFNl
bmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOwotICAgIG9wdGlvbnMuc2V0U25pZmZDb250
ZW50KERvTm90U25pZmZDb250ZW50KTsKLSAgICBvcHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xp
Y3koRG9Ob3RCdWZmZXJEYXRhKTsKLSAgICBvcHRpb25zLnByZWZsaWdodFBvbGljeSA9IENvbnNp
ZGVyUHJlZmxpZ2h0OworICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJh
Y2tzOworICAgIG9wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IERvTm90QnVmZmVyRGF0YTsK
ICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5j
bHVkZTsKICAgICBvcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47
CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZTNiYmY1ZGM3Nzk5ZTZkZWIxY2NmYTIyY2YxZjk4
MDg2NWZjMWI3Ni4uY2RhYTMxNzM1MmQzM2RlMGEzM2I0NmEwZGQ5YWRjOWQ2NjE0Mjg0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjU5LDcgKzI1OSw3IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICBpZiAoZG9jdW1lbnQo
KS5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dTdHlsZVdpdGhOb25jZShhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VBdHRyKSkpIHsKICAgICAgICAg
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKLSAgICAgICAgICAgIG9wdGlvbnMuc2V0
Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpTa2lwUG9saWN5Q2hlY2spOworICAgICAgICAgICAgb3B0aW9ucy5jb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6
U2tpcFBvbGljeUNoZWNrOwogICAgICAgICAgICAgcmVxdWVzdC5zZXRPcHRpb25zKG9wdGlvbnMp
OwogICAgICAgICB9CiAgICAgICAgIHJlcXVlc3Quc2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2lu
KGNyb3NzT3JpZ2luKCksIGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA4MTFjY2JhODk2MTMxNzUwNWQz
NTM0OGJhZDQxZTA5OTgzZWVhYjZhLi5lMTc0NjlhNDdjNGVkZmRmZDJkZGNlZDUxOWRjYjcyNTAz
MjE1MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcApAQCAtNjcwLDggKzY3MCw4IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojpsb2FkUmVzb3VyY2UoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
CiAgICAgcmVxdWVzdC5zZXRIaWRkZW5Gcm9tSW5zcGVjdG9yKHRydWUpOwogCiAgICAgVGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJh
Y2tzKFNlbmRDYWxsYmFja3MpOyAvLyBTbyB3ZSByZW1vdmUgdGhpcyBmcm9tIG1faGlkZGVuUmVx
dWVzdElkZW50aWZpZXJzIG9uIGNvbXBsZXRpb24uCi0gICAgb3B0aW9ucy5zZXREZWZlcnNMb2Fk
aW5nUG9saWN5KERlZmVyc0xvYWRpbmdQb2xpY3k6OkRpc2FsbG93RGVmZXJzTG9hZGluZyk7IC8v
IFNvIHRoZSByZXF1ZXN0IGlzIG5ldmVyIGRlZmVycmVkLgorICAgIG9wdGlvbnMuc2VuZExvYWRD
YWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOyAvLyBTbyB3ZSByZW1vdmUgdGhpcyBmcm9tIG1faGlk
ZGVuUmVxdWVzdElkZW50aWZpZXJzIG9uIGNvbXBsZXRpb24uCisgICAgb3B0aW9ucy5kZWZlcnNM
b2FkaW5nUG9saWN5ID0gRGVmZXJzTG9hZGluZ1BvbGljeTo6RGlzYWxsb3dEZWZlcnNMb2FkaW5n
OyAvLyBTbyB0aGUgcmVxdWVzdCBpcyBuZXZlciBkZWZlcnJlZC4KICAgICBvcHRpb25zLm1vZGUg
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29yczsKICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBvcHRpb25zLmNvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3Jj
ZW1lbnQ6OkRvTm90RW5mb3JjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggNzhjYjc0ZjAzNzdkZDExZTgzYTZj
OGI0NjBlNWNlZjJiYTA3NjYwMi4uOWY2ZjFmMzM2MTY1MjRiMzAyODU0NzZhM2IxM2FlNWEwYmU4
NjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxp
Z2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTY5LDEyICs2OSwxMiBAQCB2b2lkIENyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlcjo6dmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShEb2N1bWVudFRocmVhZGFi
bGVMbwogICAgIH0KIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbjsKLSAgICBpZiAoIXBhc3Nlc0Fj
Y2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRp
YWxzKCksIGxvYWRlci5zZWN1cml0eU9yaWdpbigpLCBkZXNjcmlwdGlvbikpIHsKKyAgICBpZiAo
IXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbG9hZGVyLm9wdGlvbnMoKS5hbGxv
d0NyZWRlbnRpYWxzLCBsb2FkZXIuc2VjdXJpdHlPcmlnaW4oKSwgZGVzY3JpcHRpb24pKSB7CiAg
ICAgICAgIGxvYWRlci5wcmVmbGlnaHRGYWlsdXJlKGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51cmwoKSwgZGVzY3JpcHRpb24s
IFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbT4obG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxz
KCkpOworICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlSXRlbT4obG9hZGVyLm9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxzKTsK
ICAgICBpZiAoIXJlc3VsdC0+cGFyc2UocmVzcG9uc2UsIGRlc2NyaXB0aW9uKQogICAgICAgICB8
fCAhcmVzdWx0LT5hbGxvd3NDcm9zc09yaWdpbk1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwg
ZGVzY3JpcHRpb24pCiAgICAgICAgIHx8ICFyZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVy
cyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSwgZGVzY3JpcHRpb24pKSB7CkBAIC0xMDAsMTUg
KzEwMCw4IEBAIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjpub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAKIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRD
aGVja2VyOjpzdGFydFByZWZsaWdodCgpCiB7Ci0gICAgYXV0byBvcHRpb25zID0gbV9sb2FkZXIu
b3B0aW9ucygpOworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gc3RhdGljX2Nh
c3Q8RmV0Y2hPcHRpb25zPihtX2xvYWRlci5vcHRpb25zKCkpOwogICAgIG9wdGlvbnMuY3JlZGVu
dGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OwotICAgIG9wdGlvbnMuc2V0
U2VjdXJpdHlDaGVjayhEb1NlY3VyaXR5Q2hlY2spOwotICAgIC8vIERvbid0IHNuaWZmIGNvbnRl
bnQgb3Igc2VuZCBsb2FkIGNhbGxiYWNrcyBmb3IgdGhlIHByZWZsaWdodCByZXF1ZXN0LgotICAg
IG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3MoRG9Ob3RTZW5kQ2FsbGJhY2tzKTsKLSAgICBv
cHRpb25zLnNldFNuaWZmQ29udGVudChEb05vdFNuaWZmQ29udGVudCk7Ci0gICAgLy8gS2VlcCBi
dWZmZXJpbmcgdGhlIGRhdGEgZm9yIHRoZSBwcmVmbGlnaHQgcmVxdWVzdC4KLSAgICBvcHRpb25z
LnNldERhdGFCdWZmZXJpbmdQb2xpY3koQnVmZmVyRGF0YSk7Ci0KICAgICBvcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6TWFudWFsOwogCiAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHByZWZsaWdodFJlcXVlc3QoY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJl
cXVlc3QobV9yZXF1ZXN0LCBtX2xvYWRlci5zZWN1cml0eU9yaWdpbigpKSwgb3B0aW9ucyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
CmluZGV4IDRiNzJhZjczZmY3YWI3ZjE3NDFjMzllZmViMGZlMjllZjI5YzJmNGMuLjJhNTM3NDUy
YWEzZTg4OTA2YzlkODVjNjZlNTEzMzY0YmY1NzIxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC05Niw3ICs5Niw3IEBA
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3Vt
ZW50JiBkb2N1bWVudCwgVGhyZWFkYWJsCiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihpc0FsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShyZXF1ZXN0LnVybCgpKSk7
CiAKLSAgICBtX29wdGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscygobV9vcHRpb25zLmNyZWRlbnRp
YWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgfHwgKG1fb3B0aW9ucy5j
cmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luICYmIG1f
c2FtZU9yaWdpblJlcXVlc3QpKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMpOworICAgIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gKG1f
b3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRl
IHx8IChtX29wdGlvbnMuY3JlZGVudGlhbHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
U2FtZU9yaWdpbiAmJiBtX3NhbWVPcmlnaW5SZXF1ZXN0KSkgPyBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogCiAgICAgaWYgKG1fc2FtZU9yaWdp
blJlcXVlc3QgfHwgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMp
IHsKICAgICAgICAgbG9hZFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgRG9TZWN1cml0eUNoZWNr
KTsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFr
ZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZQogICAgICAgICBt
YWtlU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwogICAg
IGVsc2UgewogICAgICAgICBtX3NpbXBsZVJlcXVlc3QgPSBmYWxzZTsKLSAgICAgICAgaWYgKENy
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGln
aHQoc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX29wdGlvbnMu
YWxsb3dDcmVkZW50aWFscygpLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVh
ZGVyRmllbGRzKCkpKQorICAgICAgICBpZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdodChzZWN1cml0eU9yaWdpbigpLnRvU3RyaW5n
KCksIHJlcXVlc3QudXJsKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCByZXF1ZXN0Lmh0
dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpKQogICAgICAgICAgICAgcHJl
ZmxpZ2h0U3VjY2VzcyhXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQoV1RGTW92ZShyZXF1
ZXN0KSk7CkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6
Om1ha2VTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkpOwor
ICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIHNlY3VyaXR5T3JpZ2lu
KCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKICAgICBsb2FkUmVxdWVzdChXVEZNb3Zl
KHJlcXVlc3QpLCBEb1NlY3VyaXR5Q2hlY2spOwogfQogCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9p
ZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlLCBSZXNvdXIKICAgICAgICAgaWYgKG1fc2ltcGxlUmVxdWVzdCkgewogICAg
ICAgICAgICAgU3RyaW5nIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uOwogICAgICAgICAg
ICAgYWxsb3dSZWRpcmVjdCA9IGlzVmFsaWRDcm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKHJlcXVl
c3QudXJsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKG1fc2FtZU9yaWdpblJl
cXVlc3QgfHwgcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG1fb3B0
aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCksIHNlY3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xF
cnJvckRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICAgICAgJiYgKG1fc2FtZU9yaWdpblJlcXVl
c3QgfHwgcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG1fb3B0aW9u
cy5hbGxvd0NyZWRlbnRpYWxzLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JE
ZXNjcmlwdGlvbikpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFsbG93UmVkaXJlY3QpIHsK
QEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cmVkaXJl
Y3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIFJlc291cgogICAgICAgICAgICAg
bV9zYW1lT3JpZ2luUmVxdWVzdCA9IGZhbHNlOwogCiAgICAgICAgICAgICBpZiAobV9vcHRpb25z
LmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pCi0g
ICAgICAgICAgICAgICAgbV9vcHRpb25zLnNldEFsbG93Q3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0
b3JlZENyZWRlbnRpYWxzKTsKKyAgICAgICAgICAgICAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyA9IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAogICAgICAgICAgICAgY2xlYW5S
ZWRpcmVjdGVkUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCk7CiAKQEAgLTI3Nyw3ICsy
NzcsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29ucwogCiAgICAgU3RyaW5nIGFjY2Vzc0NvbnRy
b2xFcnJvckRlc2NyaXB0aW9uOwogICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiBtX29w
dGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpIHsKLSAgICAgICAgaWYgKCFw
YXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzKCksIHNlY3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkg
eworICAgICAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbV9vcHRp
b25zLmFsbG93Q3JlZGVudGlhbHMsIHNlY3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJv
ckRlc2NyaXB0aW9uKSkgewogICAgICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXNwb25zZS51cmwoKSwgYWNjZXNz
Q29udHJvbEVycm9yRGVzY3JpcHRpb24sIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRy
b2wpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzM0LDcgKzMzNCw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGYWlsKHVuc2lnbmVkIGxvbmcsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yCiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
cHJlZmxpZ2h0U3VjY2VzcyhSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIFJlc291
cmNlUmVxdWVzdCBhY3R1YWxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwotICAgIHVwZGF0ZVJl
cXVlc3RGb3JBY2Nlc3NDb250cm9sKGFjdHVhbFJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1f
b3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkpOworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3ND
b250cm9sKGFjdHVhbFJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0Ny
ZWRlbnRpYWxzKTsKIAogICAgIG1fcHJlZmxpZ2h0Q2hlY2tlciA9IE51bGxvcHQ7CiAKQEAgLTM1
Nyw3ICszNTcsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2VjdXJpdHlDaAogewogICAgIC8vIEFueSBjcmVk
ZW50aWFsIHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBjcm9zcy1zaXRlIHJlcXVl
c3RzLgogICAgIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgbV9v
cHRpb25zLnNldFNlY3VyaXR5Q2hlY2soc2VjdXJpdHlDaGVjayk7CisgICAgbV9vcHRpb25zLnNl
Y3VyaXR5Q2hlY2sgPSBzZWN1cml0eUNoZWNrOwogICAgIEFTU0VSVChtX3NhbWVPcmlnaW5SZXF1
ZXN0IHx8IHJlcXVlc3RVUkwudXNlcigpLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fc2FtZU9y
aWdpblJlcXVlc3QgfHwgcmVxdWVzdFVSTC5wYXNzKCkuaXNFbXB0eSgpKTsKIApAQCAtMzcxLDcg
KzM3MSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCBuZXdSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOwogICAgICAgICBp
ZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5yZXNvdXJjZVRpbWlu
Z0VuYWJsZWQoKSkKICAgICAgICAgICAgIG5ld1JlcXVlc3Quc2V0SW5pdGlhdG9yKG1fb3B0aW9u
cy5pbml0aWF0b3IpOwotICAgICAgICBuZXdSZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRBbGxvd0Nvb2tpZXMobV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMoKSA9PSBBbGxvd1N0
b3JlZENyZWRlbnRpYWxzKTsKKyAgICAgICAgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1
ZXN0KCkuc2V0QWxsb3dDb29raWVzKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMpOwogCiAgICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7CiAgICAg
ICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVz
dFJhd1Jlc291cmNlKG5ld1JlcXVlc3QpOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBTZWN1cml0eUNoCiAgICAgICAgIGF1dG8mIGZyYW1lTG9hZGVyID0gbV9kb2N1bWVudC5mcmFt
ZSgpLT5sb2FkZXIoKTsKICAgICAgICAgaWYgKCFmcmFtZUxvYWRlci5taXhlZENvbnRlbnRDaGVj
a2VyKCkuY2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwg
cmVxdWVzdFVSTCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlkZW50aWZpZXIgPSBm
cmFtZUxvYWRlci5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHJlcXVlc3QsIG1fb3B0aW9ucy5h
bGxvd0NyZWRlbnRpYWxzKCksIG1fb3B0aW9ucy5jbGllbnRDcmVkZW50aWFsUG9saWN5LCBlcnJv
ciwgcmVzcG9uc2UsIGRhdGEpOworICAgICAgICBpZGVudGlmaWVyID0gZnJhbWVMb2FkZXIubG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShyZXF1ZXN0LCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFs
cywgbV9vcHRpb25zLmNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGVycm9yLCByZXNwb25zZSwgZGF0
YSk7CiAgICAgfQogCiAgICAgaWYgKCFlcnJvci5pc051bGwoKSAmJiByZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpIDw9IDApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFn
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4
IDc2MDIwZTM5YTRjNWMwOTdmNjExZWQ0NDg0ZWIzM2NmNzY1NmY1YzcuLmQ2MTZmZjgwOGQ1ZTBl
YjUwYmI1NmY2YmVhOWU5MGI5NzhiNGJhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21F
bGVtZW50KCkKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2Ug
PSBudWxscHRyOwogICAgIGlmICghYXR0ci5pc051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJh
aWxpbmdIVE1MU3BhY2VzKGF0dHIpLmlzRW1wdHkoKSkgewogICAgICAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCk7Ci0gICAgICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbihlbGVtZW50KCkuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworICAgICAgICBvcHRpb25zLmNvbnRl
bnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBlbGVtZW50KCkuaXNJblVzZXJBZ2VudFNoYWRv
d1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVj
ayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3Vt
ZW50LmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpLCBvcHRpb25zKTsKICAgICAgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IoJmVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBjMzc3YzA4ZmY3NjRiZGE3M2E0NjM4YjY5MWI2NjlhN2IxYTY0
YzMxLi42NTYwMjBhMGFjNjM4YmRmMGFlYjBhNDQ3NjY4ZmVjNTMzODUyOTc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogUmVzb3VyY2VMb2FkZXI6OlJlc291cmNlTG9hZGVyKEZyYW1lJiBmcmFt
ZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMpCiAgICAgOiBtX2ZyYW1lKCZmcmFtZSkK
ICAgICAsIG1fZG9jdW1lbnRMb2FkZXIoZnJhbWUubG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSkKLSAgICAsIG1fZGVmZXJzTG9hZGluZyhvcHRpb25zLmRlZmVyc0xvYWRpbmdQb2xpY3ko
KSA9PSBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcgJiYgZnJhbWUucGFn
ZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgLCBtX2RlZmVyc0xvYWRpbmcob3B0aW9ucy5kZWZl
cnNMb2FkaW5nUG9saWN5ID09IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGlu
ZyAmJiBmcmFtZS5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkKICAgICAsIG1fb3B0aW9ucyhvcHRp
b25zKQogewogfQpAQCAtMTI1LDkgKzEyNSw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmluaXQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByKQogICAgIH0KICNlbmRpZgogICAgIAotICAgIG1fZGVm
ZXJzTG9hZGluZyA9IG1fb3B0aW9ucy5kZWZlcnNMb2FkaW5nUG9saWN5KCkgPT0gRGVmZXJzTG9h
ZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nICYmIG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJz
TG9hZGluZygpOworICAgIG1fZGVmZXJzTG9hZGluZyA9IG1fb3B0aW9ucy5kZWZlcnNMb2FkaW5n
UG9saWN5ID09IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZyAmJiBtX2Zy
YW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKTsKIAotICAgIGlmIChtX29wdGlvbnMuc2VjdXJp
dHlDaGVjaygpID09IERvU2VjdXJpdHlDaGVjayAmJiAhbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheShjbGllbnRSZXF1ZXN0LnVybCgpKSkgeworICAgIGlm
IChtX29wdGlvbnMuc2VjdXJpdHlDaGVjayA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgIW1fZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXkoY2xpZW50UmVxdWVzdC51
cmwoKSkpIHsKICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChtX2Zy
YW1lLmdldCgpLCBjbGllbnRSZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKICAgICAgICAgcmVsZWFz
ZVJlc291cmNlcygpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDYsMTIgKzIwNiwxMiBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoZnJhbWVMb2FkZXIoKS0+bmV0
d29ya2luZ0NvbnRleHQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fb3B0
aW9ucy5zbmlmZkNvbnRlbnQoKSA9PSBTbmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBt
X3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9
PSBTbmlmZkNvbnRlbnQpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2Fk
aW5nKGJvb2wgZGVmZXJzKQogewotICAgIGlmIChtX29wdGlvbnMuZGVmZXJzTG9hZGluZ1BvbGlj
eSgpID09IERlZmVyc0xvYWRpbmdQb2xpY3k6OkRpc2FsbG93RGVmZXJzTG9hZGluZykKKyAgICBp
ZiAobV9vcHRpb25zLmRlZmVyc0xvYWRpbmdQb2xpY3kgPT0gRGVmZXJzTG9hZGluZ1BvbGljeTo6
RGlzYWxsb3dEZWZlcnNMb2FkaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2RlZmVyc0xv
YWRpbmcgPSBkZWZlcnM7CkBAIC0yNjgsMTQgKzI2OCwxNCBAQCB2b2lkIFJlc291cmNlTG9hZGVy
Ojpsb2FkRGF0YVVSTCgpCiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJp
bmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KQoteyAKLSAg
ICBtX29wdGlvbnMuc2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShkYXRhQnVmZmVyaW5nUG9saWN5KTsg
Cit7CisgICAgbV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPSBkYXRhQnVmZmVyaW5nUG9s
aWN5OwogCiAgICAgLy8gUmVzZXQgYW55IGFscmVhZHkgYnVmZmVyZWQgZGF0YQogICAgIGlmIChk
YXRhQnVmZmVyaW5nUG9saWN5ID09IERvTm90QnVmZmVyRGF0YSkKICAgICAgICAgbV9yZXNvdXJj
ZURhdGEgPSBudWxscHRyOwogfQotICAgIAorCiB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3dp
dGNoVG9TdWJzdGl0dXRlUmVzb3VyY2UoKQogewogICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRl
ci0+aXNTdWJzdGl0dXRlTG9hZFBlbmRpbmcodGhpcykpOwpAQCAtMjg2LDcgKzI4Niw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTd2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCiAKIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBh
eWxvYWRUeXBlKQogewotICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09
IERvTm90QnVmZmVyRGF0YSkKKyAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kg
PT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fcmVzb3Vy
Y2VEYXRhIHx8IGRhdGFQYXlsb2FkVHlwZSA9PSBEYXRhUGF5bG9hZFdob2xlUmVzb3VyY2UpIHsK
QEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJ
bnRlcm5hbChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlcwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNl
bmRDYWxsYmFja3MpIHsKKyAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IFNl
bmRDYWxsYmFja3MpIHsKICAgICAgICAgaWYgKGNyZWF0ZWRSZXNvdXJjZUlkZW50aWZpZXIpCiAg
ICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmFzc2lnbklkZW50aWZpZXJUb0lu
aXRpYWxSZXF1ZXN0KG1faWRlbnRpZmllciwgZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCk7CiAK
QEAgLTQ1OCw4ICs0NTgsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIAogICAgIGlmIChGb3JtRGF0YSogZGF0YSA9
IG1fcmVxdWVzdC5odHRwQm9keSgpKQogICAgICAgICBkYXRhLT5yZW1vdmVHZW5lcmF0ZWRGaWxl
c0lmTmVlZGVkKCk7Ci0gICAgICAgIAotICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MoKSA9PSBTZW5kQ2FsbGJhY2tzKQorCisgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxi
YWNrcyA9PSBTZW5kQ2FsbGJhY2tzKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigp
LmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCBtX3Jlc3BvbnNlKTsKIH0KIApAQCAtNDg5LDExICs0
ODksMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIFIKICAgICBSZWY8UmVzb3VyY2VMb2FkZXI+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgYWRkRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0
aCwgYnVmZmVyLmdldCgpLCBkYXRhUGF5bG9hZFR5cGUpOwotICAgIAorCiAgICAgLy8gRklYTUU6
IElmIHdlIGdldCBhIHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJCIGJ5dGVzLCB0aGlzIGNvZGUg
d29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBj
b21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFj
dGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4K
LSAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzKCkgPT0gU2VuZENhbGxiYWNrcyAm
JiBtX2ZyYW1lKQorICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENh
bGxiYWNrcyAmJiBtX2ZyYW1lKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRp
ZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciA/IGJ1ZmZlci0+ZGF0YSgpIDogZGF0YSwgYnVmZmVy
ID8gYnVmZmVyLT5zaXplKCkgOiBsZW5ndGgsIHN0YXRpY19jYXN0PGludD4oZW5jb2RlZERhdGFM
ZW5ndGgpKTsKIH0KIApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmdPbmVQYXJ0KGRvdWJsZSBmaW5pc2hUaW1lKQogICAgIGlmIChtX25vdGlm
aWVkTG9hZENvbXBsZXRlKQogICAgICAgICByZXR1cm47CiAgICAgbV9ub3RpZmllZExvYWRDb21w
bGV0ZSA9IHRydWU7Ci0gICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNl
bmRDYWxsYmFja3MpCisgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5k
Q2FsbGJhY2tzKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZEZpbmlzaExv
YWQodGhpcywgZmluaXNoVGltZSk7CiB9CiAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFJlc291
cmNlTG9hZGVyOjpjbGVhbnVwRm9yRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgaWYgKG1fbm90aWZpZWRMb2FkQ29tcGxldGUpCiAgICAgICAgIHJldHVybjsKICAgICBtX25v
dGlmaWVkTG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2Fs
bGJhY2tzKCkgPT0gU2VuZENhbGxiYWNrcyAmJiBtX2lkZW50aWZpZXIpCisgICAgaWYgKG1fb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzICYmIG1faWRlbnRpZmllcikK
ICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRGYWlsVG9Mb2FkKHRoaXMsIGVy
cm9yKTsKIH0KIApAQCAtNjc4LDkgKzY3OCw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNhbm5v
dFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKQogCiBib29sIFJlc291cmNlTG9hZGVyOjpzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSgpCiB7Ci0gICAgaWYgKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzKCkgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQorICAgIGlmIChtX29wdGlvbnMu
YWxsb3dDcmVkZW50aWFscyA9PSBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVk
VGhpcygqdGhpcyk7CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLnNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSk7CiB9CkBA
IC03MDAsNyArNzAwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGwKICAgICAvLyBhbnl0aGlu
ZyBpbmNsdWRpbmcgcG9zc2libHkgZGVyZWZpbmcgdGhpczsgb25lIGV4YW1wbGUgb2YgdGhpcyBp
cyBSYWRhciAzMjY2MjE2LgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7CiAKLSAgICBpZiAobV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMoKSA9PSBBbGxvd1N0
b3JlZENyZWRlbnRpYWxzKSB7CisgICAgaWYgKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpIHsKICAgICAgICAgaWYgKGlzQWxsb3dlZFRvQXNrVXNl
ckZvckNyZWRlbnRpYWxzKCkpIHsKICAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVy
KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMsIGNoYWxsZW5nZSk7CiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmlu
ZGV4IGVjN2U0ZDI1MWFmNTg3MzdhNGYzMTczNWMyZDRjYjkyNWUxYTk5YWIuLjhjNzM4YTJjYTdj
OTBjNTlkNjgxZjA2MTJhM2U1MjBlZTU2YjZhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5oCkBAIC0xMjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBV
UkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfQogICAgIFJlc291cmNl
SGFuZGxlKiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQotICAgIGJv
b2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNlbmRDYWxsYmFja3M7IH0KLSAgICB2b2lkIHNl
dFNlbmRDYWxsYmFja1BvbGljeShTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3Mp
IHsgbV9vcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKHNlbmRMb2FkQ2FsbGJhY2tzKTsgfQot
ICAgIGJvb2wgc2hvdWxkU25pZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNu
aWZmQ29udGVudCgpID09IFNuaWZmQ29udGVudDsgfQorICAgIGJvb2wgc2hvdWxkU2VuZFJlc291
cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxi
YWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CisgICAgdm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3ko
U2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9h
ZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2FsbGJhY2tzOyB9CisgICAgYm9vbCBzaG91bGRTbmlmZkNv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29u
dGVudDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3Jl
ZGVudGlhbHMoKSBjb25zdDsKLSAgICBib29sIHNob3VsZEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8o
KSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2VydGlmaWNhdGVJbmZvUG9saWN5KCkgPT0gSW5j
bHVkZUNlcnRpZmljYXRlSW5mbzsgfQorICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRl
SW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0g
SW5jbHVkZUNlcnRpZmljYXRlSW5mbzsgfQogCiAgICAgYm9vbCByZWFjaGVkVGVybWluYWxTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hlZFRlcm1pbmFsU3RhdGU7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCmluZGV4IGM3NzlmYmQxODUz
ZTI3OWM0NDAwNmY0MmY5MGNhYmYzZmJmOTE5MjMuLmFjOTM0MjU4Mzk4ZDMzYTZjY2UyZDRmYTQw
MzY1ODkwMTZkNGZiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmgKQEAgLTgxLDYwICs4MSwzNSBAQCBlbnVtIGNsYXNzIENsaWVudENyZWRlbnRp
YWxQb2xpY3kgewogfTsKIAogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBG
ZXRjaE9wdGlvbnMgewotICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpCi0gICAgICAgIDogbV9z
ZW5kTG9hZENhbGxiYWNrcyhEb05vdFNlbmRDYWxsYmFja3MpCi0gICAgICAgICwgbV9zbmlmZkNv
bnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpCi0gICAgICAgICwgbV9kYXRhQnVmZmVyaW5nUG9saWN5
KEJ1ZmZlckRhdGEpCi0gICAgICAgICwgbV9hbGxvd0NyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFscykKLSAgICAgICAgLCBtX3NlY3VyaXR5Q2hlY2soRG9TZWN1cml0eUNoZWNr
KQotICAgICAgICAsIG1fY2VydGlmaWNhdGVJbmZvUG9saWN5KERvTm90SW5jbHVkZUNlcnRpZmlj
YXRlSW5mbykKLSAgICB7Ci0gICAgfQorICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQor
CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykg
OiBGZXRjaE9wdGlvbnMob3B0aW9ucykgeyB9CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMo
U2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzLCBDb250ZW50U25pZmZpbmdQb2xp
Y3kgc25pZmZDb250ZW50LCBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3ks
IFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xp
Y3kgY3JlZGVudGlhbFBvbGljeSwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFs
cywgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGUg
bW9kZSwgQ2VydGlmaWNhdGVJbmZvUG9saWN5IGNlcnRpZmljYXRlSW5mb1BvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
LCBEZWZlcnNMb2FkaW5nUG9saWN5IGRlZmVyc0xvYWRpbmdQb2xpY3ksIENhY2hpbmdQb2xpY3kg
Y2FjaGluZ1BvbGljeSkKLSAgICAgICAgOiBtX3NlbmRMb2FkQ2FsbGJhY2tzKHNlbmRMb2FkQ2Fs
bGJhY2tzKQotICAgICAgICAsIG1fc25pZmZDb250ZW50KHNuaWZmQ29udGVudCkKLSAgICAgICAg
LCBtX2RhdGFCdWZmZXJpbmdQb2xpY3koZGF0YUJ1ZmZlcmluZ1BvbGljeSkKLSAgICAgICAgLCBt
X2FsbG93Q3JlZGVudGlhbHMoYWxsb3dDcmVkZW50aWFscykKLSAgICAgICAgLCBtX3NlY3VyaXR5
Q2hlY2soc2VjdXJpdHlDaGVjaykKLSAgICAgICAgLCBtX2NlcnRpZmljYXRlSW5mb1BvbGljeShj
ZXJ0aWZpY2F0ZUluZm9Qb2xpY3kpCi0gICAgICAgICwgbV9jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uKGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24pCi0gICAgICAgICwgbV9k
ZWZlcnNMb2FkaW5nUG9saWN5KGRlZmVyc0xvYWRpbmdQb2xpY3kpCi0gICAgICAgICwgbV9jYWNo
aW5nUG9saWN5KGNhY2hpbmdQb2xpY3kpCisgICAgICAgIDogc2VuZExvYWRDYWxsYmFja3Moc2Vu
ZExvYWRDYWxsYmFja3MpCisgICAgICAgICwgc25pZmZDb250ZW50KHNuaWZmQ29udGVudCkKKyAg
ICAgICAgLCBkYXRhQnVmZmVyaW5nUG9saWN5KGRhdGFCdWZmZXJpbmdQb2xpY3kpCisgICAgICAg
ICwgYWxsb3dDcmVkZW50aWFscyhhbGxvd0NyZWRlbnRpYWxzKQorICAgICAgICAsIHNlY3VyaXR5
Q2hlY2soc2VjdXJpdHlDaGVjaykKKyAgICAgICAgLCBjZXJ0aWZpY2F0ZUluZm9Qb2xpY3koY2Vy
dGlmaWNhdGVJbmZvUG9saWN5KQorICAgICAgICAsIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb24oY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbikKKyAgICAgICAgLCBkZWZlcnNM
b2FkaW5nUG9saWN5KGRlZmVyc0xvYWRpbmdQb2xpY3kpCisgICAgICAgICwgY2FjaGluZ1BvbGlj
eShjYWNoaW5nUG9saWN5KQogICAgICAgICAsIGNsaWVudENyZWRlbnRpYWxQb2xpY3koY3JlZGVu
dGlhbFBvbGljeSkKICAgICB7CiAgICAgICAgIHRoaXMtPmNyZWRlbnRpYWxzID0gY3JlZGVudGlh
bHM7CiAgICAgICAgIHRoaXMtPm1vZGUgPSBtb2RlOwogICAgIH0KIAotICAgIFNlbmRDYWxsYmFj
a1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNl
bmRDYWxsYmFja1BvbGljeT4obV9zZW5kTG9hZENhbGxiYWNrcyk7IH0KLSAgICB2b2lkIHNldFNl
bmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja1BvbGljeSBhbGxvdykgeyBtX3NlbmRMb2FkQ2Fs
bGJhY2tzID0gYWxsb3c7IH0KLSAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udGVudFNuaWZmaW5nUG9saWN5PihtX3Nu
aWZmQ29udGVudCk7IH0KLSAgICB2b2lkIHNldFNuaWZmQ29udGVudChDb250ZW50U25pZmZpbmdQ
b2xpY3kgcG9saWN5KSB7IG1fc25pZmZDb250ZW50ID0gcG9saWN5OyB9Ci0gICAgRGF0YUJ1ZmZl
cmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RGF0YUJ1ZmZlcmluZ1BvbGljeT4obV9kYXRhQnVmZmVyaW5nUG9saWN5KTsgfQotICAgIHZv
aWQgc2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IHBvbGljeSkgeyBt
X2RhdGFCdWZmZXJpbmdQb2xpY3kgPSBwb2xpY3k7IH0KLSAgICBTdG9yZWRDcmVkZW50aWFscyBh
bGxvd0NyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RvcmVkQ3JlZGVu
dGlhbHM+KG1fYWxsb3dDcmVkZW50aWFscyk7IH0KLSAgICB2b2lkIHNldEFsbG93Q3JlZGVudGlh
bHMoU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3cpIHsgbV9hbGxvd0NyZWRlbnRpYWxzID0gYWxsb3c7
IH0KLSAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2soKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTZWN1cml0eUNoZWNrUG9saWN5PihtX3NlY3VyaXR5Q2hlY2spOyB9Ci0g
ICAgdm9pZCBzZXRTZWN1cml0eUNoZWNrKFNlY3VyaXR5Q2hlY2tQb2xpY3kgY2hlY2spIHsgbV9z
ZWN1cml0eUNoZWNrID0gY2hlY2s7IH0KLSAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgY2VydGlm
aWNhdGVJbmZvUG9saWN5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2VydGlmaWNhdGVJ
bmZvUG9saWN5PihtX2NlcnRpZmljYXRlSW5mb1BvbGljeSk7IH0KLSAgICB2b2lkIHNldENlcnRp
ZmljYXRlSW5mb1BvbGljeShDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgcG9saWN5KSB7IG1fY2VydGlm
aWNhdGVJbmZvUG9saWN5ID0gcG9saWN5OyB9Ci0gICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRDb250ZW50
U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24g
aW1wb3NpdGlvbikgeyBtX2NvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBpbXBvc2l0
aW9uOyB9Ci0gICAgRGVmZXJzTG9hZGluZ1BvbGljeSBkZWZlcnNMb2FkaW5nUG9saWN5KCkgY29u
c3QgeyByZXR1cm4gbV9kZWZlcnNMb2FkaW5nUG9saWN5OyB9Ci0gICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nUG9saWN5KERlZmVyc0xvYWRpbmdQb2xpY3kgZGVmZXJzTG9hZGluZ1BvbGljeSkgeyBt
X2RlZmVyc0xvYWRpbmdQb2xpY3kgPSBkZWZlcnNMb2FkaW5nUG9saWN5OyB9Ci0gICAgQ2FjaGlu
Z1BvbGljeSBjYWNoaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoaW5nUG9saWN5OyB9
Ci0gICAgdm9pZCBzZXRDYWNoaW5nUG9saWN5KENhY2hpbmdQb2xpY3kgY2FjaGluZ1BvbGljeSkg
eyBtX2NhY2hpbmdQb2xpY3kgPSBjYWNoaW5nUG9saWN5OyB9Ci0KLSAgICB1bnNpZ25lZCBtX3Nl
bmRMb2FkQ2FsbGJhY2tzIDogMTsKLSAgICB1bnNpZ25lZCBtX3NuaWZmQ29udGVudCA6IDE7Ci0g
ICAgdW5zaWduZWQgbV9kYXRhQnVmZmVyaW5nUG9saWN5IDogMTsKLSAgICB1bnNpZ25lZCBtX2Fs
bG93Q3JlZGVudGlhbHMgOiAxOyAvLyBXaGV0aGVyIEhUVFAgY3JlZGVudGlhbHMgYW5kIGNvb2tp
ZXMgYXJlIHNlbnQgd2l0aCB0aGUgcmVxdWVzdC4KLSAgICB1bnNpZ25lZCBtX3NlY3VyaXR5Q2hl
Y2sgOiAxOwotICAgIHVuc2lnbmVkIG1fY2VydGlmaWNhdGVJbmZvUG9saWN5IDogMTsgLy8gV2hl
dGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxkIGluY2x1ZGUgY2VydGlmaWNhdGUgaW5mby4KLSAgICBD
b250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uIG1fY29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbiB7IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sg
fTsKLSAgICBEZWZlcnNMb2FkaW5nUG9saWN5IG1fZGVmZXJzTG9hZGluZ1BvbGljeSB7IERlZmVy
c0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZyB9OwotICAgIENhY2hpbmdQb2xpY3kg
bV9jYWNoaW5nUG9saWN5IHsgQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nIH07CisgICAgU2Vu
ZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJhY2tzIH07
CisgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IERvTm90U25pZmZDb250
ZW50IH07CisgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5IHsgQnVm
ZmVyRGF0YSB9OworICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgeyBEb05v
dEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgfTsKKyAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3Vy
aXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKKyAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kg
Y2VydGlmaWNhdGVJbmZvUG9saWN5IHsgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvIH07Cisg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uIHsgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVj
ayB9OworICAgIERlZmVyc0xvYWRpbmdQb2xpY3kgZGVmZXJzTG9hZGluZ1BvbGljeSB7IERlZmVy
c0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZyB9OworICAgIENhY2hpbmdQb2xpY3kg
Y2FjaGluZ1BvbGljeSB7IENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZyB9OwogCiAgICAgQ2xp
ZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5IHsgQ2xpZW50Q3JlZGVu
dGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2NzZhMjM5NTIyMDUw
ZjlmYTQ4NjhhYzU4MTZlYmQ3NWRlNjU5ZjZhLi45ZmFlY2JhNDM0OTAxNTgxOWQ2YjhiZTc1Mzc4
MzY5M2E2OWFhMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCBib29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja1Jl
ZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJlc291cmNlUgogICAgIEFT
U0VSVChtX29yaWdpbik7CiAgICAgU3RyaW5nIGVycm9yRGVzY3JpcHRpb247CiAgICAgYm9vbCBy
ZXNwb25zZVBhc3Nlc0NPUlMgPSBtX29yaWdpbi0+Y2FuUmVxdWVzdChwcmV2aW91c1JlcXVlc3Qu
dXJsKCkpCi0gICAgICAgIHx8IHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZWRpcmVjdFJlc3Bv
bnNlLCBvcHRpb25zKCkuYWxsb3dDcmVkZW50aWFscygpLCAqbV9vcmlnaW4sIGVycm9yRGVzY3Jp
cHRpb24pOworICAgICAgICB8fCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVkaXJlY3RSZXNw
b25zZSwgb3B0aW9ucygpLmFsbG93Q3JlZGVudGlhbHMsICptX29yaWdpbiwgZXJyb3JEZXNjcmlw
dGlvbik7CiAgICAgaWYgKCFyZXNwb25zZVBhc3Nlc0NPUlMgfHwgIWlzVmFsaWRDcm9zc09yaWdp
blJlZGlyZWN0aW9uVVJMKG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIGlmIChtX2ZyYW1l
ICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2UgPSAiQ3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVz
b3VyY2UgU2hhcmluZyBwb2xpY3k6ICIgKwpAQCAtNDI4LDcgKzQyOCw3IEBAIGJvb2wgU3VicmVz
b3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2woY29u
c3QgUmVzb3VyY2VSCiAgICAgLy8gSWYgdGhlIHJlcXVlc3QgVVJMIG9yaWdpbiBpcyBub3QgdGhl
IHNhbWUgYXMgdGhlIG9yaWdpbmFsIG9yaWdpbiwgdGhlIHJlcXVlc3Qgb3JpZ2luIHNob3VsZCBi
ZSBzZXQgdG8gYSBnbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllci4KICAgICBtX29yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKTsKICAgICBjbGVhblJlZGlyZWN0ZWRSZXF1ZXN0
Rm9yQWNjZXNzQ29udHJvbChuZXdSZXF1ZXN0KTsKLSAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbChuZXdSZXF1ZXN0LCAqbV9vcmlnaW4sIG9wdGlvbnMoKS5hbGxvd0NyZWRlbnRpYWxz
KCkpOworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsICptX29y
aWdpbiwgb3B0aW9ucygpLmFsbG93Q3JlZGVudGlhbHMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmluZGV4IDZjMGU1OWY2
MjkzNGVmNGMwMjg4Yzg1ZGJjNDAxZjViOGU1OTczMjMuLmM4MDEwYzY5MzNmMzAyZWI4N2Q4OTEx
OWZhOTk2ZTRhYmExOTNkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0
VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2Fk
ZXIuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBib29sIGkKICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKLSAgICBvcHRpb25z
LnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oaXNJbml0aWF0aW5nRWxlbWVudElu
VXNlckFnZW50U2hhZG93VHJlZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNr
aXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5
Q2hlY2spOworICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlz
SW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUgPyBDb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGN1
ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKSwgb3B0
aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuY3BwCmluZGV4IGI2NmQ1NGZhOWExYzM1NjVkNjgzMTZkMTI2NTYxNDAyODBiZjc4Yjgu
LmM4MDYwNTE4MGU5NGNlY2JiYTgzOGJkZDE2YWM5ZTdkOWE5NTRkM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjIwLDcg
KzIyMCw3IEBAIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBk
ZWZlcnMpCiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KQogewotICAgIG1fb3B0aW9u
cy5zZXREYXRhQnVmZmVyaW5nUG9saWN5KGRhdGFCdWZmZXJpbmdQb2xpY3kpOworICAgIG1fb3B0
aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID0gZGF0YUJ1ZmZlcmluZ1BvbGljeTsKIH0KIAogc3Rh
dGljIGJvb2wgc2hvdWxkSWdub3JlSGVhZGVyRm9yQ2FjaGVSZXVzZShIVFRQSGVhZGVyTmFtZSBu
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
aW5kZXggZGQ1Nzg3NTk4OWNkMjA5NzI4YjUzYzc0NGE0YjE2ZmYzMWNkYTc0Zi4uN2RiN2VkMjU2
OTJiZWZhZGUwNmVlYWYyNGRhNTg2ZmFkOWFlMjA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBD
YWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VM
b2FkZXIsIGNvbnN0IFJlc28KICAgICB9CiAKICAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIg
PSBmcmFtZS5sb2FkZXIoKTsKLSAgICBpZiAob3B0aW9ucy5zZWN1cml0eUNoZWNrKCkgPT0gRG9T
ZWN1cml0eUNoZWNrICYmIChmcmFtZUxvYWRlci5zdGF0ZSgpID09IEZyYW1lU3RhdGVQcm92aXNp
b25hbCB8fCAhZnJhbWVMb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKSB8fCBmcmFtZUxvYWRl
ci5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5pc1N0b3BwaW5nKCkpKSB7CisgICAgaWYgKG9wdGlv
bnMuc2VjdXJpdHlDaGVjayA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgKGZyYW1lTG9hZGVyLnN0YXRl
KCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsIHx8ICFmcmFtZUxvYWRlci5hY3RpdmVEb2N1bWVu
dExvYWRlcigpIHx8IGZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBp
bmcoKSkpIHsKICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmlu
ZGV4IDI1NGRkMmJhMmQ0YjdiODZmMzUzOTc1NGI4MTMwMDA5ZDBhOTM4YWEuLjY5YThmZjVkOTUz
YmI0NGM1ODdmODAzY2E3NzZiMzgwYTEwZGQyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yMjYsMTAgKzIyNiwxMCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0dXMgPT0gTG9hZEVy
cm9yIHx8IG1fc3RhdHVzID09IERlY29kZUVycm9yOyB9CiAgICAgYm9vbCBsb2FkRmFpbGVkT3JD
YW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2Vycm9yLmlzTnVsbCgpOyB9CiAKLSAgICBib29s
IHNob3VsZFNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2FsbGJhY2tzOyB9Ci0gICAgRGF0YUJ1ZmZl
cmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25z
LmRhdGFCdWZmZXJpbmdQb2xpY3koKTsgfQorICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9h
ZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9
PSBTZW5kQ2FsbGJhY2tzOyB9CisgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5n
UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3k7IH0K
IAotICAgIGJvb2wgYWxsb3dzQ2FjaGluZygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jYWNo
aW5nUG9saWN5KCkgPT0gQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nOyB9CisgICAgYm9vbCBh
bGxvd3NDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmNhY2hpbmdQb2xpY3kgPT0g
Q2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJv
eURlY29kZWREYXRhKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDg1YjMwOWYzZTU5MmU3ZTZhOWQwMThk
M2ViZTBhNTM5MjA1ZWMwMGUuLmMzNDA5YjI3NDY1NWE1OTZkYmJjODgxMTM0ODdkYWRjZGY1MjMx
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgVVJMJiB1cmws
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBib29sIHNraXBDb250ZW50U2Vj
dXJpdHlQb2xpY3lDaGVjayA9IG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bigpID09IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjazsK
KyAgICBib29sIHNraXBDb250ZW50U2VjdXJpdHlQb2xpY3lDaGVjayA9IG9wdGlvbnMuY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uOjpTa2lwUG9saWN5Q2hlY2s7CiAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWRpcmVj
dFJlc3BvbnNlUmVjZWl2ZWQgcmVkaXJlY3RSZXNwb25zZVJlY2VpdmVkID0gZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UgPyBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlZGlyZWN0UmVzcG9uc2VS
ZWNlaXZlZDo6WWVzIDogQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWRpcmVjdFJlc3BvbnNlUmVj
ZWl2ZWQ6Ok5vOwogCiAgICAgLy8gU29tZSB0eXBlcyBvZiByZXNvdXJjZXMgY2FuIGJlIGxvYWRl
ZCBvbmx5IGZyb20gdGhlIHNhbWUgb3JpZ2luLiAgT3RoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZTBmZTdj
NDFkNmZkZWY1NjA0YjRkZjNjMDI4NTk3NDFiNDZkM2ExMy4uNjBkNzAwMDYzOThkOGU1YTg0NzMz
YjI2ZWZhZDAwMjhkNjliZGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTEwMCwxMCArMTAwLDEwIEBAIHZv
aWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29u
c3QgU3RyaW5nJiBtb2RlLCBEb2N1CiAgICAgICAgIHJldHVybjsKICAgICBtX29wdGlvbnMubW9k
ZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBtX29wdGlvbnMuY3JlZGVudGlhbHMg
PSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikg
PyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6U2FtZU9yaWdpbjsKLSAgICBtX29wdGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscyhl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBB
bGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAg
ICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKG1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAKICAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKSk7Ci0gICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobV9yZXNvdXJj
ZVJlcXVlc3QsICpkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscygpKTsKKyAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNl
UmVxdWVzdCwgKmRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDYzZmY4YzQ1
YWNiZDFkYjA5OGM0NGUwN2Y5YTIxYzIxZjFjNDMzNDAuLmYzZjU2ODUwNWEwMjg3NTExM2VjYmJh
Mzg1YjI2Mzk3NjhlN2QxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgc2V0SW5p
dGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7Ci0gICAgYm9vbCBhbGxvd3NDYWNoaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLmNhY2hpbmdQb2xpY3koKSA9PSBDYWNoaW5nUG9saWN5OjpBbGxv
d0NhY2hpbmc7IH0KKyAgICBib29sIGFsbG93c0NhY2hpbmcoKSBjb25zdCB7IHJldHVybiBtX29w
dGlvbnMuY2FjaGluZ1BvbGljeSA9PSBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmc7IH0KIAog
ICAgIHZvaWQgc2V0SW5pdGlhdG9yKERvY3VtZW50TG9hZGVyJik7CiAgICAgRG9jdW1lbnRMb2Fk
ZXIqIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhdGlu
Z0RvY3VtZW50TG9hZGVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKaW5k
ZXggMzM4NzAxYjYxMDJjNGYwMWYzZWE3Y2QxOTA3ZTZjYWQ0MDA4ZjRmZi4uYjMzOWE4ZTU4Y2Rh
YWQ1MWY1YWY4MGVhNDYzOTRiZDdiYzUwMjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcApAQCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQog
ICAgIDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQorICAg
ICwgZmV0Y2goImZldGNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAg
ICAsIGljb24oImljb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQogICAg
ICwgeG1saHR0cHJlcXVlc3QoInhtbGh0dHByZXF1ZXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCmluZGV4IDI2NTczYmIx
NzE2OTYwNGRkMjc0NjdiZGMzODI3OTEwMzYwNTRkZDAuLmQ3Y2ZlMDFjOGQyMDAwODMyNmEwOTE5
N2ViZmRmNDY0NTczODFmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaApAQCAtMzUsNiAr
MzUsNyBAQCBzdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyB7CiAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5n
IGNzczsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgZmV0Y2g7CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nIGljb247CiAgICAgY29uc3QgQXRvbWljU3RyaW5nIHhtbGh0dHByZXF1ZXN0OwogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
Zi9SZXNvdXJjZUxvYWRlckNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jZi9SZXNv
dXJjZUxvYWRlckNGTmV0LmNwcAppbmRleCA1NTE0ODRiMTQwN2ZiOGQwOTE3ZTZjYmMyOWIzYmI2
ZjBlN2YzMDZiLi4zMTdiNmVkNGQ3ZWY2NmE1YjM1YTUyNWFiYzExMzAwMzIwNWM3Yjk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2YvUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291cmNlTG9hZGVyQ0ZOZXQuY3BwCkBA
IC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBSZXNvdXJjZUxvYWRl
cjo6c2hvdWxkQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYgY2FjaGVkUmVzcG9uc2UpCiB7Ci0gICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxi
YWNrcygpID09IERvTm90U2VuZENhbGxiYWNrcykKKyAgICBpZiAobV9vcHRpb25zLnNlbmRMb2Fk
Q2FsbGJhY2tzID09IERvTm90U2VuZENhbGxiYWNrcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgQ0ZVUkxSZXNwb25zZVJlZiByZXNwb25zZSA9IENGQ2FjaGVkVVJMUmVzcG9uc2VHZXRX
cmFwcGVkUmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KaW5kZXggNTYyMGM5MDIyMWQ0M2ZiNGI3OTY1ZWE2
YzM5N2Q1ODE1ODdmZTc5Ni4uMTVlNTkwNDA2Y2ViZDM3YjE1ODBiZGU4NzI1NDljYzEzMDBjOTk4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1t
CkBAIC01MSw3ICs1MSw3IEBAIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgUmVzb3VyY2VMb2FkZXI6
OndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoCiAKIE5TQ2FjaGVkVVJM
UmVzcG9uc2UqIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKQogewotICAgIGlmIChtX29wdGlvbnMu
c2VuZExvYWRDYWxsYmFja3MoKSA9PSBEb05vdFNlbmRDYWxsYmFja3MpCisgICAgaWYgKG1fb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBEb05vdFNlbmRDYWxsYmFja3MpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS53aWxsQ2Fj
aGVSZXNwb25zZShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIHJlc3BvbnNlKTsKIH0K
QEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFBcnJh
eShDRkFycmF5UmVmIGRhdGFBcnJheSkKICAgICAgICAgQ0ZEYXRhUmVmIGRhdGEgPSBzdGF0aWNf
Y2FzdDxDRkRhdGFSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZGF0YUFycmF5LCBpKSk7CiAg
ICAgICAgIHVuc2lnbmVkIGRhdGFMZW4gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ0ZEYXRhR2V0
TGVuZ3RoKGRhdGEpKTsKIAotICAgICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xp
Y3koKSA9PSBCdWZmZXJEYXRhKSB7CisgICAgICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmlu
Z1BvbGljeSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgICAgICBpZiAoIW1fcmVzb3VyY2VEYXRh
KQogICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KTsKICAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhLT5hcHBlbmQoZGF0YSk7CkBAIC04MCw3ICs4
MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJl
ZiBkYXRhQXJyYXkpCiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgYSByZXNvdXJjZSB3aXRo
IG1vcmUgdGhhbiAyQiBieXRlcywgdGhpcyBjb2RlIHdvbid0IGRvIHRoZSByaWdodCB0aGluZy4K
ICAgICAgICAgLy8gSG93ZXZlciwgd2l0aCB0b2RheSdzIGNvbXB1dGVycyBhbmQgbmV0d29ya2lu
ZyBzcGVlZHMsIHRoaXMgd29uJ3QgaGFwcGVuIGluIHByYWN0aWNlLgogICAgICAgICAvLyBDb3Vs
ZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KLSAgICAgICAgaWYgKG1fb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IFNlbmRDYWxsYmFja3MgJiYgbV9mcmFtZSkKKyAg
ICAgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzICYm
IG1fZnJhbWUpCiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJlY2Vp
dmVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KENGRGF0YUdldEJ5dGVQ
dHIoZGF0YSkpLCBkYXRhTGVuLCBkYXRhTGVuKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRTb3VyY2UuY3BwCmluZGV4IDY1NTI4ODM3ZmRiYjI1N2RkYmE4M2Y1ODBmZTk0ZDBhMzY5NDlm
MjguLjgxN2U1OTQwYTU1ZTNlMTg4Y2ViYjI5NDdkZjhlOTBmZDk0YjkxNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRTb3VyY2UuY3BwCkBAIC0xMDQsMTIgKzEwNCwxMSBAQCB2b2lkIEV2ZW50U291
cmNlOjpjb25uZWN0KCkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6Okxhc3RFdmVudElELCBtX2xhc3RFdmVudElkKTsKIAogICAgIFRocmVhZGFibGVM
b2FkZXJPcHRpb25zIG9wdGlvbnM7Ci0gICAgb3B0aW9ucy5zZXRTZW5kTG9hZENhbGxiYWNrcyhT
ZW5kQ2FsbGJhY2tzKTsKLSAgICBvcHRpb25zLnNldFNuaWZmQ29udGVudChEb05vdFNuaWZmQ29u
dGVudCk7CisgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7CiAg
ICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IG1fd2l0aENyZWRlbnRpYWxzID8gRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVP
cmlnaW47CiAgICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSBQcmV2ZW50UHJlZmxpZ2h0Owog
ICAgIG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKLSAgICBvcHRpb25z
LnNldERhdGFCdWZmZXJpbmdQb2xpY3koRG9Ob3RCdWZmZXJEYXRhKTsKKyAgICBvcHRpb25zLmRh
dGFCdWZmZXJpbmdQb2xpY3kgPSBEb05vdEJ1ZmZlckRhdGE7CiAgICAgb3B0aW9ucy5jb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlOwogCiAgICAgbV9sb2FkZXIg
PSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlz
LCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUGVuZGluZ1Jlc291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVBlbmRpbmdSZXNvdXJjZXMuY3BwCmluZGV4IGVmY2Q1ZjU0MmFjZjc0OGVjNzA4MWEzZDNl
YmFiZjhlZjFjOGVjMzguLjA0MGJjMDNlYTFmMDNiOTZhZGJkOGIwM2JjMWViMDgwZWM5MmM1OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUGVuZGluZ1Jlc291cmNlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmNwcApA
QCAtNDgsMTIgKzQ4LDEyIEBAIHN0YXRpYyBSZWZQdHI8U3R5bGVJbWFnZT4gbG9hZFBlbmRpbmdJ
bWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0eWxlSW1hZ2UmCiB7CiAgICAgYXV0byYg
cGVuZGluZ0ltYWdlID0gZG93bmNhc3Q8U3R5bGVQZW5kaW5nSW1hZ2U+KGltYWdlKTsKICAgICBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7Ci0gICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNJblVzZXJBZ2VudFNoYWRv
d1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVj
ayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworICAg
IG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGVsZW1lbnQgJiYgZWxl
bWVudC0+aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b246OkRvUG9saWN5Q2hlY2s7CiAKICAgICAvLyBGSVhNRTogV2h5IGRvZXMgc2hhcGUtb3V0c2lk
ZSBoYXZlIGRpZmZlcmVudCBwb2xpY3kgdGhhbiBvdGhlciBwcm9wZXJ0aWVzPwogICAgIGlmIChs
b2FkUG9saWN5ID09IExvYWRQb2xpY3k6OlNoYXBlT3V0c2lkZSkgewogICAgICAgICBvcHRpb25z
Lm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7Ci0gICAgICAgIG9wdGlvbnMuc2V0QWxs
b3dDcmVkZW50aWFscyhEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOworICAgICAgICBvcHRp
b25zLmFsbG93Q3JlZGVudGlhbHMgPSBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAg
fQogCiAgICAgaWYgKGF1dG8gaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS5jc3NJbWFnZVZhbHVl
KCkpCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIHZvaWQgbG9hZFBlbmRpbmdTVkdGaWx0ZXJz
KGNvbnN0IFBlbmRpbmdSZXNvdXJjZXMmIHBlbmRpbmdSZXNvdXJjZXMsIERvY3UKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMu
c2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihlbGVtZW50ICYmIGVsZW1lbnQtPmlz
SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
OjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1Bv
bGljeUNoZWNrKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24g
PSBlbGVtZW50ICYmIGVsZW1lbnQtPmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50
U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCiAgICAgZm9yIChhdXRvJiBmaWx0
ZXJPcGVyYXRpb24gOiBwZW5kaW5nUmVzb3VyY2VzLnBlbmRpbmdTVkdGaWx0ZXJzKQogICAgICAg
ICBmaWx0ZXJPcGVyYXRpb24tPmdldE9yQ3JlYXRlQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2Uo
KS0+bG9hZChkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLCBvcHRpb25zKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI2N2UyZTg5ZjkwODI0NmNj
MTQxZTU0ZDAyNzA4Y2NlMDljN2UwMGEuLmVmMmFlZDg5MDFiODA2NGU0ZGM1OWY4MDM0YTk3N2E0
ZjAxNzBjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAt
ODYsNyArODYsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJl
bmNlcygpCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiB7
CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMuc2V0Q29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihpc0luVXNlckFnZW50U2hhZG93VHJlZSgpID8gQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgb3B0aW9ucy5jb250
ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/
IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRl
bnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS5jb21wbGV0
ZVVSTChocmVmKCkpKSwgb3B0aW9ucyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGUz
OGRiZTM3NmY3MWQ2MjhlZTA4YzcxMzVmMTlkNzYxM2ExMGQwOTcuLmU3NDc5NjE2MWM0NDZiZDFl
OWM3N2E3NzMxYTA3NDgyNmNhYjU0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBTVkdGb250RmFjZVVy
aUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGhyZWYgPSBnZXRB
dHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogICAgIGlmICghaHJlZi5pc051bGwoKSkg
ewogICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNl
TG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7Ci0gICAgICAgIG9wdGlvbnMu
c2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihpc0luVXNlckFnZW50U2hhZG93VHJl
ZSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDog
Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CisgICAgICAg
IG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5Vc2VyQWdlbnRT
aGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5
Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwog
CiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRv
Y3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJl
ZikpLCBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCAzOTUw
MDBiZmEwNDJkNTdlZDM4MDAwZDU3ZDg4MzQ4ZGY3OWU2YmY4Li4yNmQ5MjkzZjZmYTBhMWRjZWE5
NTJmNmI5NzJjNDQwNjQwNzc4YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERv
Y3VtZW50KCkKICAgICAgICAgbV9leHRlcm5hbERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBlbHNl
IHsKICAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgICAgICBvcHRpb25z
LnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oaXNJblVzZXJBZ2VudFNoYWRvd1Ry
ZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6
IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworICAgICAg
ICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBpc0luVXNlckFnZW50
U2hhZG93VHJlZSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGlj
eUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjazsK
IAogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFJlc291cmNlUmVxdWVz
dCB7IGV4dGVybmFsRG9jdW1lbnRVUkwgfSwgb3B0aW9ucyB9OwogICAgICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmNwcAppbmRleCAzYmZkNjBkYmM2YTMyNDU5MjAyM2E4N2MyNjgyZGIyODhiMzNkMjYw
Li42N2Y5Y2NhMTViZTI2YWMwNTFmY2Q0MWVkNTkzMTA3ODg1MTMyOGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCkBAIC03MCw3ICs3MCw3IEBA
IHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0
aW9uczsKICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6SW5jbHVkZTsKICAgICBvcHRpb25zLm1vZGUgPSBtb2RlOwotICAgIG9wdGlvbnMuc2V0U2Vu
ZExvYWRDYWxsYmFja3MoU2VuZENhbGxiYWNrcyk7CisgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxi
YWNrcyA9IFNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwogCiAgICAgV29y
a2VyVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShkb3duY2FzdDxX
b3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCksIFdURk1vdmUoKnJlcXVl
c3QpLCAqdGhpcywgb3B0aW9ucyk7CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgV29ya2VyU2NyaXB0
TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0CiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKICAgICBvcHRpb25z
LmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAg
ICBvcHRpb25zLm1vZGUgPSBtb2RlOwotICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3Mo
U2VuZENhbGxiYWNrcyk7CisgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxs
YmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwogCiAgICAgLy8gRHVyaW5nIGNyZWF0ZSwg
Y2FsbGJhY2tzIG1heSBoYXBwZW4gd2hpY2ggcmVtb3ZlIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0
aGlzIG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGUyNWIw
ODBjZDIyZTZiNjk3MDA3MDNiNmQxODE4YWVhYzVhZWZmNjYuLjdkZmViNmZlNGIwYTljZjJlZDNi
MzE3Yzk2YzRiMWYwM2JhYjIyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cApAQCAtNjg3LDggKzY4Nyw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3Qo
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkcyht
X3JlcXVlc3RIZWFkZXJzKTsKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7
Ci0gICAgb3B0aW9ucy5zZXRTZW5kTG9hZENhbGxiYWNrcyhTZW5kQ2FsbGJhY2tzKTsKLSAgICBv
cHRpb25zLnNldFNuaWZmQ29udGVudChEb05vdFNuaWZmQ29udGVudCk7CisgICAgb3B0aW9ucy5z
ZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5wcmVmbGlnaHRQ
b2xpY3kgPSB1cGxvYWRFdmVudHMgPyBGb3JjZVByZWZsaWdodCA6IENvbnNpZGVyUHJlZmxpZ2h0
OwogICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBtX2luY2x1ZGVDcmVkZW50aWFscyA/IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luOwogICAgIG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29y
czsK
</data>

          </attachment>
      

    </bug>

</bugzilla>