<?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>98661</bug_id>
          
          <creation_ts>2012-10-08 10:24:51 -0700</creation_ts>
          <short_desc>Make all of the WebContext sub objects MessageReceivers</short_desc>
          <delta_ts>2012-10-10 12:06:59 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ap</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736771</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-08 10:24:51 -0700</bug_when>
    <thetext>Make all of the WebContext sub objects MessageReceivers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738461</commentid>
    <comment_count>1</comment_count>
      <attachid>167899</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-09 19:58:40 -0700</bug_when>
    <thetext>Created attachment 167899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738462</commentid>
    <comment_count>2</comment_count>
      <attachid>167899</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-09 20:05:18 -0700</bug_when>
    <thetext>Comment on attachment 167899
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +
&gt; +        

Extra newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738465</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 20:10:26 -0700</bug_when>
    <thetext>Attachment 167899 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h:35:  Alphabetical sorting problem.  [build/include_order] [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>738480</commentid>
    <comment_count>4</comment_count>
      <attachid>167899</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 20:35:32 -0700</bug_when>
    <thetext>Comment on attachment 167899
Patch

Attachment 167899 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14223971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738485</commentid>
    <comment_count>5</comment_count>
      <attachid>167907</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-09 20:44:53 -0700</bug_when>
    <thetext>Created attachment 167907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738548</commentid>
    <comment_count>6</comment_count>
      <attachid>167920</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-09 22:13:51 -0700</bug_when>
    <thetext>Created attachment 167920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739195</commentid>
    <comment_count>7</comment_count>
      <attachid>167920</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:06:55 -0700</bug_when>
    <thetext>Comment on attachment 167920
Patch

Clearing flags on attachment: 167920

Committed r130939: &lt;http://trac.webkit.org/changeset/130939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739196</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:06:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167899</attachid>
            <date>2012-10-09 19:58:40 -0700</date>
            <delta_ts>2012-10-09 20:44:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98661-20121009195740.patch</filename>
            <type>text/plain</type>
            <size>52125</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBAQAorMjAxMi0xMC0wOCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgYWxsIG9mIHRoZSBXZWJDb250
ZXh0IHN1YiBvYmplY3RzIE1lc3NhZ2VSZWNlaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5jcHA6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJN
YXA6OmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXJNYXA6Omtub3dzSG93VG9IYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaDoKKyAgICAgICAgQWRkIGFkZGl0aW9u
YWwgaGVscGVyIG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaDoKKyAgICAgICAgQWRkIGEgTWVzc2FnZVJlY2VpdmVyTWFwIHRoYXQgY2hhaW5zIHRvIHRo
ZSBtYWluIG9uIGluIFdlYlByb2Nlc3NQcm94eS4gU2ltcGxpZmllcworICAgICAgICBkaWRSZWNl
aXZlTWVzc2FnZSBhbmQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIFVzZSB0aGUgbmV3IFdlYkNvbnRleHQg
bWV0aG9kcyB0byBzaW1wbGlmeSBkaXNwYXRjaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJDb29raWVNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5Lmg6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykljb25EYXRhYmFzZTo6V2ViSWNvbkRhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJY29uRGF0YWJhc2U6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAoV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOZXR3b3JrSW5mb01hbmFn
ZXJQcm94eTo6V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6V2ViVmlicmF0aW9uUHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oOgorICAgICAgICAoV2ViVmlicmF0aW9uUHJveHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OldlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRp
b25NYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25NYW5hZ2VyKToKKyAgICAgICAg
TWFrZSBhbGwgdGhlIFdlYkNvbnRleHQgc3ViLW9iamVjdHMgTWVzc2FnZVJlY2VpdmVycyB0byBz
aW1wbGlmeSBkaXNwYXRjaC4KKwogMjAxMi0xMC0wOSAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBNb3ZlIHRpbWVvdXQgY2FsbGJhY2sg
dG8gdGhlIENhbGxiYWNrRGF0YVRpbWVyIGNsYXNzLgpJbmRleDogU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAkocmV2aXNp
b24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVj
ZWl2ZXJNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxNiBAQCB2b2lkIE1lc3Nh
Z2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpCiAgICAgbV9nbG9iYWxNZXNzYWdlUmVjZWl2
ZXJNYXAuc2V0KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAordm9pZCBNZXNz
YWdlUmVjZWl2ZXJNYXA6OmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpCit7CisgICAgbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJNYXAuY2xlYXIoKTsKK30KKworYm9vbCBNZXNzYWdlUmVjZWl2ZXJN
YXA6Omtub3dzSG93VG9IYW5kbGVNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwLmNvbnRhaW5zKG1lc3NhZ2VJ
RC5tZXNzYWdlQ2xhc3MoKSk7Cit9CisKIGJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRj
aE1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCiB7CiAgICAgaWYgKE1lc3NhZ2VSZWNlaXZl
ciogbWVzc2FnZVJlY2VpdmVyID0gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuZ2V0KG1lc3Nh
Z2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKQEAgLTU0LDQgKzY0LDE0IEBAIGJvb2wgTWVzc2FnZVJl
Y2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wg
TWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit7CisgICAgaWYgKE1lc3NhZ2VS
ZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuZ2V0
KG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5k
aWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29k
ZXIsIHJlcGx5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgJKHJldmlzaW9u
IDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2Vp
dmVyTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMiBAQAogI2RlZmluZSBNZXNz
YWdlUmVjZWl2ZXJNYXBfaAogCiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNs
YXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7CkBAIC00MSw4ICs0MywxMSBA
QCBwdWJsaWM6CiAgICAgfk1lc3NhZ2VSZWNlaXZlck1hcCgpOwogCiAgICAgdm9pZCBhZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKyAgICB2b2lkIGNs
ZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpOworICAgIGJvb2wga25vd3NIb3dUb0hhbmRsZU1lc3Nh
Z2UoTWVzc2FnZUlEKSBjb25zdDsKIAotICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFy
Z3VtZW50RGVjb2RlciopOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYp
OwogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWly
ZSBhIGRlc3RpbmF0aW9uIElELgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNp
b24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIFBhc3NS
ZWZQdHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm8KIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCog
Y29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQogeworICAgIG1fd2ViQ29udGV4
dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHksIHRoaXMpOwogfQogCiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5Ojp+V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgotCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNDksNyBAQCBjbGFz
cyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJl
Zj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyOwogCkBAIC02Myw4ICs2Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKICAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAog
cHJpdmF0ZToKQEAgLTczLDcgKzcxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKLSAgICAKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5j
cHAJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0
ZXJ5TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlCiAgICAgOiBtX2lzVXBkYXRpbmco
ZmFsc2UpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKKyAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LCB0aGlzKTsKIH0KIAogV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyMSAr
MjksMTYgQEAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJXZWJCYXR0ZXJ5UHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFz
cyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4
dDsKIGNsYXNzIFdlYkJhdHRlcnlTdGF0dXM7CitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewog
Ci1jbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCYXR0ZXJ5TWFuYWdlcjsK
IApAQCAtNTgsMTMgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdl
QmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYsIFdlYkJhdHRlcnlTdGF0dXMq
KTsKICAgICB2b2lkIHByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyhXZWJCYXR0ZXJ5U3RhdHVz
Kik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lk
IGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gMTMw
ODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzUsNiArMTc1LDggQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAg
ICAgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzKTsKIAorICAgIG1fbWVzc2FnZVJl
Y2VpdmVyTWFwLmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpOworCiAgICAgbV9hcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKIApAQCAtNzI4LDggKzczMCwyNiBAQCBIYXNo
U2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBXZWJDb250CiAgICAgcmV0dXJuIG1pbWVUeXBl
czsKIH0KIAordm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdl
UmVjZWl2ZXIpCit7CisgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVy
KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKK30KKworYm9vbCBXZWJDb250ZXh0Ojpr
bm93c0hvd1RvSGFuZGxlTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlEKSBjb25z
dAoreworICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5rbm93c0hvd1RvSGFuZGxlTWVzc2Fn
ZShtZXNzYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQorICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQorICAgICAg
ICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKTsK
K30KKwogdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MsIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQogeworICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaE1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cykp
CisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKSkgewogICAgICAgICBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3Nh
Z2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IHJldHVybjsKQEAgLTc0Miw4MSArNzYyLDYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZShXZWJQcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
PigpKSB7Ci0gICAgICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2
ZU1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5PigpKSB7Ci0gICAgICAgIG1fYmF0dGVyeU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fY29va2ll
TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX2RhdGFiYXNlTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotI2VuZGlmCi0KLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fZ2VvbG9jYXRpb25N
YW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlPigpKSB7
Ci0gICAgICAgIG1faWNvbkRhdGFiYXNlLT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25u
ZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKSkg
ewotICAgICAgICBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5PigpKSB7
Ci0gICAgICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi0gICAgCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9u
b3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5l
Y3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS0+ZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0jaWYgVVNFKFNPVVApCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX3NvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9u
KCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFZJQlJBVElPTikKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYlZpYnJhdGlvblByb3h5PigpKSB7Ci0gICAgICAgIG1fdmlicmF0aW9u
UHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAg
ICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAg
ICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKQEAgLTgzNyw2ICs3ODIsOSBAQCB2b2lkIFdlYkNv
bnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKFdlYlByCiAKIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKIHsKKyAgICBpZiAobV9tZXNzYWdl
UmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1l
c3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewogICAgICAg
ICBkaWRSZWNlaXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ4LDE4
ICs3OTYsNiBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShXCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkljb25EYXRhYmFzZT4oKSkgewotICAgICAgICBtX2ljb25EYXRhYmFzZS0+ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShORVRX
T1JLX0lORk8pCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlm
Ci0gICAgCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRMZWdhY3lNZXNzYWdl
OjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RT
eW5jaHJvbm91c01lc3NhZ2U6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgZW5jb2RlIHNvbWV0aGluZyBpbiB0aGUgY2FzZSB0aGF0IHRoZSBhcmd1bWVudHMgZG8g
bm90IGRlY29kZSBjb3JyZWN0bHkuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMyBAQAogCiAjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtQcm92aWRlci5oIgotI2luY2x1ZGUgIldlYkNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RG93bmxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC04NCw2ICs4Niw5IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBhbGxDb250ZXh0cygpOwogCisgICAgdm9p
ZCBhZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzLCBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIqKTsKKyAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdlKENvcmVJUEM6
Ok1lc3NhZ2VJRCkgY29uc3Q7CisKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudCop
OwogICAgIHZvaWQgaW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoY29uc3QgV0tDb250ZXh0SGlzdG9y
eUNsaWVudCopOwpAQCAtMzYwLDYgKzM2NSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Byb2Nl
c3NUZXJtaW5hdGlvbkVuYWJsZWQ7CiAgICAgCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PERpY3Rpb25hcnlDYWxsYmFjaz4gPiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CisKKyAgICBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiB9OwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgdm9pZCBXZWJDb250ZXh0OjpzZW5kVG9BbGxQcm9jZXNz
ZXMoY29uc3QgVSYgbWVzc2FnZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQCBQYXNzUmVmUHRyPFdlYkNvb2tpZU1hbmFnZXJQcm94eT4g
V2ViQ29vCiBXZWJDb29raWVNYW5hZ2VyUHJveHk6OldlYkNvb2tpZU1hbmFnZXJQcm94eShXZWJD
b250ZXh0KiBjb250ZXh0KQogICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV93
ZWJDb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29v
a2llTWFuYWdlclByb3h5LCB0aGlzKTsKIH0KIAogV2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2Vi
Q29va2llTWFuYWdlclByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC00OCw3ICs0OSw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIHR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFj
azxXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBD
b29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKIAotY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5
IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVDb29raWVNYW5hZ2VyOwogCkBA
IC03NCw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9y
YWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VUeXBlKTsKICNl
bmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogICAgIGJv
b2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0OwogCiBwcml2YXRlOgpA
QCAtODgsNiArODcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7
CiAgICAgCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKICNpZiBQTEFU
Rk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJE
YXRhYmFzZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTk0LDYgKzk0LDcgQEAgUGFzc1JlZlB0cjxXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gV2Vi
RAogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5KFdlYkNv
bnRleHQqIHdlYkNvbnRleHQpCiAgICAgOiBtX3dlYkNvbnRleHQod2ViQ29udGV4dCkKIHsKKyAg
ICBtX3dlYkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkRhdGFiYXNlTWFuYWdlclBy
b3h5Ojp+V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkoKQpAQCAtMjMxLDYgKzIzMiwxMSBAQCB2b2lk
IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRNb2RpZnlECiAgICAgbV9jbGllbnQuZGlkTW9k
aWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBkYXRhYmFzZUlkZW50aWZpZXIpOwogfQog
Cit2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU1FM
X0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFu
YWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiR2VuZXJpY0Nh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiT3JpZ2luQW5kRGF0YWJhc2VzLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CkBAIC01MCw3ICs1MSw3IEBAIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogCiB0eXBlZGVmIEdl
bmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOwogCi1jbGFzcyBXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVE
YXRhYmFzZU1hbmFnZXI7CiAKQEAgLTc4LDggKzc5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBT
dHJpbmcgZGF0YWJhc2VEZXRhaWxzRXhwZWN0ZWRVc2FnZUtleSgpOwogICAgIHN0YXRpYyBTdHJp
bmcgZGF0YWJhc2VEZXRhaWxzQ3VycmVudFVzYWdlS2V5KCk7CiAKLSAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBib29s
IHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToKQEAg
LTg3LDYgKzg2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0RGF0YWJh
c2VzQnlPcmlnaW4oY29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGFiYXNlcz4mIG9yaWdpbkFuZERh
dGFiYXNlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRHZXREYXRhYmFzZU9y
aWdpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6
V2ViR2VvbG9jYXRpCiAgICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRleHQo
Y29udGV4dCkKIHsKKyAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSAr
MjcsMTYgQEAKICNkZWZpbmUgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlfaAogCiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBB
cmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb247CiAK
LWNsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7Citj
bGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZh
dGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZUdlb2xvY2F0aW9uTWFuYWdlcjsKIApAQCAtNTYsMTMgKzUxLDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24oV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbiopOwogICAgIHZvaWQgcHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3Np
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IFN0cmluZygpKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikgT1ZFUlJJREU7CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNl
aXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNp
b24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgV2ViSWNvbkRhdGFiYXNlOjpXZWJJ
Y29uRGF0YWJhc2UoV2ViQ29udAogICAgICwgbV91cmxJbXBvcnRDb21wbGV0ZWQoZmFsc2UpCiAg
ICAgLCBtX2RhdGFiYXNlQ2xlYW51cERpc2FibGVkKGZhbHNlKQogeworICAgIG1fd2ViQ29udGV4
dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRhYmFz
ZSwgdGhpcyk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjppbnZhbGlkYXRlKCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDEz
MDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViQ29udGV4dDsKIAotY2xhc3MgV2ViSWNvbkRhdGFiYXNlIDogcHVibGljIEFQSU9iamVjdCwg
cHVibGljIFdlYkNvcmU6Okljb25EYXRhYmFzZUNsaWVudCB7CitjbGFzcyBXZWJJY29uRGF0YWJh
c2UgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50
LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVJY29uRGF0YWJhc2U7CiAKQEAgLTkwLDIzICs5MCwy
NSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemVJY29uRGF0YWJhc2VDbGllbnQoY29u
c3QgV0tJY29uRGF0YWJhc2VDbGllbnQqKTsKIAorcHJpdmF0ZToKKyAgICBXZWJJY29uRGF0YWJh
c2UoV2ViQ29udGV4dCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBBUElUeXBlOyB9CisKICAgICAvLyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpOwotICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKIAotcHJpdmF0ZToKLSAgICBX
ZWJJY29uRGF0YWJhc2UoV2ViQ29udGV4dCopOwotCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBBUElUeXBlOyB9CisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVy
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKwogICAgIHZvaWQgbm90aWZ5SWNvbkRhdGFSZWFkeUZv
clBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgUGFzc1JlZlB0cjxXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveAogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29u
dGV4dChjb250ZXh0KQogeworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSwgdGhpcyk7
CiB9CiAKIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6fldlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkltbXV0YWJs
ZUFycmF5LmgiCi0KKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7
Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtNDksNyArNDMs
NyBAQCBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOwogCkBAIC02Myw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKICAgICB2b2lk
IGRlbGV0ZUFsbEVudHJpZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25z
dDsKIAogcHJpdmF0ZToKQEAgLTczLDcgKzY1LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0S2V5
VmFsdWVTdG9yYWdlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIAorCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJS
SURFOwogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYg
KzQwLDcgQEAgUGFzc1JlZlB0cjxXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5PiBXZQogV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eTo6V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0
KiBjb250ZXh0KQogICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV93ZWJDb250
ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6On5X
ZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMTMwODQw
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTcgKzI5LDExIEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSW1tdXRhYmxlQXJy
YXkuaCIKLQorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAotbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAg
ICBjbGFzcyBDb25uZWN0aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKLX0KLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRleHQ7CkBAIC00Nyw3ICs0MSw3IEBAIGNsYXNzIFdl
YlByb2Nlc3NQcm94eTsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJy
YXlDYWxsYmFjazsKIAotY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBB
UElPYmplY3QgeworY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElP
YmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU1lZGlhQ2FjaGVNYW5hZ2VyOwogCkBAIC02
MSw4ICs1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JIb3N0bmFtZShjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JBbGxIb3N0bmFtZXMoKTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRl
cm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTcxLDcgKzYz
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUoY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICAKKworICAgIC8vIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKSBPVkVSUklERTsKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2Vi
Q29udGV4dDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6V2Vi
TmV0d29ya0luCiAgICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRleHQoY29u
dGV4dCkKIHsKKyAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5Ojp+V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkoKQpAQCAtNzIs
NyArNzMsNyBAQCB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlCiAgICAg
ZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiB9CiAKLXZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgV1RGOjpPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkp
Cit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKIHsKICAgICBkaWRSZWNlaXZlU3luY1dlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwyMiArMjksMTYgQEAKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogCiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViTmV0d29ya0luZm9Qcm92aWRlci5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKLWNsYXNzIENvbm5lY3Rpb247
Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2Vi
TmV0d29ya0luZm87CiAKLWNsYXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5IDogcHVibGlj
IEFQSU9iamVjdCB7CitjbGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSA6IHB1YmxpYyBB
UElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5ldHdvcmtJbmZvTWFuYWdlcjsKIApA
QCAtNTgsMTcgKzUyLDE4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VO
ZXR3b3JrSW5mb3JtYXRpb24oY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgV2Vi
TmV0d29ya0luZm8qKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV1RGOjpPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOwotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAogICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKwog
ICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXVEY6Ok93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc1LDM2ICszNzUs
MTQgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENsZWFyUGx1Z2luU2l0ZQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCiB7Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJQcm9jZXNzUHJveHk+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nl
c3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIC8v
IEZJWE1FOiBDb21lIHVwIHdpdGggYSBiZXR0ZXIgd2F5IHRvIGNoYWluIHRvIHRoZSBXZWJDb250
ZXh0LgorICAgIGlmIChtX2NvbnRleHQtPmtub3dzSG93VG9IYW5kbGVNZXNzYWdlKG1lc3NhZ2VJ
RCkpIHsKKyAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkKLSAgICAgICAgfHwgbWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKLSAgICAg
ICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkK
LSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk+KCkKLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAg
ICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5PigpCi0jZW5kaWYKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkNvb2tpZU1hbmFnZXJQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkKLSAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5PigpCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJJY29uRGF0YWJhc2U+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKQotICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4o
KQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKQotI2VuZGlmCi0g
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk+KCkKLSNpZiBVU0UoU09VUCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpCi0jZW5k
aWYKLSNpZiBFTkFCTEUoVklCUkFUSU9OKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViVmlicmF0aW9uUHJveHk+KCkKLSNlbmRpZgotICAgICAgICB8fCBt
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eT4oKSkgewotICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkgeworICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTQyMSwxNyArMzk5LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlTWVzc2FnZSgKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQogewotICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBi
ZXR0ZXIgd2F5IHRvIGNoYWluIHRvIHRoZSBXZWJDb250ZXh0LgorICAgIGlmIChtX2NvbnRleHQt
Pmtub3dzSG93VG9IYW5kbGVNZXNzYWdlKG1lc3NhZ2VJRCkpIHsKKyAgICAgICAgbV9jb250ZXh0
LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0g
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eT4oKQotI2VuZGlmCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJhc2U+KCkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5kaWRS
ZWNlaXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAg
ICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4o
KSkgeworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eT4KIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogd2ViQ29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4
dCh3ZWJDb250ZXh0KQogeworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHksIHRoaXMpOwog
fQogCiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Ojp+V2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSgpCkBAIC05NCw0ICs5NSw5IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eTo6Y2xlYXIKICAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNo
aW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xl
YXJDYWNoZUZvckFsbE9yaWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCit2b2lkIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCShyZXZpc2lv
biAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMTEgQEAKICNpbmNsdWRl
ICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJHZW5lcmlj
Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKLWNsYXNzIENvbm5lY3Rpb247Ci1jbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtNDgsNyArNDMs
NyBAQCBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNhY2hl
TWFuYWdlcjsKIApAQCAtNjIsOCArNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hl
Rm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2luKiwgUmVzb3VyY2VDYWNoZXNUb0NsZWFyKTsKICAg
ICB2b2lkIGNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKFJlc291cmNlQ2FjaGVzVG9DbGVhcik7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLQogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSop
IGNvbnN0OwogCiBwcml2YXRlOgpAQCAtNzEsNiArNjQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCiAgICAgLy8gTWVzc2FnZSBoYW5k
bGVycy4KICAgICB2b2lkIGRpZEdldENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlP
cmlnaW5EYXRhPiYgb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAJ
KHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRp
b25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgUGFzc1JlZlB0cjxX
ZWJWaWJyYXRpb25Qcm94eT4gV2ViVmlicmF0aQogV2ViVmlicmF0aW9uUHJveHk6OldlYlZpYnJh
dGlvblByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
IHsKKyAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJWaWJyYXRpb25Qcm94eSwgdGhpcyk7CiB9CiAKIFdlYlZpYnJhdGlvblByb3h5Ojp+V2Vi
VmlicmF0aW9uUHJveHkoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJh
dGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
YnJhdGlvblByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyMCArMjksMTUg
QEAKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5j
bHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVk
ZSAiV2ViVmlicmF0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi1u
YW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0
aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIAotY2xh
c3MgV2ViVmlicmF0aW9uUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlZpYnJh
dGlvblByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlVmli
cmF0aW9uOwogCkBAIC01NCwxMyArNDksMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFs
aXplUHJvdmlkZXIoY29uc3QgV0tWaWJyYXRpb25Qcm92aWRlciopOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJW
aWJyYXRpb25Qcm94eShXZWJDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklE
RTsKKwogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJyYXRpb25Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Qcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eT4gCiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CiB7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LCB0aGlzKTsKIH0KIAogdm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM1LDEyICszNSw2IEBACiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
LW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3Vt
ZW50RW5jb2RlcjsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBJbW11dGFibGVBcnJheTsKQEAgLTQ4LDcgKzQyLDcgQEAgY2xhc3MgV2ViQ29udGV4
dDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogCi1jbGFz
cyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNz
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUg
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXI7CiAgICAgCkBAIC02OCwxMyArNjIs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgcHJvdmlkZXJEaWRVcGRhdGVOb3RpZmljYXRpb25Qb2xp
Y3koY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4qLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcHJv
dmlkZXJEaWRSZW1vdmVOb3RpZmljYXRpb25Qb2xpY2llcyhJbW11dGFibGVBcnJheSogb3JpZ2lu
cyk7CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4
dCopOwogICAgIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlw
ZTsgfQotICAgIAorCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CiAgICAgCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAv
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICsz
NSw3IEBAIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5OjpXZWJTb3VwUmVxdWUKICAgICA6IG1f
d2ViQ29udGV4dChjb250ZXh0KQogICAgICwgbV9sb2FkRmFpbGVkKGZhbHNlKQogeworICAgIG1f
d2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5LCB0aGlzKTsKIH0KIAogV2ViU291cFJlcXVlc3RNYW5hZ2Vy
UHJveHk6On5XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSgpCkBAIC04OCw0ICs4OSw5IEBAIHZv
aWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZEZhaWwKICAgICBtX2NsaWVudC5kaWRG
YWlsVG9Mb2FkVVJJUmVxdWVzdCh0aGlzLCByZXF1ZXN0SUQpOwogfQogCit2b2lkIFdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgJKHJldmlz
aW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1
ZXN0TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDIzICsyMSwxOCBAQAogI2Rl
ZmluZSBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eV9oCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJTb3VwUmVxdWVz
dE1hbmFnZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNw
YWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlvbjsK
LWNsYXNzIE1lc3NhZ2VJRDsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNv
bnRleHQ7CiBjbGFzcyBXZWJEYXRhOwogCi1jbGFzcyBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkg
OiBwdWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVTb3VwUmVxdWVzdE1h
bmFnZXI7CiAKQEAgLTYyLDYgKzU3LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29yZUlQQzo6TWVzc2Fn
ZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
IE9WRVJSSURFOwogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkocmV2aXNpb24gMTMwODQwKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsOCBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogCi0gICAgLy8gTWVzc2FnZVJlY2VpdmVy
CisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotCiAgICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIGJvb2wgdHJ5
VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyMyArMjgsMTUgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7
Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHZW9s
b2NhdGlvbjsKIH0KIAotbmFtZXNwYWNlIFdURiB7Ci1jbGFzcyBTdHJpbmc7Ci19Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQcm9jZXNzOwpAQCAtNjEsMTYgKzUzLDE1IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24q
KTsKIAotCiBwcml2YXRlOgotICAgIC8vIE1lc3NhZ2VSZWNlaXZlcgorICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZl
V2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIHZvaWQgZGlk
Q2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YSYpOwotICAg
IHZvaWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3QgV1RGOjpTdHJpbmcmIGVycm9y
TWVzc2FnZSk7CisgICAgdm9pZCBkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBXZWJQcm9jZXNzKiBtX3Byb2Nlc3M7CiAgICAgYm9v
bCBtX2RpZEFkZE1lc3NhZ2VSZWNlaXZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167907</attachid>
            <date>2012-10-09 20:44:53 -0700</date>
            <delta_ts>2012-10-09 22:13:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98661-20121009204355.patch</filename>
            <type>text/plain</type>
            <size>52200</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBAQAorMjAxMi0xMC0wOCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgYWxsIG9mIHRoZSBXZWJDb250
ZXh0IHN1YiBvYmplY3RzIE1lc3NhZ2VSZWNlaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5jcHA6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJN
YXA6OmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXJNYXA6Omtub3dzSG93VG9IYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaDoKKyAgICAgICAgQWRkIGFkZGl0aW9u
YWwgaGVscGVyIG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaDoKKyAgICAgICAgQWRkIGEgTWVzc2FnZVJlY2VpdmVyTWFwIHRoYXQgY2hhaW5zIHRvIHRo
ZSBtYWluIG9uIGluIFdlYlByb2Nlc3NQcm94eS4gU2ltcGxpZmllcworICAgICAgICBkaWRSZWNl
aXZlTWVzc2FnZSBhbmQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIFVzZSB0aGUgbmV3IFdlYkNvbnRleHQg
bWV0aG9kcyB0byBzaW1wbGlmeSBkaXNwYXRjaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJDb29raWVNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5Lmg6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykljb25EYXRhYmFzZTo6V2ViSWNvbkRhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJY29uRGF0YWJhc2U6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAoV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOZXR3b3JrSW5mb01hbmFn
ZXJQcm94eTo6V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6V2ViVmlicmF0aW9uUHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oOgorICAgICAgICAoV2ViVmlicmF0aW9uUHJveHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OldlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRp
b25NYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25NYW5hZ2VyKToKKyAgICAgICAg
TWFrZSBhbGwgdGhlIFdlYkNvbnRleHQgc3ViLW9iamVjdHMgTWVzc2FnZVJlY2VpdmVycyB0byBz
aW1wbGlmeSBkaXNwYXRjaC4KKwogMjAxMi0xMC0wOSAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBNb3ZlIHRpbWVvdXQgY2FsbGJhY2sg
dG8gdGhlIENhbGxiYWNrRGF0YVRpbWVyIGNsYXNzLgpJbmRleDogU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAkocmV2aXNp
b24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVj
ZWl2ZXJNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxNiBAQCB2b2lkIE1lc3Nh
Z2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpCiAgICAgbV9nbG9iYWxNZXNzYWdlUmVjZWl2
ZXJNYXAuc2V0KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAordm9pZCBNZXNz
YWdlUmVjZWl2ZXJNYXA6OmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpCit7CisgICAgbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJNYXAuY2xlYXIoKTsKK30KKworYm9vbCBNZXNzYWdlUmVjZWl2ZXJN
YXA6Omtub3dzSG93VG9IYW5kbGVNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwLmNvbnRhaW5zKG1lc3NhZ2VJ
RC5tZXNzYWdlQ2xhc3MoKSk7Cit9CisKIGJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRj
aE1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCiB7CiAgICAgaWYgKE1lc3NhZ2VSZWNlaXZl
ciogbWVzc2FnZVJlY2VpdmVyID0gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuZ2V0KG1lc3Nh
Z2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKQEAgLTU0LDQgKzY0LDE0IEBAIGJvb2wgTWVzc2FnZVJl
Y2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wg
TWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit7CisgICAgaWYgKE1lc3NhZ2VS
ZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuZ2V0
KG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5k
aWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29k
ZXIsIHJlcGx5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgJKHJldmlzaW9u
IDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2Vp
dmVyTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMiBAQAogI2RlZmluZSBNZXNz
YWdlUmVjZWl2ZXJNYXBfaAogCiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNs
YXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7CkBAIC00MSw4ICs0MywxMSBA
QCBwdWJsaWM6CiAgICAgfk1lc3NhZ2VSZWNlaXZlck1hcCgpOwogCiAgICAgdm9pZCBhZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKyAgICB2b2lkIGNs
ZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpOworICAgIGJvb2wga25vd3NIb3dUb0hhbmRsZU1lc3Nh
Z2UoTWVzc2FnZUlEKSBjb25zdDsKIAotICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFy
Z3VtZW50RGVjb2RlciopOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYp
OwogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWly
ZSBhIGRlc3RpbmF0aW9uIElELgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNp
b24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIFBhc3NS
ZWZQdHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm8KIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCog
Y29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQogeworICAgIG1fd2ViQ29udGV4
dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHksIHRoaXMpOwogfQogCiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5Ojp+V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgotCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNDksNyBAQCBjbGFz
cyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJl
Zj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyOwogCkBAIC02Myw4ICs2Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKICAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAog
cHJpdmF0ZToKQEAgLTczLDcgKzcxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKLSAgICAKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5j
cHAJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0
ZXJ5TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlCiAgICAgOiBtX2lzVXBkYXRpbmco
ZmFsc2UpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKKyAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LCB0aGlzKTsKIH0KIAogV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyMSAr
MjksMTYgQEAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJXZWJCYXR0ZXJ5UHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFz
cyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4
dDsKIGNsYXNzIFdlYkJhdHRlcnlTdGF0dXM7CitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewog
Ci1jbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCYXR0ZXJ5TWFuYWdlcjsK
IApAQCAtNTgsMTMgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdl
QmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYsIFdlYkJhdHRlcnlTdGF0dXMq
KTsKICAgICB2b2lkIHByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyhXZWJCYXR0ZXJ5U3RhdHVz
Kik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lk
IGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gMTMw
ODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzUsNiArMTc1LDggQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAg
ICAgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzKTsKIAorICAgIG1fbWVzc2FnZVJl
Y2VpdmVyTWFwLmNsZWFyQWxsTWVzc2FnZVJlY2VpdmVycygpOworCiAgICAgbV9hcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKIApAQCAtNzI4LDggKzczMCwyNiBAQCBIYXNo
U2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBXZWJDb250CiAgICAgcmV0dXJuIG1pbWVUeXBl
czsKIH0KIAordm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdl
UmVjZWl2ZXIpCit7CisgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVy
KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKK30KKworYm9vbCBXZWJDb250ZXh0Ojpr
bm93c0hvd1RvSGFuZGxlTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlEKSBjb25z
dAoreworICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5rbm93c0hvd1RvSGFuZGxlTWVzc2Fn
ZShtZXNzYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQorICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQorICAgICAg
ICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKTsK
K30KKwogdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MsIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQogeworICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaE1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cykp
CisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKSkgewogICAgICAgICBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3Nh
Z2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IHJldHVybjsKQEAgLTc0Miw4MSArNzYyLDYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZShXZWJQcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
PigpKSB7Ci0gICAgICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2
ZU1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5PigpKSB7Ci0gICAgICAgIG1fYmF0dGVyeU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fY29va2ll
TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX2RhdGFiYXNlTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotI2VuZGlmCi0KLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fZ2VvbG9jYXRpb25N
YW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlPigpKSB7
Ci0gICAgICAgIG1faWNvbkRhdGFiYXNlLT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25u
ZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKSkg
ewotICAgICAgICBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5PigpKSB7
Ci0gICAgICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi0gICAgCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9u
b3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5l
Y3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS0+ZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0jaWYgVVNFKFNPVVApCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX3NvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9u
KCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFZJQlJBVElPTikKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYlZpYnJhdGlvblByb3h5PigpKSB7Ci0gICAgICAgIG1fdmlicmF0aW9u
UHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAg
ICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAg
ICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKQEAgLTgzNyw2ICs3ODIsOSBAQCB2b2lkIFdlYkNv
bnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKFdlYlByCiAKIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKIHsKKyAgICBpZiAobV9tZXNzYWdl
UmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1l
c3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewogICAgICAg
ICBkaWRSZWNlaXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ4LDE4
ICs3OTYsNiBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShXCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkljb25EYXRhYmFzZT4oKSkgewotICAgICAgICBtX2ljb25EYXRhYmFzZS0+ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShORVRX
T1JLX0lORk8pCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdl
clByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlm
Ci0gICAgCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRMZWdhY3lNZXNzYWdl
OjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RT
eW5jaHJvbm91c01lc3NhZ2U6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgZW5jb2RlIHNvbWV0aGluZyBpbiB0aGUgY2FzZSB0aGF0IHRoZSBhcmd1bWVudHMgZG8g
bm90IGRlY29kZSBjb3JyZWN0bHkuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMyBAQAogCiAjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtQcm92aWRlci5oIgotI2luY2x1ZGUgIldlYkNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RG93bmxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC04NCw2ICs4Niw5IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBhbGxDb250ZXh0cygpOwogCisgICAgdm9p
ZCBhZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzLCBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIqKTsKKyAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdlKENvcmVJUEM6
Ok1lc3NhZ2VJRCkgY29uc3Q7CisKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudCop
OwogICAgIHZvaWQgaW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoY29uc3QgV0tDb250ZXh0SGlzdG9y
eUNsaWVudCopOwpAQCAtMzYwLDYgKzM2NSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Byb2Nl
c3NUZXJtaW5hdGlvbkVuYWJsZWQ7CiAgICAgCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PERpY3Rpb25hcnlDYWxsYmFjaz4gPiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CisKKyAgICBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiB9OwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgdm9pZCBXZWJDb250ZXh0OjpzZW5kVG9BbGxQcm9jZXNz
ZXMoY29uc3QgVSYgbWVzc2FnZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQCBQYXNzUmVmUHRyPFdlYkNvb2tpZU1hbmFnZXJQcm94eT4g
V2ViQ29vCiBXZWJDb29raWVNYW5hZ2VyUHJveHk6OldlYkNvb2tpZU1hbmFnZXJQcm94eShXZWJD
b250ZXh0KiBjb250ZXh0KQogICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV93
ZWJDb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29v
a2llTWFuYWdlclByb3h5LCB0aGlzKTsKIH0KIAogV2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2Vi
Q29va2llTWFuYWdlclByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC00OCw3ICs0OSw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIHR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFj
azxXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBD
b29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKIAotY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5
IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVDb29raWVNYW5hZ2VyOwogCkBA
IC03NCw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9y
YWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VUeXBlKTsKICNl
bmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogICAgIGJv
b2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0OwogCiBwcml2YXRlOgpA
QCAtODgsNiArODcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7
CiAgICAgCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKICNpZiBQTEFU
Rk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJE
YXRhYmFzZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTk0LDYgKzk0LDcgQEAgUGFzc1JlZlB0cjxXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gV2Vi
RAogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5KFdlYkNv
bnRleHQqIHdlYkNvbnRleHQpCiAgICAgOiBtX3dlYkNvbnRleHQod2ViQ29udGV4dCkKIHsKKyAg
ICBtX3dlYkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkRhdGFiYXNlTWFuYWdlclBy
b3h5Ojp+V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkoKQpAQCAtMjMxLDYgKzIzMiwxMSBAQCB2b2lk
IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRNb2RpZnlECiAgICAgbV9jbGllbnQuZGlkTW9k
aWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBkYXRhYmFzZUlkZW50aWZpZXIpOwogfQog
Cit2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU1FM
X0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFu
YWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwxNyArMzEsMTIgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJPcmlnaW5BbmREYXRhYmFzZXMuaCIKICNpbmNsdWRlICJXZWJE
YXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAotbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3Mg
QXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlvbjsKLWNsYXNzIE1lc3NhZ2VJRDsKLX0K
LQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRleHQ7CkBAIC01MCw3ICs0NSw3
IEBAIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxX
S0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOwogCi1jbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgOiBw
dWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVEYXRhYmFzZU1hbmFnZXI7
CiAKQEAgLTc4LDggKzczLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VE
ZXRhaWxzRXhwZWN0ZWRVc2FnZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEZXRh
aWxzQ3VycmVudFVzYWdlS2V5KCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0
ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTg3LDYgKzgwLDEwIEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5
cGU7IH0KIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VzQnlPcmlnaW4oY29u
c3QgVmVjdG9yPE9yaWdpbkFuZERhdGFiYXNlcz4mIG9yaWdpbkFuZERhdGFiYXNlcywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRHZXREYXRhYmFzZU9yaWdpbnMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNiArNDAsNyBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6V2ViR2VvbG9jYXRpCiAg
ICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKKyAg
ICBtX2NvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5Ojp+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgJKHJl
dmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMTYgQEAKICNkZWZp
bmUgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
Ci0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7
Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
Q29udGV4dDsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb247CiAKLWNsYXNzIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUdlb2xvY2F0aW9uTWFuYWdlcjsKIApAQCAtNTYsMTMgKzUxLDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24oV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiop
OwogICAgIHZvaWQgcHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSA9IFN0cmluZygpKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7
CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTMwODQwKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDYgKzU0LDcgQEAgV2ViSWNvbkRhdGFiYXNlOjpXZWJJY29uRGF0YWJhc2UoV2Vi
Q29udAogICAgICwgbV91cmxJbXBvcnRDb21wbGV0ZWQoZmFsc2UpCiAgICAgLCBtX2RhdGFiYXNl
Q2xlYW51cERpc2FibGVkKGZhbHNlKQogeworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJl
Y2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRhYmFzZSwgdGhpcyk7CiB9CiAK
IHZvaWQgV2ViSWNvbkRhdGFiYXNlOjppbnZhbGlkYXRlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIAot
Y2xhc3MgV2ViSWNvbkRhdGFiYXNlIDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdlYkNvcmU6
Okljb25EYXRhYmFzZUNsaWVudCB7CitjbGFzcyBXZWJJY29uRGF0YWJhc2UgOiBwdWJsaWMgQVBJ
T2JqZWN0LCBwdWJsaWMgV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50LCBwcml2YXRlIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJ
VHlwZSA9IFR5cGVJY29uRGF0YWJhc2U7CiAKQEAgLTkwLDIzICs5MCwyNSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGluaXRpYWxpemVJY29uRGF0YWJhc2VDbGllbnQoY29uc3QgV0tJY29uRGF0YWJh
c2VDbGllbnQqKTsKIAorcHJpdmF0ZToKKyAgICBXZWJJY29uRGF0YWJhc2UoV2ViQ29udGV4dCop
OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisK
ICAgICAvLyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlk
SW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVS
TEltcG9ydCgpOwotICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKIAotcHJpdmF0ZToKLSAgICBXZWJJY29uRGF0YWJhc2Uo
V2ViQ29udGV4dCopOwotCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBB
UElUeXBlOyB9CisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkljb25E
YXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYklj
b25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKwogICAgIHZvaWQgbm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAgUGFzc1JlZlB0cjxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveAog
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQog
eworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6fldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSgp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDE3ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1
ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCi0KKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVz
cGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29u
bmVjdGlvbjsKLSAgICBjbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtNDksNyArNDMsNyBAQCBjbGFzcyBXZWJT
ZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJy
YXlDYWxsYmFjazsKIAotY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5IDogcHVi
bGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkgOiBw
dWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyOwogCkBAIC02Myw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUVudHJp
ZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKICAgICB2b2lkIGRlbGV0ZUFsbEVudHJp
ZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBi
b29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToK
QEAgLTczLDcgKzY1LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3Jp
Z2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwotICAgIAorCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShy
ZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgUGFzc1Jl
ZlB0cjxXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5PiBXZQogV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eTo6V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQogICAg
IDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV93ZWJDb250ZXh0LT5hZGRNZXNzYWdl
UmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSwg
dGhpcyk7CiB9CiAKIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksMTcgKzI5LDExIEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAi
R2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKLQorI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotbmFtZXNwYWNl
IENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBDb25uZWN0
aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYkNvbnRleHQ7CkBAIC00Nyw3ICs0MSw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsK
IAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAot
Y2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xh
c3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUg
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBBUElUeXBlID0gVHlwZU1lZGlhQ2FjaGVNYW5hZ2VyOwogCkBAIC02MSw4ICs1NSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIGNsZWFyQ2FjaGVGb3JBbGxIb3N0bmFtZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9j
ZXNzUHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTcxLDcgKzYzLDkgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICAKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMs
NiArNDMsNyBAQCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6V2ViTmV0d29ya0luCiAgICAg
OiBtX2lzVXBkYXRpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKKyAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5Ojp+V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkoKQpAQCAtNzIsNyArNzMsNyBAQCB2b2lk
IFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlCiAgICAgZGlkUmVjZWl2ZVdlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CiB9CiAKLXZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgV1RG
OjpPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI+JiByZXBseSkKIHsKICAgICBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwogfQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwy
MiArMjksMTYgQEAKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiV2ViTmV0d29ya0luZm9Qcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
LWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViTmV0d29ya0luZm87CiAK
LWNsYXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7Citj
bGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZh
dGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZU5ldHdvcmtJbmZvTWFuYWdlcjsKIApAQCAtNTgsMTcgKzUyLDE4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRp
b24oY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgV2ViTmV0d29ya0luZm8qKTsK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV1RGOjpPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOwotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKwogICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXVEY6Ok93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmco
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CShyZXZpc2lvbiAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc1LDM2ICszNzUsMTQgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZENsZWFyUGx1Z2luU2l0ZQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCiB7Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJQcm9j
ZXNzUHJveHk+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIC8vIEZJWE1FOiBDb21lIHVw
IHdpdGggYSBiZXR0ZXIgd2F5IHRvIGNoYWluIHRvIHRoZSBXZWJDb250ZXh0LgorICAgIGlmICht
X2NvbnRleHQtPmtub3dzSG93VG9IYW5kbGVNZXNzYWdlKG1lc3NhZ2VJRCkpIHsKKyAgICAgICAg
bV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkKLSAgICAgICAgfHwgbWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHk+KCkKLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAgICAgIHx8IG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlclByb3h5PigpCi0jZW5k
aWYKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tp
ZU1hbmFnZXJQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpCi0gICAg
ICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJhc2U+
KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKQotI2lmIEVOQUJMRShO
RVRXT1JLX0lORk8pCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKQotI2VuZGlmCi0gICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+
KCkKLSNpZiBVU0UoU09VUCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpCi0jZW5kaWYKLSNpZiBFTkFCTEUo
VklCUkFUSU9OKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViVmlicmF0aW9uUHJveHk+KCkKLSNlbmRpZgotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAg
ICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nl
c3NQcm94eT4oKSkgeworICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTQyMSwxNyArMzk5LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZSgKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6
OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQogewotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVT
eW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOworICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBiZXR0ZXIgd2F5IHRvIGNo
YWluIHRvIHRoZSBXZWJDb250ZXh0LgorICAgIGlmIChtX2NvbnRleHQtPmtub3dzSG93VG9IYW5k
bGVNZXNzYWdlKG1lc3NhZ2VJRCkpIHsKKyAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViQ29udGV4dD4oKSB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29u
dGV4dExlZ2FjeT4oKQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eT4o
KQotI2VuZGlmCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NE
b3dubG9hZFByb3h5PigpIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJ
Y29uRGF0YWJhc2U+KCkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlU3luY01lc3Nh
Z2UodGhpcywgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkgeworICAgICAgICBk
aWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw2ICs0NSw3IEBAIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4KIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHko
V2ViQ29udGV4dCogd2ViQ29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dCh3ZWJDb250ZXh0KQog
eworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHksIHRoaXMpOwogfQogCiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5Ojp+V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSgpCkBAIC05
NCw0ICs5NSw5IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y2xlYXIKICAg
ICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZvckFsbE9y
aWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMTEgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xl
YXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNz
IENvbm5lY3Rpb247Ci1jbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtNDgsNyArNDMsNyBAQCBjbGFzcyBXZWJT
ZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJy
YXlDYWxsYmFjazsKIAotY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QgeworY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNhY2hlTWFuYWdlcjsKIApAQCAt
NjIsOCArNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yT3JpZ2luKFdlYlNl
Y3VyaXR5T3JpZ2luKiwgUmVzb3VyY2VDYWNoZXNUb0NsZWFyKTsKICAgICB2b2lkIGNsZWFyQ2Fj
aGVGb3JBbGxPcmlnaW5zKFJlc291cmNlQ2FjaGVzVG9DbGVhcik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQog
ICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0OwogCiBwcml2
YXRlOgpAQCAtNzEsNiArNjQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9W
RVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lk
IGRpZEdldENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3Jp
Z2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94
eT4gV2ViVmlicmF0aQogV2ViVmlicmF0aW9uUHJveHk6OldlYlZpYnJhdGlvblByb3h5KFdlYkNv
bnRleHQqIGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKKyAgICBtX2NvbnRl
eHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJWaWJyYXRpb25Q
cm94eSwgdGhpcyk7CiB9CiAKIFdlYlZpYnJhdGlvblByb3h5Ojp+V2ViVmlicmF0aW9uUHJveHko
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgJ
KHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRp
b25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyMCArMjksMTUgQEAKICNpZiBFTkFCTEUo
VklCUkFUSU9OKQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlE
LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViVmlicmF0aW9u
UHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi1uYW1lc3BhY2UgQ29yZUlQ
QyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIAotY2xhc3MgV2ViVmlicmF0aW9u
UHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlZpYnJhdGlvblByb3h5IDogcHVi
bGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlVmlicmF0aW9uOwogCkBAIC01
NCwxMyArNDksMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29u
c3QgV0tWaWJyYXRpb25Qcm92aWRlciopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJWaWJyYXRpb25Qcm94eShX
ZWJDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKwogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAko
cmV2aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NiArNDcsNyBAQCBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gCiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJD
b250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV9jb250
ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LCB0aGlzKTsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OmludmFsaWRhdGUoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmgJKHJldmlzaW9uIDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9o
CiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTM1LDEyICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLW5hbWVzcGFjZSBDb3Jl
SVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKLWNs
YXNzIENvbm5lY3Rpb247Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbW11dGFi
bGVBcnJheTsKQEAgLTQ4LDcgKzQyLDcgQEAgY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogCi1jbGFzcyBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2Fn
ZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlw
ZU5vdGlmaWNhdGlvbk1hbmFnZXI7CiAgICAgCkBAIC02OCwxMyArNjIsMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgcHJvdmlkZXJEaWRVcGRhdGVOb3RpZmljYXRpb25Qb2xpY3koY29uc3QgV2ViU2Vj
dXJpdHlPcmlnaW4qLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcHJvdmlkZXJEaWRSZW1vdmVO
b3RpZmljYXRpb25Qb2xpY2llcyhJbW11dGFibGVBcnJheSogb3JpZ2lucyk7CiAgICAgCi0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogICAgIAogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotICAgIAorCisg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgCiAgICAgLy8g
TWVzc2FnZSBoYW5kbGVycwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24g
MTMwODQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBAIFdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5OjpXZWJTb3VwUmVxdWUKICAgICA6IG1fd2ViQ29udGV4dChjb250
ZXh0KQogICAgICwgbV9sb2FkRmFpbGVkKGZhbHNlKQogeworICAgIG1fd2ViQ29udGV4dC0+YWRk
TWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5LCB0aGlzKTsKIH0KIAogV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6On5XZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291
cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgJKHJldmlzaW9u
IDEzMDg0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDIzICsyMSwxOCBAQAogI2RlZmlu
ZSBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1h
bmFnZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNl
IENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlvbjsKLWNs
YXNzIE1lc3NhZ2VJRDsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRl
eHQ7CiBjbGFzcyBXZWJEYXRhOwogCi1jbGFzcyBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSA6
IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkgOiBw
dWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVTb3VwUmVxdWVzdE1hbmFn
ZXI7CiAKQEAgLTU1LDEzICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGYWlsVG9Mb2Fk
VVJJUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlVVJJ
UmVxdWVzdChjb25zdCBTdHJpbmcmIHVyaVN0cmluZywgV2ViUGFnZVByb3h5KiwgdWludDY0X3Qg
cmVxdWVzdElEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiBw
cml2YXRlOgogICAgIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAg
Ly8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIFdlYkNvbnRleHQq
IG1fd2ViQ29udGV4dDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkocmV2
aXNpb24gMTMwODQwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsOCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogCi0gICAg
Ly8gTWVzc2FnZVJlY2VpdmVyCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotCiAg
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2Uo
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyYpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lv
biAxMzA4NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyMyArMjgsMTUgQEAKIAog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9z
aXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFz
cyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvbjsKIH0KIAotbmFtZXNwYWNlIFdURiB7Ci1jbGFzcyBT
dHJpbmc7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQcm9jZXNzOwpAQCAt
NjEsMTYgKzUzLDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6R2VvbG9jYXRpb24qKTsKIAotCiBwcml2YXRlOgotICAgIC8vIE1lc3NhZ2VSZWNlaXZl
cgorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVk
IGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAg
ICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbjo6RGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3Qg
V1RGOjpTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRGYWlsVG9EZXRlcm1pbmVQ
b3NpdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBXZWJQcm9jZXNzKiBt
X3Byb2Nlc3M7CiAgICAgYm9vbCBtX2RpZEFkZE1lc3NhZ2VSZWNlaXZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167920</attachid>
            <date>2012-10-09 22:13:51 -0700</date>
            <delta_ts>2012-10-10 12:06:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98661-20121009221256.patch</filename>
            <type>text/plain</type>
            <size>55129</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBAQAorMjAxMi0xMC0wOCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgYWxsIG9mIHRoZSBXZWJDb250
ZXh0IHN1YiBvYmplY3RzIE1lc3NhZ2VSZWNlaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgd29yayB0b3dhcmRzIHNpbXBsaWZpZWQgbWVz
c2FnZSBkaXNwYXRjaC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2Vp
dmVyTWFwLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcDo6Y2xlYXJB
bGxNZXNzYWdlUmVjZWl2ZXJzKToKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1h
cDo6a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICBBZGQgYWRkaXRpb25hbCBoZWxwZXIg
bWV0aG9kcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dDo6fldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
Ojprbm93c0hvd1RvSGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAg
ICAgICBBZGQgYSBNZXNzYWdlUmVjZWl2ZXJNYXAgdGhhdCBjaGFpbnMgdG8gdGhlIG1haW4gb24g
aW4gV2ViUHJvY2Vzc1Byb3h5LiBTaW1wbGlmaWVzCisgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdl
IGFuZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgVXNlIHRoZSBuZXcgV2ViQ29udGV4dCBtZXRob2RzIHRv
IHNpbXBsaWZ5IGRpc3BhdGNoLgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OldlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgIChXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYkNvb2tpZU1hbmFnZXJQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OldlYkRhdGFiYXNlTWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGFiYXNl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OldlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFi
YXNlOjpXZWJJY29uRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklj
b25EYXRhYmFzZTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJQcm94eTo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eTo6V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eTo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
YnJhdGlvblByb3h5OjpXZWJWaWJyYXRpb25Qcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlZpYnJhdGlvblByb3h5Lmg6CisgICAgICAgIChXZWJWaWJyYXRpb25Qcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6V2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgIChBdXRoZW50aWNhdGlvbk1hbmFnZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbk1hbmFnZXIpOgorICAgICAgICBNYWtlIGFsbCB0
aGUgV2ViQ29udGV4dCBzdWItb2JqZWN0cyBNZXNzYWdlUmVjZWl2ZXJzIHRvIHNpbXBsaWZ5IGRp
c3BhdGNoLgorCiAyMDEyLTEwLTA5ICBCeXVuZ3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1vdmUgdGltZW91dCBjYWxsYmFjayB0byB0aGUgQ2Fs
bGJhY2tEYXRhVGltZXIgY2xhc3MuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCShyZXZpc2lvbiAxMzA4NDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDE2IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVy
TWFwOjphZGRNZXNzYWdlUmVjZWkKICAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5zZXQo
bWVzc2FnZUNsYXNzLCBtZXNzYWdlUmVjZWl2ZXIpOwogfQogCit2b2lkIE1lc3NhZ2VSZWNlaXZl
ck1hcDo6Y2xlYXJBbGxNZXNzYWdlUmVjZWl2ZXJzKCkKK3sKKyAgICBtX2dsb2JhbE1lc3NhZ2VS
ZWNlaXZlck1hcC5jbGVhcigpOworfQorCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NI
b3dUb0hhbmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuY29udGFpbnMobWVzc2FnZUlELm1lc3NhZ2VD
bGFzcygpKTsKK30KKwogYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZShD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVzc2FnZUlELCBBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50RGVjb2RlcikKIHsKICAgICBpZiAoTWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdl
UmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5nZXQobWVzc2FnZUlELm1lc3Nh
Z2VDbGFzcygpKSkgewpAQCAtNTQsNCArNjQsMTQgQEAgYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6
OmRpc3BhdGNoTWVzc2FnZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBNZXNzYWdlUmVj
ZWl2ZXJNYXA6OmRpc3BhdGNoU3luY01lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIE93blB0
cjxBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3sKKyAgICBpZiAoTWVzc2FnZVJlY2VpdmVyKiBt
ZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5nZXQobWVzc2FnZUlE
Lm1lc3NhZ2VDbGFzcygpKSkgeworICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAkocmV2aXNpb24gMTMwODQxKQor
KysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDEyIEBACiAjZGVmaW5lIE1lc3NhZ2VSZWNlaXZl
ck1hcF9oCiAKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAorY2xh
c3MgQXJndW1lbnRFbmNvZGVyOwogY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVj
dGlvbjsKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlcjsKQEAgLTQxLDggKzQzLDExIEBAIHB1YmxpYzoK
ICAgICB+TWVzc2FnZVJlY2VpdmVyTWFwKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNlaXZlciopOworICAgIHZvaWQgY2xlYXJBbGxNZXNz
YWdlUmVjZWl2ZXJzKCk7CisgICAgYm9vbCBrbm93c0hvd1RvSGFuZGxlTWVzc2FnZShNZXNzYWdl
SUQpIGNvbnN0OwogCi0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
Ym9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNv
ZGVyKik7CisgICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdl
SUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+Jik7CiAKIHByaXZh
dGU6CiAgICAgLy8gTWVzc2FnZSByZWNlaXZlcnMgdGhhdCBkb24ndCByZXF1aXJlIGEgZGVzdGlu
YXRpb24gSUQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAxMzA4NDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgUGFzc1JlZlB0cjxXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclBybwogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQog
ICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiB7CisgICAgbV93ZWJDb250ZXh0LT5hZGRNZXNz
YWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6On5X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
aAkocmV2aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBA
QAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgog
I2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCi0KKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFdlYlNlY3Vy
aXR5T3JpZ2luOwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNh
bGxiYWNrOwogCi1jbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IDogcHVibGlj
IEFQSU9iamVjdCB7CitjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IDogcHVi
bGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQXBwbGljYXRpb25DYWNoZU1h
bmFnZXI7CiAKQEAgLTYzLDggKzYzLDYgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlRW50cmll
c0Zvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOwogICAgIHZvaWQgZGVsZXRlQWxsRW50cmll
cygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLQogICAgIGJv
b2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0OwogCiBwcml2YXRlOgpA
QCAtNzMsNyArNzEsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgdm9pZCBkaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwotICAgIAorCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAkocmV2aXNp
b24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHk6OldlYkJhdHRlcnlNYW5hZ2UKICAgICA6IG1faXNVcGRhdGluZyhmYWxzZSkKICAg
ICAsIG1fY29udGV4dChjb250ZXh0KQogeworICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZVJlY2Vp
dmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyUHJveHksIHRoaXMpOwog
fQogCiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojp+V2ViQmF0dGVyeU1hbmFnZXJQcm94eSgpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5LmgJKHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJC
YXR0ZXJ5TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDIxICsyOSwxNiBAQAog
I2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2lu
Y2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIldlYkJhdHRlcnlQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLW5h
bWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIENvbm5lY3Rp
b247Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3Mg
V2ViQmF0dGVyeVN0YXR1czsKK2NsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJsaWMg
QVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAKLWNsYXNzIFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJhdHRlcnlNYW5hZ2VyOwogCkBAIC01OCwx
MyArNTMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VCYXR0ZXJ5U3Rh
dHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiwgV2ViQmF0dGVyeVN0YXR1cyopOwogICAgIHZv
aWQgcHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0dXMqKTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAorICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKKwogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiAxMzA4NDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMSwzNiArMTIxLDM5IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHBy
b2MKICAgICAsIG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpCiAgICAgLCBt
X21lbW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2
YWwoMTQwMC4wKQotICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyNpZiBQTEFURk9STShXSU4p
CisgICAgLCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHModHJ1ZSkKKyAgICAsIG1faW5pdGlh
bEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cykKKyNl
bmRpZgorICAgICwgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkKHRydWUpCit7CisgICAgCisg
ICAgLy8gTk9URTogVGhlc2Ugc3ViLW9iamVjdHMgbXVzdCBiZSBpbml0aWFsaXplZCBhZnRlciBt
X21lc3NhZ2VSZWNlaXZlck1hcC4uCisgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2lmIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKLSAgICAsIG1fYmF0dGVyeU1hbmFnZXJQcm94eShXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgbV9iYXR0ZXJ5TWFuYWdlclByb3h5
ID0gV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCi0gICAgLCBt
X2Nvb2tpZU1hbmFnZXJQcm94eShXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkK
KyAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eSA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y3JlYXRl
KHRoaXMpOwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgLCBtX2RhdGFiYXNlTWFuYWdl
clByb3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgbV9kYXRh
YmFzZU1hbmFnZXJQcm94eSA9IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7
CiAjZW5kaWYKLSAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKLSAgICAsIG1faWNvbkRhdGFiYXNlKFdlYkljb25E
YXRhYmFzZTo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9rZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHkoV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCi0gICAgLCBt
X21lZGlhQ2FjaGVNYW5hZ2VyUHJveHkoV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRl
KHRoaXMpKQorICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgPSBXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOworICAgIG1faWNvbkRhdGFiYXNlID0gV2ViSWNvbkRh
dGFiYXNlOjpjcmVhdGUodGhpcyk7CisgICAgbV9rZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkg
PSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX21l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHkgPSBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUo
dGhpcyk7CiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICAsIG1fbmV0d29ya0luZm9NYW5h
Z2VyUHJveHkoV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyAgICBt
X25ldHdvcmtJbmZvTWFuYWdlclByb3h5ID0gV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmNy
ZWF0ZSh0aGlzKTsKICNlbmRpZgotICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3BsdWdpblNp
dGVEYXRhTWFuYWdlcihXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNyZWF0ZSh0aGlzKSkKLSAg
ICAsIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eShXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5OjpjcmVhdGUodGhpcykpCisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHkgPSBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX3BsdWdpblNpdGVE
YXRhTWFuYWdlciA9IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpOworICAg
IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSA9IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZSh0aGlzKTsKICNpZiBVU0UoU09VUCkKLSAgICAsIG1fc291cFJlcXVlc3RNYW5h
Z2VyUHJveHkoV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyAgICBt
X3NvdXBSZXF1ZXN0TWFuYWdlclByb3h5ID0gV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmNy
ZWF0ZSh0aGlzKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSUJSQVRJT04pCi0gICAgLCBtX3ZpYnJh
dGlvblByb3h5KFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUodGhpcykpCi0jZW5kaWYKLSNpZiBQ
TEFURk9STShXSU4pCi0gICAgLCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHModHJ1ZSkKLSAg
ICAsIG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGlj
eUFsd2F5cykKKyAgICBtX3ZpYnJhdGlvblByb3h5ID0gV2ViVmlicmF0aW9uUHJveHk6OmNyZWF0
ZSh0aGlzKTsKICNlbmRpZgotICAgICwgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkKHRydWUp
Ci17CisgICAgCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZgpAQCAtMTc1LDYgKzE3OCw4IEBAIFdlYkNvbnRl
eHQ6On5XZWJDb250ZXh0KCkKIAogICAgIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhp
cyk7CiAKKyAgICBtX21lc3NhZ2VSZWNlaXZlck1hcC5jbGVhckFsbE1lc3NhZ2VSZWNlaXZlcnMo
KTsKKwogICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwog
ICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKQEAg
LTcyOCw4ICs3MzMsMjYgQEAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gV2ViQ29u
dAogICAgIHJldHVybiBtaW1lVHlwZXM7CiB9CiAKK3ZvaWQgV2ViQ29udGV4dDo6YWRkTWVzc2Fn
ZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQoreworICAgIG1fbWVzc2FnZVJlY2VpdmVy
TWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlQ2xhc3MsIG1lc3NhZ2VSZWNlaXZlcik7Cit9
CisKK2Jvb2wgV2ViQ29udGV4dDo6a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UoQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKK3sKKyAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAu
a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UobWVzc2FnZUlEKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRl
eHQ+KCkKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNv
bnRleHRMZWdhY3k+KCkKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc0Rvd25sb2FkUHJveHk+KCk7Cit9CisKIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKKyAgICBpZiAobV9t
ZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwg
bWVzc2FnZUlELCBhcmd1bWVudHMpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkpIHsKICAgICAgICAgZGlk
UmVjZWl2ZVdlYkNvbnRleHRNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkBAIC03NDIsODEgKzc2NSw2IEBAIHZvaWQg
V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoV2ViUHIKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0jaWYgRU5BQkxF
KEJBVFRFUllfU1RBVFVTKQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQmF0dGVyeU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX2JhdHRlcnlNYW5hZ2Vy
UHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAo
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXJQcm94eT4o
KSkgewotICAgICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UocHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkpIHsKLSAg
ICAgICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdl
clByb3h5TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewot
ICAgICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9j
ZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkljb25EYXRhYmFzZT4oKSkgewotICAgICAgICBtX2ljb25EYXRhYmFzZS0+ZGlkUmVjZWl2
ZU1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBt
X2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UocHJvY2Vzcy0+
Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1lZGlh
Q2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5
LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShORVRXT1JLX0lO
Rk8pCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlclByb3h5
LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotICAgIAotICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5PigpKSB7Ci0gICAgICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlclByb3h5LT5kaWRSZWNlaXZl
TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX3Jl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIFVTRShTT1VQKQotICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+
KCkpIHsKLSAgICAgICAgbV9zb3VwUmVxdWVzdE1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShWSUJSQVRJT04pCi0gICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJWaWJyYXRpb25Qcm94eT4oKSkg
ewotICAgICAgICBtX3ZpYnJhdGlvblByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5j
b25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSNlbmRpZgotCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRMZWdhY3lN
ZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6
OlBvc3RNZXNzYWdlOiB7CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CkBAIC04Mzcs
NiArNzg1LDkgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShXZWJQcgogCiB2
b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShXZWJQcm9jZXNzUHJveHkqIHBy
b2Nlc3MsIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkp
CiB7CisgICAgaWYgKG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoU3luY01lc3NhZ2UocHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpKQorICAgICAg
ICByZXR1cm47CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
YkNvbnRleHQ+KCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVzc2FnZShw
cm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTg0OCwxOCArNzk5LDYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoVwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJhc2U+KCkpIHsKLSAgICAg
ICAgbV9pY29uRGF0YWJhc2UtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0
aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAg
ICAgbV9uZXR3b3JrSW5mb01hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHByb2Nl
c3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSNlbmRpZgotICAgIAogICAgIHN3aXRjaCAobWVzc2FnZUlELmdldDxX
ZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD4oKSkgewogICAgICAgICBjYXNlIFdlYkNvbnRl
eHRMZWdhY3lNZXNzYWdlOjpQb3N0U3luY2hyb25vdXNNZXNzYWdlOiB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGVuY29kZSBzb21ldGhpbmcgaW4gdGhlIGNhc2Ug
dGhhdCB0aGUgYXJndW1lbnRzIGRvIG5vdCBkZWNvZGUgY29ycmVjdGx5LgpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMSAr
MjgsMTMgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWxs
YmFjay5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBy
b2Nlc3NNb2RlbC5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rUHJvdmlkZXIuaCIKLSNpbmNsdWRl
ICJXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
Q29ubmVjdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYkRvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSGlz
dG9yeUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgpAQCAtODQsNiArODYs
OSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxs
Q29udGV4dHMoKTsKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzcywgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKik7CisgICAgYm9vbCBrbm93c0hvd1Rv
SGFuZGxlTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQpIGNvbnN0OworCiAgICAgdm9pZCBpbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVDbGllbnQoY29uc3QgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50KGNvbnN0IFdLQ29u
dGV4dENvbm5lY3Rpb25DbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVIaXN0b3J5Q2xpZW50
KGNvbnN0IFdLQ29udGV4dEhpc3RvcnlDbGllbnQqKTsKQEAgLTM2MCw2ICszNjUsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkOwogICAgIAogICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+ID4gbV9kaWN0aW9uYXJ5
Q2FsbGJhY2tzOworCisgICAgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJl
Y2VpdmVyTWFwOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIHZvaWQgV2ViQ29u
dGV4dDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1lc3NhZ2UpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkocmV2
aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgUGFzc1JlZlB0cjxX
ZWJDb29raWVNYW5hZ2VyUHJveHk+IFdlYkNvbwogV2ViQ29va2llTWFuYWdlclByb3h5OjpXZWJD
b29raWVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4
dChjb250ZXh0KQogeworICAgIG1fd2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6fldlYkNvb2tpZU1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCShyZXZpc2lv
biAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJJbW11dGFibGVB
cnJheS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXJQcm94eUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNDgsNyArNDksNyBAQCBjbGFzcyBXZWJQcm9jZXNzUHJv
eHk7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOwog
dHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tIVFRQQ29va2llQWNjZXB0UG9saWN5LCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5PiBIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s7CiAKLWNsYXNz
IFdlYkNvb2tpZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQ29v
a2llTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlQ29va2llTWFuYWdlcjsKIApAQCAtNzQsOCArNzUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBTdHJpbmcmIHN0b3JhZ2VQYXRoLCB1aW50
MzJfdCBzdG9yYWdlVHlwZSk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkq
KSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTg4LDYgKzg3LDggQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgY29va2llc0RpZENoYW5nZSgpOwogICAgIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVS
UklERTsKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwogCiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAx
MzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw3IEBAIFBhc3NSZWZQdHI8V2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHk+IFdlYkQKIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQogICAgIDogbV93ZWJDb250
ZXh0KHdlYkNvbnRleHQpCiB7CisgICAgbV93ZWJDb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIo
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHksIHRoaXMpOwogfQog
CiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6fldlYkRhdGFiYXNlTWFuYWdlclByb3h5KCkKQEAg
LTIzMSw2ICsyMzIsMTEgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkTW9kaWZ5
RAogICAgIG1fY2xpZW50LmRpZE1vZGlmeURhdGFiYXNlKHRoaXMsIG9yaWdpbi5nZXQoKSwgZGF0
YWJhc2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit7CisgICAgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4
NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTcgKzMxLDEyIEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgi
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiT3JpZ2luQW5kRGF0YWJh
c2VzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKLW5hbWVz
cGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIENvbm5lY3Rpb247
Ci1jbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJD
b250ZXh0OwpAQCAtNTAsNyArNDUsNyBAQCBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlw
ZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3Mg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlRGF0YWJhc2VNYW5hZ2VyOwogCkBAIC03OCw4ICs3Myw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgU3RyaW5nIGRhdGFiYXNlRGV0YWlsc0V4cGVjdGVkVXNhZ2VLZXkoKTsKICAgICBzdGF0
aWMgU3RyaW5nIGRhdGFiYXNlRGV0YWlsc0N1cnJlbnRVc2FnZUtleSgpOwogCi0gICAgdm9pZCBk
aWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCiAg
ICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3Q7CiAKIHByaXZh
dGU6CkBAIC04Nyw2ICs4MCwxMCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZF
UlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdl
dERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxPcmlnaW5BbmREYXRhYmFzZXM+JiBvcmln
aW5BbmREYXRhYmFzZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkR2V0RGF0
YWJhc2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlmaWVycywgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OldlYkdlb2xvY2F0aQogICAgIDogbV9pc1VwZGF0aW5nKGZhbHNlKQogICAgICwgbV9j
b250ZXh0KGNvbnRleHQpCiB7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksIHRoaXMpOwogfQog
CiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6fldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsMjEgKzI3LDE2IEBACiAjZGVmaW5lIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5X2gKIAog
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIENvcmVJUEMgewot
Y2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRleHQ7CiBjbGFzcyBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOwogCi1jbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmpl
Y3QgeworY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0
LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVHZW9sb2NhdGlvbk1hbmFnZXI7CiAKQEAgLTU2LDEz
ICs1MSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24qKTsKICAgICB2b2lkIHByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJt
aW5lUG9zaXRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSk7CiAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAogICAgIHZp
cnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCisgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopIE9WRVJSSURFOworCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAJ
KHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0
YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIFdlYkljb25EYXRhYmFz
ZTo6V2ViSWNvbkRhdGFiYXNlKFdlYkNvbnQKICAgICAsIG1fdXJsSW1wb3J0Q29tcGxldGVkKGZh
bHNlKQogICAgICwgbV9kYXRhYmFzZUNsZWFudXBEaXNhYmxlZChmYWxzZSkKIHsKKyAgICBtX3dl
YkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29u
RGF0YWJhc2UsIHRoaXMpOwogfQogCiB2b2lkIFdlYkljb25EYXRhYmFzZTo6aW52YWxpZGF0ZSgp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCShyZXZp
c2lvbiAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYkNvbnRleHQ7CiAKLWNsYXNzIFdlYkljb25EYXRhYmFzZSA6IHB1YmxpYyBBUElP
YmplY3QsIHB1YmxpYyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQgeworY2xhc3MgV2ViSWNv
bkRhdGFiYXNlIDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdlYkNvcmU6Okljb25EYXRhYmFz
ZUNsaWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlSWNvbkRhdGFiYXNlOwogCkBAIC05MCwy
MyArOTAsMjUgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFsaXplSWNvbkRhdGFiYXNlQ2xp
ZW50KGNvbnN0IFdLSWNvbkRhdGFiYXNlQ2xpZW50Kik7CiAKK3ByaXZhdGU6CisgICAgV2ViSWNv
bkRhdGFiYXNlKFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQorCiAgICAgLy8gV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50
CiAgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucygpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKLSAgICAKLSAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CiAKLXByaXZhdGU6
Ci0gICAgV2ViSWNvbkRhdGFiYXNlKFdlYkNvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJREU7CiAKICAgICB2
b2lkIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisKICAgICB2b2lkIG5vdGlmeUljb25EYXRh
UmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJD
b250ZXh0OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIFBhc3NSZWZQdHI8V2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3gKIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6V2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBt
X3dlYkNvbnRleHQoY29udGV4dCkKIHsKKyAgICBtX3dlYkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNl
aXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHks
IHRoaXMpOwogfQogCiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6On5XZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHkoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24g
MTMwODQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjksMTEgQEAKICNpbmNsdWRl
ICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJJ
bW11dGFibGVBcnJheS5oIgotCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwotICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOwotfQot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTQ5
LDcgKzQzLDcgQEAgY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiAKIHR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CiAKLWNsYXNzIFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKIApAQCAtNjMsOCArNTcsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2luKik7CiAg
ICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5
KikgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03Myw3ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICB2b2lkIGRp
ZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICAKKworICAgIC8vIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KSBPVkVSUklERTsKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw2ICs0MCw3IEBAIFBhc3NSZWZQdHI8V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4gV2UK
IFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkoV2Vi
Q29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQogeworICAgIG1f
d2ViQ29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHksIHRoaXMpOwogfQogCiBXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5Ojp+V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9u
IDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdl
clByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkltbXV0
YWJsZUFycmF5LmgiCi0KKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29k
ZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwpAQCAtNDcsNyArNDEsNyBAQCBj
bGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlS
ZWY+IEFycmF5Q2FsbGJhY2s7CiAKLWNsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgOiBw
dWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVNZWRpYUNhY2hlTWFuYWdlcjsK
IApAQCAtNjEsOCArNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlRm9ySG9zdG5h
bWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsSG9zdG5hbWVzKCk7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCiAgICAgYm9vbCBz
aG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03
MSw3ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBBUElUeXBlOyB9CiAKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hl
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgCisKKyAg
ICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7CiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKICAgICBXZWJDb250ZXh0
KiBtX3dlYkNvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHk6OldlYk5ldHdvcmtJbgogICAgIDogbV9pc1VwZGF0aW5nKGZhbHNlKQogICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiB7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHksIHRoaXMpOwogfQogCiBX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6fldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KCkK
QEAgLTcyLDcgKzczLDcgQEAgdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVj
ZQogICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogfQogCi12b2lkIFdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMsIFdURjo6T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4m
IHJlcGx5KQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCiB7CiAgICAgZGlkUmVjZWl2ZVN5bmNX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMsIHJlcGx5KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksMjIgKzI5LDE2IEBACiAjaWYgRU5BQkxFKE5FVFdPUktfSU5G
TykKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYk5ldHdvcmtJbmZvUHJvdmlk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1j
bGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7Ci1jbGFzcyBDb25u
ZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIGNs
YXNzIFdlYk5ldHdvcmtJbmZvOwogCi1jbGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSA6
IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOZXR3b3JrSW5mb01hbmFn
ZXI7CiAKQEAgLTU4LDE3ICs1MiwxOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb3ZpZGVyRGlk
Q2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFdlYk5ldHdvcmtJbmZvKik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdURjo6
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKICAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAorICAgIC8vIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJ
REU7CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV1RGOjpP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwog
ICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NSwz
NiArMzc1LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbGVhclBsdWdpblNpdGUKIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsK
KyAgICAvLyBGSVhNRTogQ29tZSB1cCB3aXRoIGEgYmV0dGVyIHdheSB0byBjaGFpbiB0byB0aGUg
V2ViQ29udGV4dC4KKyAgICBpZiAobV9jb250ZXh0LT5rbm93c0hvd1RvSGFuZGxlTWVzc2FnZSht
ZXNzYWdlSUQpKSB7CisgICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UodGhpcywg
bWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpCi0gICAgICAg
IHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5Pigp
Ci0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFBy
b3h5PigpCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PigpCi0jaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQmF0dGVy
eU1hbmFnZXJQcm94eT4oKQotI2VuZGlmCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHk+KCkKLSAgICAgICAgfHwgbWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpCi0g
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViSWNvbkRhdGFiYXNlPigpCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk+KCkKLSAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
UHJveHk+KCkKLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotICAgICAgICB8fCBtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk+KCkKLSNl
bmRpZgotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5PigpCi0jaWYgVVNFKFNPVVApCi0gICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4o
KQotI2VuZGlmCi0jaWYgRU5BQkxFKFZJQlJBVElPTikKLSAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlZpYnJhdGlvblByb3h5PigpCi0jZW5kaWYKLSAgICAg
ICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZSh0
aGlzLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHk+KCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVdl
YlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00MjEsMTcgKzM5OSwxNCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKIHsKLSAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkg
ewotICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAvLyBGSVhNRTogQ29tZSB1cCB3
aXRoIGEgYmV0dGVyIHdheSB0byBjaGFpbiB0byB0aGUgV2ViQ29udGV4dC4KKyAgICBpZiAobV9j
b250ZXh0LT5rbm93c0hvd1RvSGFuZGxlTWVzc2FnZShtZXNzYWdlSUQpKSB7CisgICAgICAgIG1f
Y29udGV4dC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1lbnRz
LCByZXBseSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkgfHwgbWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKLSNpZiBFTkFCTEUoTkVUV09SS19J
TkZPKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTmV0
d29ya0luZm9NYW5hZ2VyUHJveHk+KCkKLSNlbmRpZgotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKSB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlPigpKSB7Ci0gICAgICAgIG1fY29udGV4
dC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBs
eSk7CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJQcm9jZXNz
UHJveHk+KCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBQYXNzUmVmUHRyPFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHk+CiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCiAgICAgOiBtX3dl
YkNvbnRleHQod2ViQ29udGV4dCkKIHsKKyAgICBtX3dlYkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNl
aXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LCB0
aGlzKTsKIH0KIAogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6fldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkoKQpAQCAtOTQsNCArOTUsOSBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk6OmNsZWFyCiAgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNS
ZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXI6OkNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKGNhY2hlc1RvQ2xlYXIpKTsKIH0KIAordm9pZCBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAko
cmV2aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5LDExIEBACiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
R2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBB
cmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotY2xhc3MgTWVzc2FnZUlEOwotfQot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTQ4
LDcgKzQzLDcgQEAgY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiAKIHR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CiAKLWNsYXNzIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVDYWNoZU1hbmFnZXI7CiAKQEAgLTYyLDggKzU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgY2xl
YXJDYWNoZUZvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiosIFJlc291cmNlQ2FjaGVzVG9DbGVh
cik7CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1RvQ2xl
YXIpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNz
UHJveHkqKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTcxLDYgKzY0LDEwIEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAorICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKwogICAgIC8vIE1lc3Nh
Z2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNl
Y3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJv
eHkuY3BwCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBAIFBhc3NS
ZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+IFdlYlZpYnJhdGkKIFdlYlZpYnJhdGlvblByb3h5OjpX
ZWJWaWJyYXRpb25Qcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiB7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViVmlicmF0aW9uUHJveHksIHRoaXMpOwogfQogCiBXZWJWaWJyYXRpb25Qcm94
eTo6fldlYlZpYnJhdGlvblByb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWJyYXRpb25Qcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJWaWJyYXRpb25Qcm94eS5oCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMjAg
KzI5LDE1IEBACiAjaWYgRU5BQkxFKFZJQlJBVElPTikKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIldlYlZpYnJhdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KIAotbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3Mg
Q29ubmVjdGlvbjsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRleHQ7
CiAKLWNsYXNzIFdlYlZpYnJhdGlvblByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBX
ZWJWaWJyYXRpb25Qcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZVZpYnJhdGlvbjsKIApAQCAtNTQsMTMgKzQ5LDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLVmlicmF0aW9uUHJvdmlkZXIqKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV2ViVmlicmF0aW9uUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikg
T1ZFUlJJREU7CisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViVmlicmF0aW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlicmF0aW9u
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk+IAogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fY29udGV4dChj
b250ZXh0KQogeworICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIHZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlv
bkNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zNSwxMiArMzUsNiBAQAog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFz
cyBBcmd1bWVudEVuY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgSW1tdXRhYmxlQXJyYXk7CkBAIC00OCw3ICs0Miw3IEBAIGNsYXNzIFdl
YkNvbnRleHQ7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsK
IAotY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7
CitjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBw
cml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb25NYW5hZ2VyOwogICAgIApAQCAtNjgs
MTMgKzYyLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHByb3ZpZGVyRGlkVXBkYXRlTm90aWZpY2F0
aW9uUG9saWN5KGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luKiwgYm9vbCBhbGxvd2VkKTsKICAgICB2
b2lkIHByb3ZpZGVyRGlkUmVtb3ZlTm90aWZpY2F0aW9uUG9saWNpZXMoSW1tdXRhYmxlQXJyYXkq
IG9yaWdpbnMpOwogICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdl
YkNvbnRleHQqKTsKICAgICAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KLSAgICAKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwogICAgIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6V2ViU291cFJlcXVlCiAg
ICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKICAgICAsIG1fbG9hZEZhaWxlZChmYWxzZSkKIHsK
KyAgICBtX3dlYkNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSwgdGhpcyk7CiB9CiAKIFdlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5Ojp+V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkoKQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXJQcm94eS5oCShyZXZpc2lvbiAxMzA4NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MSwyMyArMjEsMTggQEAKICNkZWZpbmUgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlfaAogCiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5j
bHVkZSAiV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
LWNsYXNzIENvbm5lY3Rpb247Ci1jbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViRGF0YTsKIAotY2xhc3MgV2ViU291
cFJlcXVlc3RNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlU291cFJlcXVlc3RNYW5hZ2VyOwogCkBAIC01NSwxMyArNTAsMTQgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmFpbFRvTG9hZFVSSVJlcXVlc3QodWludDY0X3QgcmVxdWVzdElEKTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmlTdHJpbmcsIFdl
YlBhZ2VQcm94eSosIHVpbnQ2NF90IHJlcXVlc3RJRCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKIAogcHJpdmF0ZToKICAgICBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eShXZWJDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIEFQSVR5cGU7IH0KIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKICAgICB2
b2lkIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDEzMDg0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDkgKzYyLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBBdXRoZW50aWNh
dGlvbk1hbmFnZXIoKTsKIAotICAgIC8vIE1lc3NhZ2VSZWNlaXZlcgorICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKLQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKICAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaAkocmV2aXNpb24gMTMwODQxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsMjMgKzI4LDE1IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNs
dWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAotbmFt
ZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlv
bjsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR2VvbG9jYXRpb247CiB9CiAKLW5h
bWVzcGFjZSBXVEYgewotY2xhc3MgU3RyaW5nOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViUHJvY2VzczsKQEAgLTYxLDE2ICs1MywxNSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKLQogcHJpdmF0ZToK
LSAgICAvLyBNZXNzYWdlUmVjZWl2ZXIKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7
CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9uKGNv
bnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxUb0Rl
dGVybWluZVBvc2l0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZv
aWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OwogCiAgICAgV2ViUHJvY2VzcyogbV9wcm9jZXNzOwogICAgIGJvb2wgbV9kaWRBZGRNZXNzYWdl
UmVjZWl2ZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>