<?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>138690</bug_id>
          
          <creation_ts>2014-11-13 01:02:04 -0800</creation_ts>
          <short_desc>Support multiple signatures of diagnostic logging.</short_desc>
          <delta_ts>2014-11-21 21:27:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>andersca</cc>
    
    <cc>bweinstein</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048374</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-13 01:02:04 -0800</bug_when>
    <thetext>Support multiple signatures of diagnostic logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048375</commentid>
    <comment_count>1</comment_count>
      <attachid>241477</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-13 01:11:31 -0800</bug_when>
    <thetext>Created attachment 241477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048407</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-11-13 08:26:44 -0800</bug_when>
    <thetext>I think this client should live on MainFrame instead of Page. Darin, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048640</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-13 20:30:36 -0800</bug_when>
    <thetext>I agree. Almost anything new we think about adding to Page we could instead add to MainFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048656</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-13 21:31:32 -0800</bug_when>
    <thetext>Frame/MainFrame doesn&apos;t seem to have the same kind of &quot;client&quot; infrastructure as page does. In fact, it looks like Page passes its own loaderClientForMainFrame into MainFrame when it creates it.

Should MainFrame take a MainFrameClients struct (I guess passed into it inside of or part of PageClients) in its constructor?

And what makes this all weirder is that WebPage is created first, then Page, then MainFrame, then WebFrame. So if a client is going to exist at construction time, it&apos;s got to be WebPage which creates it.

We could have WebFrame set its client on MainFrame after they&apos;re all constructed, but that might result in logging messages getting dropped if we add logs which fire in between when Page is constructed and when WebFrame sets its clients on it.

And WebFrame currently doesn&apos;t have any of its own clients. It&apos;s given a client by WebPage.

So I guess I don&apos;t understand what makes MainFrame the best place to put these new clients?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048662</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-13 21:42:51 -0800</bug_when>
    <thetext>    // FIXME: Rename this to PageConfiguration and move it to its own class.
    struct PageClients { ... };

This would be a lot easier if that FIXME was fixed.  As it is, the class-member-class PageClients can&apos;t be forward declared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048765</commentid>
    <comment_count>6</comment_count>
      <attachid>241592</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-14 09:01:44 -0800</bug_when>
    <thetext>Created attachment 241592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048851</commentid>
    <comment_count>7</comment_count>
      <attachid>241619</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-14 13:26:57 -0800</bug_when>
    <thetext>Created attachment 241619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048854</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-14 13:29:05 -0800</bug_when>
    <thetext>Attachment 241619 did not pass style-queue:


ERROR: Source/WebCore/WebCore.exp.in:0:  Source/WebCore/WebCore.exp.in should be sorted, use Tools/Scripts/sort-export-file script  [list/order] [5]
Total errors found: 1 in 27 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>1048867</commentid>
    <comment_count>9</comment_count>
      <attachid>241624</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-14 14:18:52 -0800</bug_when>
    <thetext>Created attachment 241624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048882</commentid>
    <comment_count>10</comment_count>
      <attachid>241629</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-14 15:06:29 -0800</bug_when>
    <thetext>Created attachment 241629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048898</commentid>
    <comment_count>11</comment_count>
      <attachid>241634</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-14 15:38:31 -0800</bug_when>
    <thetext>Created attachment 241634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049261</commentid>
    <comment_count>12</comment_count>
      <attachid>241728</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-17 11:24:18 -0800</bug_when>
    <thetext>Created attachment 241728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049796</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-19 09:25:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/19031034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050623</commentid>
    <comment_count>14</comment_count>
      <attachid>242091</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-21 15:58:23 -0800</bug_when>
    <thetext>Created attachment 242091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050635</commentid>
    <comment_count>15</comment_count>
      <attachid>242093</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-21 16:43:00 -0800</bug_when>
    <thetext>Created attachment 242093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050688</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-11-21 21:27:05 -0800</bug_when>
    <thetext>Committed r176499: &lt;http://trac.webkit.org/changeset/176499&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241477</attachid>
            <date>2014-11-13 01:11:31 -0800</date>
            <delta_ts>2014-11-14 09:01:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141113011137.patch</filename>
            <type>text/plain</type>
            <size>40189</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNkYWQxYzhhZWY2YTZi
ODFhOTA4NDllOWMyMjU2MWRkYjYzNTg5Mi4uNzZmMTRjNGRjODRkNTVmY2MyYmZmMjM4Zjc2NmMz
MTYxNTAwN2Q5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IFVzZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC4KKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKTogRGl0dG8uCisgICAgICAgICog
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ1BsdWdpblJl
cXVlc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOiAKKyAgICAgICAgKFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6fkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KTogRW1wdHkgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCk6IFNpbXBsZSBhY2Nlc3Nvci4KKwogMjAxNC0xMS0xMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNwZWVkIHVwIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZSgpIGEgYml0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZGM0YTk0NmQxNzNjZmRmYWEwMWE1MGZkMDI4YmFhYjBkMDY0NzA4NC4uM2ZkNjE5ZWQ0ZGE0MTY3
YjkzOGQ0MDFmMjkxMTdmOTAzNDRlY2M1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisy
MDE0LTExLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgc2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRlbmQgdGhlIGV4aXN0
aW5nIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IGludGVyZmFjZSBieSBkZXBy
ZWNhdGluZworICAgICAgICB0aGUgb3JpZ2luYWwgbG9nRGlhZ25vc3RpY01lc3NhZ2UgY2xpZW50
IG1ldGhvZCBpbiBWMSBhbmQgYWRkaW5nIHRocmVlIG5ldywKKyAgICAgICAgZXhwbGljaXQgY2xp
ZW50IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKToKKyAgICAgICAgICAgIFJlbmFtZWQg
ZnJvbSBsb2dEaWFnbm9zdGljTWVzc2FnZSgpLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOiBQ
YXNzIHRvIHRoZSBjbGllbnQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKTogRGl0dG8uCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQpOiBTaW1wbGUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Ojp+V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpOiBTaW1wbGUgZGVz
dHJ1Y3Rvci4KKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlKTogUGFzcyB0byB0aGUgaW5qZWN0ZWQgYnVuZGxlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6IERpdHRvLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5pdGlhbGl6ZSB0aGUgbmV3IGNsaWVu
dC4KKwogMjAxNC0xMS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbRU1FXVtXSzJdIFNpbXBsaWZ5IHRoZSBNZWRpYUtleXMgb3JpZ2luIGRlbGV0aW9uIGNv
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMGQ3MzhmMDUzYWM4Y2VlY2Y4NWQ4NGRhMjk1MDQyNTNjZTRmYTYxYy4uZDA3MjVh
ZDJjNWE4N2E5MGViZjAyZjQyMzk3OWY2MGViM2Y3NTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU4Myw2ICs1NTgzLDcg
QEAKIAkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwRUVFMEIx
NDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICovOyB9OwogCQlDRDEy
N0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5
MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVF
MTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0
Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxOUEyNjgxQTEzRTcwMDAwOEQ2NTBFIC8qIERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRDFCNEE2NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE5OERDMjE2
MDE0RUVFMDBGRUEzQjEgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgKi87IH07CiAJCUNEMUU3
MzQ3MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFFNzM0NjE2N0JDNzhF
MDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovOyB9OwogCQlDRDI3RjZF
NTE0NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdE
IC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEzMDEwLDYgKzEzMDExLDcgQEAK
IAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXVkaW9EZXN0aW5hdGlvbklPUy5j
cHA7IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMw
OTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIw
MDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAv
KiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjY5NCw2ICsxNjY5Niw3IEBACiAJCQkJRTEyNzFBMEEwRUVFQzc3QTAwRjYxMjEzIC8qIFdv
cmtlck5hdmlnYXRvci5oICovLAogCQkJCUUxMjcxQTUxMEVFRUNEMUMwMEY2MTIxMyAvKiBXb3Jr
ZXJOYXZpZ2F0b3IuaWRsICovLAogCQkJCTdDREVFRTFEMTk3NjEwRDcwMEUzNTJDRCAvKiBWaWV3
U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovLAorCQkJCUNEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAv
KiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBwYWdlOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzODIzLDYgKzIzODI2LDcgQEAKIAkJCQk4
NThDMzgyQzBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1OTA5RDI5MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVW
YWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMkRFMTBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxOUEyNjgxQTEzRTcwMDAw
OEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NUI0OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMkRFMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1RTcxMTkyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01DU1NSdWxl
TGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGU2NDM1OTNmNTVhYzAyYTFiNjgwOGVjOGI4NzU1Yjc4MzdjYTY2
M2UuLmUxMmRlMGNjOGNiNmE5MWFjZWE4MTMxY2IyNTNiMmE5NzVjOTBkNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAj
aW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJEaXNwbGF5
U2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0xODI1LDIw
ICsxODI2LDIyIEBAIHN0YXRpYyB2b2lkIGxvZ01lZGlhTG9hZFJlcXVlc3QoUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBtZWRpYUVuZ2luZSwgY29uc3QgU3RyCiAgICAgaWYgKCFwYWdlIHx8ICFw
YWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBDaHJvbWVDbGllbnQmIGNocm9tZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCA9IHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFzdWNjZWVkZWQp
IHsKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bWVkaWFMb2FkaW5nRmFpbGVkS2V5KCksIGVycm9yTWVzc2FnZSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpmYWlsS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bWVkaWFMb2FkaW5nRmFpbGVkS2V5KCksIGVycm9yTWVzc2FnZSwgRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OkZhaWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2hyb21lQ2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2Fk
ZWRLZXkoKSwgbWVkaWFFbmdpbmUsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsK
KyAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRlZEtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBp
ZiAoIXBhZ2UtPmhhc1NlZW5BbnlNZWRpYUVuZ2luZSgpKQotICAgICAgICBjaHJvbWVDbGllbnQu
bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNB
dExlYXN0T25lTWVkaWFFbmdpbmVLZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9n
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExl
YXN0T25lTWVkaWFFbmdpbmVLZXkoKSwgZW1wdHlTdHJpbmcoKSk7CiAKICAgICBpZiAoIXBhZ2Ut
Pmhhc1NlZW5NZWRpYUVuZ2luZShtZWRpYUVuZ2luZSkpCi0gICAgICAgIGNocm9tZUNsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc01l
ZGlhRW5naW5lS2V5KCksIG1lZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BL
ZXkoKSk7CisgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVz
c2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc01lZGlhRW5naW5lS2V5KCks
IG1lZGlhRW5naW5lKTsKIAogICAgIHBhZ2UtPnNhd01lZGlhRW5naW5lKG1lZGlhRW5naW5lKTsK
IH0KQEAgLTU3NzEsOSArNTc3NCwxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyRW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPnNl
dHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBh
Z2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIGVuZ2luZSA9IG1fcGxheWVy
LT5lbmdpbmVEZXNjcmlwdGlvbigpOwotICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpudW1i
ZXIobV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpOwotICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZW5naW5l
RmFpbGVkVG9Mb2FkS2V5KCksIGVuZ2luZSwgbWVzc2FnZSk7CisgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIGVuZ2luZSwgU3RyaW5nOjpudW1iZXIobV9w
bGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpyZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZGRiY2UwZGNjNTc3MzE3NGZjY2E0
NzFhZjcxOTVkMDY3OTZjMzgwZi4uY2QyYjEyOWNkNDE4ZDY3YmEwYzdjZTNiNGUyNzM0MGUxZDAx
Y2NlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCkBAIC0yMjY2
LDcgKzIyNjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlz
RnJhbWUoKQogICAgICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdu
b3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlz
TnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkgOiBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmZhaWxLZXkoKSk7CisgICAgICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpOworICAgICAgICAgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdl
TG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OlBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6RmFpbCk7CiAKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAKaW5kZXggNWMzNzc4OTFiNjQyNmQ1YmI1ZTdlOTQzZjQ2MTg4OGY2YjlhMTEy
Yy4uMDY4MDVkZTU5ZjliMTRlZGI1ODAwY2U0MjA1ZTE4OTA3NmQ0NGUwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0xOTIsMTQgKzE5MywxNyBAQCBzdGF0aWMgdm9p
ZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgdQogICAgIFN0cmluZyBwbHVnaW5GaWxlID0gcGFnZS0+cGx1Z2luRGF0YSgp
LnBsdWdpbkZpbGVGb3JNaW1lVHlwZShuZXdNSU1FVHlwZSk7CiAgICAgU3RyaW5nIGRlc2NyaXB0
aW9uID0gIXBsdWdpbkZpbGUgPyBuZXdNSU1FVHlwZSA6IHBsdWdpbkZpbGU7CiAKLSAgICBDaHJv
bWVDbGllbnQmIGNocm9tZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpOwotICAgIGNo
cm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2lu
TG9hZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpu
b29wS2V5KCkpOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCA9IHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnBsdWdpbkxvYWRlZEtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVn
aW5Mb2FkaW5nRmFpbGVkS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIGlmICghcGFnZS0+aGFz
U2VlbkFueVBsdWdpbigpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5
KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKLSAg
ICAKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgp
LCBlbXB0eVN0cmluZygpKTsKKwogICAgIGlmICghcGFnZS0+aGFzU2VlblBsdWdpbihkZXNjcmlw
dGlvbikpCi0gICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc1BsdWdpbktleSgpLCBkZXNjcmlwdGlvbiwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdl
Q29udGFpbnNQbHVnaW5LZXkoKSwgZGVzY3JpcHRpb24pOwogCiAgICAgcGFnZS0+c2F3UGx1Z2lu
KGRlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDg3OGRl
ZTU4Mzg3MmExNTdiNzc3ZmQyODg2YTU3NGQ4ZjczMDRmNDYuLjNiYmQ2YzBkNzQ4ZWNhMGVhOGIy
MTc1ZDkzMmRjZTBmMmZmNTg0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
NDE2LDggKzQxNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0
aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgU3RyaW5nJiBzdGF0dXMpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURf
UEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0oc3RhdHVzKTsgfQotCiAgICAgdmlydHVh
bCBGbG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUo
MTAwLCAxMDApOyB9OwogCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNmQwMWNlMzFjNDdlMjYzM2U4ODFlMzEzY2Y1
YzQ3MTA3ODQ3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsgfQorCisgICAgZW51bSBMb2dSZXN1bHRUeXBlIHsKKyAgICAgICAgUGFz
cywKKyAgICAgICAgRmFpbCwKKyAgICAgICAgTm9vcCwKKyAgICB9OworICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBMb2dSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTSht
ZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgVU5VU0VEX1BBUkFN
KG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0odmFsdWUp
OyB9CisKK3Byb3RlY3RlZDoKKyAgICB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KK307
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjMTFiYjAwZjFjOWJkZWI0OWJl
Mzg1MGYwNjNmMzlkOWExM2IxYjRlLi5kN2UzOWIxNTc3NmIzYTRjYzlhZWNhYTQ2MDlhMzEyZDVm
MDBkYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE1Miw2ICsxNTIsNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fZWRpdG9yQ2xpZW50KHBhZ2VDbGll
bnRzLmVkaXRvckNsaWVudCkKICAgICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDbGllbnRzLnBsdWdJ
bkNsaWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQocGFnZUNsaWVudHMudmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQpCisgICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KHBh
Z2VDbGllbnRzLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogICAgICwgbV9zdWJmcmFtZUNvdW50
KDApCiAgICAgLCBtX29wZW5lZEJ5RE9NKGZhbHNlKQogICAgICwgbV90YWJLZXlDeWNsZXNUaHJv
dWdoRWxlbWVudHModHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWY3ZjhhY2M0MzQwN2MxNmNjNmIx
YWRhNDNiMDljMTkyZjU4ZjhlMy4uMDY5ZmUzMmVkMjE5NDliZjRlYjkyOTdkODI1YzU1ZWE0N2Y5
MjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgQ2xpZW50UmVjdExp
c3Q7CiBjbGFzcyBDb2xvcjsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3MgQ29udGV4
dE1lbnVDb250cm9sbGVyOworY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiBjbGFzcyBE
cmFnQ2FyZXRDb250cm9sbGVyOwogY2xhc3MgRHJhZ0NsaWVudDsKIGNsYXNzIERyYWdDb250cm9s
bGVyOwpAQCAtMTQwLDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVmUHRyPEJhY2tGb3J3
YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgICAgICBGcmFtZUxvYWRlckNsaWVu
dCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lOworICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiAKICAgICAgICAgUmVmUHRyPFVzZXJDb250
ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgICAgICBSZWZQdHI8Vmlz
aXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKQEAgLTE2NCw2ICsxNjYsNyBAQCBwdWJs
aWM6CiAKICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZWRpdG9yQ2xpZW50OyB9CiAgICAgUGx1Z0luQ2xpZW50KiBwbHVnSW5DbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX3BsdWdJbkNsaWVudDsgfQorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ7IH0KIAogICAgIE1haW5GcmFtZSYgbWFpbkZyYW1lKCkgeyBBU1NFUlQobV9tYWlu
RnJhbWUpOyByZXR1cm4gKm1fbWFpbkZyYW1lOyB9CiAgICAgY29uc3QgTWFpbkZyYW1lJiBtYWlu
RnJhbWUoKSBjb25zdCB7IEFTU0VSVChtX21haW5GcmFtZSk7IHJldHVybiAqbV9tYWluRnJhbWU7
IH0KQEAgLTUwNiw2ICs1MDksNyBAQCBwcml2YXRlOgogICAgIEVkaXRvckNsaWVudCogbV9lZGl0
b3JDbGllbnQ7CiAgICAgUGx1Z0luQ2xpZW50KiBtX3BsdWdJbkNsaWVudDsKICAgICBWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudCogbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKKyAgICBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIAogICAgIGludCBt
X3N1YmZyYW1lQ291bnQ7CiAgICAgU3RyaW5nIG1fZ3JvdXBOYW1lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4YTYxZGU1MDQ5
YTcxNmRkOTQwYzM4MzgyNDg5MWZhZTA5YTk4ZTAuLjYxZjdhM2RkYjQ4YTYyZGU2M2U1Yjg0Nzkw
ODg2MzI1MmY3ZWMxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE1ODMsNiArMTU4Myw4IEBACiAJCUM1RkExRUQ0MThFMTA2
MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RkExRUQyMThFMTA2MjIwMEIzRjQwMiAvKiBX
S0FpclBsYXlSb3V0ZVBpY2tlci5tbSAqLzsgfTsKIAkJQ0QwMDNBNTIxOUQ0OUI1RDAwNUFCQ0Uw
IC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNBNTAxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwICovOyB9OwogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJD
RTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKKwkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBF
IC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi87IH07CisJCUNEMTlBMjZFMUExM0U4MzQwMDhE
NjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CiAJCUNENUM2NkEwMTM0QjlEMzgwMDRG
RTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlFMTM0QjlEMzYwMDRG
RTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLzsgfTsKIAkJ
Q0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmggKi87IH07CiAJCUNENjdEMzBFMTVDMDhGOUEwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY3RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9OwpAQCAtMzY4Nyw2
ICszNjg5LDggQEAKIAkJQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRl
UGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tBaXJQ
bGF5Um91dGVQaWNrZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUwMTlENDlCNUQwMDVBQkNF
MCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVk
aWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMTlBMjY5MUExM0U4MjAwMDhE
NjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDY3RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc0Myw2ICs1NzQ3LDggQEAKIAkJCQlEM0I5NDg0NTEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCiAJCQkJQ0VEQkE4NDUx
OUZEQTAwQTAwNjg2NkE1IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8sCiAJCQkJ
Q0VEQkE4NDYxOUZEQTAwQTAwNjg2NkE1IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oICov
LAorCQkJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAgKi8sCisJCQkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmVTdXBwb3J0Owog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc1MDgsNiArNzUxNCw3IEBACiAJCQkJMUE2
NTA5Q0UxOEI0MTQ2MjAwNjE0MzMyIC8qIFdLUHJvY2Vzc1Bvb2xQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0ODlEMjkwMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2Fj
aGVFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUg
LyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMy
RDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgxMjg4RDE5NDAwQTRC
Njk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODk4LDYgKzg5
MDUsNyBAQAogCQkJCTFBMUUwOTMzMTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5MEMxRjUxMjY0RkQ3MTAwM0U0NEQ0
IC8qIEZpbmRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOTEwMDcyMTI2Njc1
QzQwMDE4NDJGNSAvKiBUZXh0SW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMTlB
MjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0U4MUQ4QzEzMTlGN0VGMDAyNDE5MTAgLyogRm9udEluZm8uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTFBNDkxODIwOENENjAwMzEwMDdBIC8qIFdLTlNTdHJp
bmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCmluZGV4IDQxNTRkMDNlZWI2ZDhlYWFkYjc5YWYzN2NhNzY1YTVhNjFmMzRl
ODAuLmFiNWFjZmI1MDE3NDk3YWNlYzAzNWIwNjE1ODAxZmQ0OGQ5MDEwZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKQEAgLTI4LDcgKzI4LDE3IEBACiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAK
K2VudW0geworICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA9IDAsCisgICAga1dL
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsID0gMSwKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdE5vb3AgPSAyLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGU7CisKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgc3VjY2VzcywgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwg
V0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1Jl
ZiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgdmFs
dWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
QEAgLTQyLDEzICs1MiwzMCBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudFYwIHsKICAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOwog
fSBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwOwogCi1lbnVtIHsga1dLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBS
RUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMCB9Owor
dHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMSB7Cisg
ICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkOworCisgICAgLy8gVmVyc2lvbiAxLgorICAg
IFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZTsKK30gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMTsK
KworZW51bSB7IGtXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEN1cnJlbnRWZXJz
aW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGlu
c3RlYWQiKSA9IDEgfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnRJbmZvOwogCiAgICAgLy8gVmVyc2lvbiAwLgotICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQ7
CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3Nh
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2Fn
ZTsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAgICBX
S0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOwogfSBXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCBXS19ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVy
c2lvbmVkIHN0cnVjdCBpbnN0ZWFkIik7CiAKICNlbmRpZiAvLyBXS0J1bmRsZVBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCmluZGV4IDE3NmNhNjY3N2Y0NjE4
NDQ5ZDI1N2ZmMjcyZmI3ZTUwZmE3NzEwNjUuLjlhYjg2ZjkzM2EwMmRmMWY3YzhjMzE3MmFmYjUz
YmI1NTFjNGNmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC0zMSwxMSArMzEsMzIgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBz
dWNjZXNzKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNj
ZXNzKQoreworICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVk
KQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VEZXBy
ZWNhdGVkKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0
aW9uLmltcGwoKSksIHRvQVBJKHN1Y2Nlc3MuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghbV9jbGllbnQubG9n
RGlhZ25vc3RpY01lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NsaWVudC5sb2dEaWFn
bm9zdGljTWVzc2FnZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShk
ZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSShzdWNjZXNzLmltcGwoKSksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodG9BUEkocGFn
ZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmICghbV9j
bGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KQorICAgICAgICByZXR1cm47Cisg
ICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHRvQVBJKHBhZ2UpLCB0
b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHJlc3VsdCwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2Vi
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBs
KCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSSh2YWx1ZS5pbXBsKCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggZGRmODM4
MDM5YWI2OGNkMDA0NzZiNDFmZDJhNzhmMjlmMGU3ZmE1ZC4uYmI2ZWFlZjVlMGI4OWVjNjRjZDZi
MmFkMjdiYzRlYjM1MjhlNzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMD4gVmVyc2lvbnM7CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjAs
IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjE+IFZlcnNpb25zOwogfTsKIH0K
IApAQCAtNDUsNyArNDUsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpOworICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vzcyk7
CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSk7Cisg
ICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDJhNDNlZGU3MGU0Mjg2MzBkMTQ0ZGRhOWNmMGU1MmFlZDA2ZmM0OTIuLjQ2ZGRlOGM4
OWExYzAyMTc4M2YyOGNhZWM1ZTM5MjE0ZjYwYjk2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTk4OSwxNCArOTg5LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCiAgICAgbV9wYWdlLT5udW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKQotewotICAgIGlmICghbV9wYWdlLT5j
b3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9u
LCBzdWNjZXNzKTsKLX0KLQogU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6cGx1Z0luU3RhcnRMYWJl
bFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFn
ZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnBsdWdJblN0YXJ0TGFiZWxUaXRsZShtaW1lVHlw
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlN2M5YjkzODFlN2ZmNzI5YjcxOTFjNDQzNzI2NDM5ZTAxY2FiNjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisK
KyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sK
K30KKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6On5XZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpCit7Cit9CisKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0
ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKCZt
X3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OkxvZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmICghbV9wYWdlLmNv
cmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KCZtX3BhZ2UsIG1lc3NhZ2UsIGRl
c2NyaXB0aW9uLCByZXN1bHQpOworfQorCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYg
KCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSgmbV9wYWdlLCBt
ZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWIx
MDE2MmFmZjIzYzdiNGE0ZmJmMDVhMDk1ZjE1NmY3MTIzMjNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRf
aAorCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
OworCitjbGFzcyBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6CisgICAgV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQoV2ViUGFnZSYpOworICAgIHZpcnR1YWwgfldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIExvZ1Jlc3VsdFR5
cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA3ZTgwNTUwZTE2ZDYzNWQ4ZDQ1N2Q4ZmQxZTYwYTZjNDdlZGRjY2FiLi5l
YjQ4MDEyMDcyOWIwNGM4NzY1MWFmZWM4OTI5MDQyNzlmMWFkZGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVu
dC5oIgpAQCAtMzU3LDYgKzM1OCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlE
LCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VD
bGllbnRzLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVnSW5DbGllbnQodGhpcyk7CiAgICAgcGFn
ZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OwogICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQoKnRoaXMpOworICAgIHBhZ2VDbGllbnRzLmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50ID0gbmV3IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCp0aGlzKTsKIAogICAg
IHBhZ2VDbGllbnRzLnVzZXJDb250ZW50Q29udHJvbGxlciA9IG1fdXNlckNvbnRlbnRDb250cm9s
bGVyID8gJm1fdXNlckNvbnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSA6
IG51bGxwdHI7CiAgICAgcGFnZUNsaWVudHMudmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJ
RCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241592</attachid>
            <date>2014-11-14 09:01:44 -0800</date>
            <delta_ts>2014-11-14 13:26:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141114090151.patch</filename>
            <type>text/plain</type>
            <size>73492</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNkYWQxYzhhZWY2YTZi
ODFhOTA4NDllOWMyMjU2MWRkYjYzNTg5Mi4uMGFkYTgyZjE5YjE1MTBkMGVhMmU5ODNhZTQ3NzE1
MzVmYTk4Mzc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IFVzZSBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhp
c0ZyYW1lKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oOiAKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6fkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogRW1wdHkgZGVzdHJ1Y3Rvci4K
KworICAgICAgICBSZW5hbWUgUGFnZTo6UGFnZUNsaWVudCB0byBQYWdlQ29uZmlndXJhdGlvbiwg
YW5kIHBhc3MgdGhhdCBjb25maWd1cmF0aW9uIGZyb20KKyAgICAgICAgUGFnZSBpbnRvIE1haW5G
cmFtZSB1cG9uIGNvbnN0cnVjdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQ
YWdlKTogVXNlIFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsV2l0
aEVtcHR5Q2xpZW50cyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJh
bWU6Ok1haW5GcmFtZSk6IFBhc3MgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lIHRocm91Z2ggdG8g
dGhlCisgICAgICAgICAgICBGcmFtZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5GcmFtZTo6Y3JlYXRlKTogVGFrZXMgYSBQYWdlQ29uZmlndXJhdGlvbi4KKyAgICAgICAgKiBw
YWdlL01haW5GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6IFNpbXBsZSBhY2Nlc3Nvci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6UGFnZUNsaWVudHM6On5QYWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKTog
UmVuYW1lZCBmcm9tIFBhZ2VDbGllbnRzKCkuCisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tIH5QYWdlQ2xpZW50cygp
LgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDogQWRkZWQuCisgICAgICAgICog
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpk
YXRhQ2hhbmdlZCk6IFVzZSBQYWdlQ29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIFBhZ2VDbGllbnRz
LgorCisKIDIwMTQtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBTcGVlZCB1cCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFs
dWUoKSBhIGJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDViOTNjZTQ2N2QxYzhiYzgyNWRjYTgzMWJh
Yzg2MTJmZWFmMWU0YzQuLmViNTgzYjZjMTNkNGRjZGRkNDRmZjkwYjk0MmM3NzdhMTk5NDhhYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0xMS0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIHNpZ25h
dHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgaGFzIGJlZW4gcmVuYW1lZCBQ
YWdlQ29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFt
ZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxl
OmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNC0xMS0xMSAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWN0aW9uIG1lbnUgaGl0IHRlc3Rpbmcg
aXMgbm90IHdvcmtpbmcgcHJvcGVybHkgd2l0aCBhbGwgV0sxIGFwcHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBk
YzRhOTQ2ZDE3M2NmZGZhYTAxYTUwZmQwMjhiYWFiMGQwNjQ3MDg0Li4wMjQwMGQxYWU3NWExZTI1
OWJjOTZkZGJhYTE5Yzk5OTA3OGU4Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIw
MTQtMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3Vw
cG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2luZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCB0aGUgZXhpc3Rp
bmcgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgaW50ZXJmYWNlIGJ5IGRlcHJl
Y2F0aW5nCisgICAgICAgIHRoZSBvcmlnaW5hbCBsb2dEaWFnbm9zdGljTWVzc2FnZSBjbGllbnQg
bWV0aG9kIGluIFYxIGFuZCBhZGRpbmcgdGhyZWUgbmV3LAorICAgICAgICBleHBsaWNpdCBjbGll
bnQgbWV0aG9kcy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQpOgorICAgICAgICAgICAgUmVuYW1lZCBm
cm9tIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBh
c3MgdG8gdGhlIGNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9nRGlh
Z25vc3RpY01lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KTogU2ltcGxlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxlIGRlc3Ry
dWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhlIGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAg
KFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQu
CisKIDIwMTQtMTEtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0VNRV1bV0syXSBTaW1wbGlmeSB0aGUgTWVkaWFLZXlzIG9yaWdpbiBkZWxldGlvbiBjb2Rl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhZjMxZDJhNzdmYTEyZGYwZGVjNTMxZmQ3ODhhOTQ4
OTRlZTBmNzEzLi5hOTg1MmU0M2E5Y2U0OTVmYTZjYzc5YjNmNGVhOTQ1OTAzYzVjNTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTEzMyw4ICsxMTMzLDYgQEAgX19aTjdXZWJDb3JlNE5vZGUx
OHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJl
Y2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKIF9fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQog
X19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJpbmdFaAotX19aTjdXZWJD
b3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRz
RDFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFNl
c3Npb25JREVOU185U2Vzc2lvbklERQpAQCAtMTE4MSw3ICsxMTc5LDcgQEAgX19aTjdXZWJDb3Jl
NFBhZ2UzN3NldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGVFYgogX19aTjdXZWJD
b3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQog
X19aTjdXZWJDb3JlNFBhZ2U4c2V0TXV0ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2U5aW5pdEdyb3Vw
RXYKLV9fWk43V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRQorX19aTjdXZWJDb3Jl
NFBhZ2VDMUVSTlNfMTdQYWdlQ29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTRQYWdlRDFFdgog
X19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5kZWRSZWN0RVJLTlNfMTZGbG9hdFJvdW5kZWRSZWN0
RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRlZ3lFCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRl
ZFJlY3RFUktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0
cmF0ZWd5RQpAQCAtMjMwOSw2ICsyMzA3LDggQEAgX19aTjdXZWJDb3JlMTZKU1hNTEh0dHBSZXF1
ZXN0OXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0Nv
bG9yRVA3TlNDb2xvcgogX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29raWVzRVJLTlNfMjFOZXR3
b3JrU3RvcmFnZVNlc3Npb25FCiBfX1pON1dlYkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUks3X05T
UmVjdAorX19aTjdXZWJDb3JlMTdQYWdlQ29uZmlndXJhdGlvbkMxRXYKK19fWk43V2ViQ29yZTE3
UGFnZUNvbmZpZ3VyYXRpb25EMUV2CiBfX1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjNz
ZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFy
VGhlbWVNYWMyNHJlbW92ZU92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29y
ZTE3U2Nyb2xsYmFyVGhlbWVNYWMyN3NldFVwT3ZlcmhhbmdBcmVhQmFja2dyb3VuZEVQN0NBTGF5
ZXJSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwZDczOGYwNTNhYzhjZWVjZjg1ZDg0ZGEyOTUwNDI1M2NlNGZh
NjFjLi5iMjc1ZTU0NzA1MmZhN2NjMDkzMGM4N2NjNjc3OGVkZjExMzQzNDQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTgz
LDYgKzU1ODMsNyBAQAogCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5h
dGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgKi87
IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3
REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsK
IAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0
RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDE5QTI2ODFBMTNFNzAwMDA4
RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRl
ZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQTk4REMyMTYwMTRFRUUwMEZFQTNCMSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCAqLzsg
fTsKIAkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUU3
MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi87IH07
CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2
NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtNTYxOSw2ICs1
NjIwLDggQEAKIAkJQ0Q1NERFNEIxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0
OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2
OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY4RjE0NzVCNjc4MDAxRDBC
RDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTIxNDc1QjY3ODAw
MUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmls
ZVJlYWRlcklPUy5oICovOyB9OworCQlDRDVFNUI1RjFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNv
bmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNENUU1QjYxMUEx
NUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyog
UGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIg
LyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0g
Ki87IH07CiAJCUNENjBDMEM3MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MEMwQzUxOTNF
ODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggKi87IH07CiAJCUNENjFGRTY3MTc5NEFB
REIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBN
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLzsgfTsKQEAgLTEzMDEwLDYgKzEzMDEzLDcgQEAKIAkJ
Q0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7
IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5
MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
MUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4
MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBK
U01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MzA1Niw2ICsxMzA2MCw4IEBACiAJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nl
c3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9T
ZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBwYXRoID0gaW9zL0F1
ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5
NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9GaWxlUmVhZGVySU9TLmg7IHBhdGggPSBpb3MvQXVk
aW9GaWxlUmVhZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUU1QjVF
MUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYWdlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbmZpZ3VyYXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBDNDE5M0U4N0M3MDAz
QzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZVFUS2l0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU5Niw2ICsxNjYwMiw4IEBA
CiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCAqLywKIAkJCQlDRDA4Mjg1
QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwICovLAog
CQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tl
bi5oICovLAorCQkJCUNENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlv
bi5jcHAgKi8sCisJCQkJQ0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0
aW9uLmggKi8sCiAJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlQ2xp
ZW50LmNwcCAqLywKIAkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVD
bGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4Mjk3MzQzMDBERTE3MjkgLyogUGFnZURlYnVnZ2Fi
bGUuY3BwICovLApAQCAtMTY2OTQsNiArMTY3MDIsNyBAQAogCQkJCUUxMjcxQTBBMEVFRUM3N0Ew
MEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCAqLywKIAkJCQlFMTI3MUE1MTBFRUVDRDFDMDBG
NjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlkbCAqLywKIAkJCQk3Q0RFRUUxRDE5NzYxMEQ3MDBF
MzUyQ0QgLyogVmlld1N0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLywKKwkJCQlDRDE5QTI2NzFBMTNF
NzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzgyMyw2ICsyMzgz
Miw3IEBACiAJCQkJODU4QzM4MkMwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUQyOTBBQ0M3RDU1MDBERjAxRjEgLyogRE9N
Q1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTEw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMTlB
MjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODVCNDk4RUQwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5MjBBQzVENTM1MDA1MzI3MEYg
LyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDM4Miw2ICsy
NDM5Miw3IEBACiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEwOTE0NDk1MDAxMEQzNjEgLyogSFRNTEFs
bENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNENUU1QjVGMUExNUNFNTQwMDBDNjA5
RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3QUIwQTE1
Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODcxRDQ1RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTEFwcGxldEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4RUE3RDJFMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MQXJlYUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjc1NzYsNiArMjc1ODcsNyBAQAogCQkJCTUyQjZDOUMyMTVFM0Y0
REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTg1MThERDc5MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAubW0gaW4gU291
cmNlcyAqLywKIAkJCQk4NTNCRjREQzBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTUyNkMzODBBQjBBMTdFMDAwMzAyRUEgLyog
RE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVBQ0FBOEUwQTlCNzU5QzAw
NjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDQTk2RUIwQTk2
MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNjQzNTkzZjU1YWMwMmExYjY4MDhl
YzhiODc1NWI3ODM3Y2E2NjNlLi42NWU0MzdhNDdiZmEzZDg0ZmJkMjVjMWNlZWY4ODEwMmFlOWQz
ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJD
b250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAj
aW5jbHVkZSAiRGlzcGxheVNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgpAQCAtMTgyNSwyMCArMTgyNiwyMiBAQCBzdGF0aWMgdm9pZCBsb2dNZWRpYUxvYWRSZXF1
ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVkaWFFbmdpbmUsIGNvbnN0IFN0cgogICAg
IGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGllbnQgPSBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgIGNocm9tZUNsaWVudC5sb2dE
aWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxl
ZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFpbEtleSgpKTsK
KyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBl
cnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpGYWlsKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5KCksIG1lZGlhRW5naW5lLCBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQt
PmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkZWRL
ZXkoKSwgbWVkaWFFbmdpbmUpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuQW55TWVkaWFFbmdp
bmUoKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCksIGVt
cHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5
U3RyaW5nKCkpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuTWVkaWFFbmdpbmUobWVkaWFFbmdp
bmUpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2luZSwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
YWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBwYWdlLT5z
YXdNZWRpYUVuZ2luZShtZWRpYUVuZ2luZSk7CiB9CkBAIC01NzcxLDkgKzU3NzQsMTIgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0
CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCog
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAg
IHJldHVybjsKKwogICAgIFN0cmluZyBlbmdpbmUgPSBtX3BsYXllci0+ZW5naW5lRGVzY3JpcHRp
b24oKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0
Zm9ybUVycm9yQ29kZSgpKTsKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgp
LCBlbmdpbmUsIG1lc3NhZ2UpOworICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxl
ZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVy
cm9yQ29kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQmVoYXZpb3Jz
UmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCAxZWQxZTk3NDc0OWJhMmQ5YTNiMDQy
NGUxNDBlYTUxZjY3ZTJkODJiLi5mMGNkNzVmYmU0ZDJjZGFhNjFiMzE2YzI3ZWRmNTJjNDQwZDgw
OGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9k
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKQEAgLTgwOCw5ICs4MDksOSBAQCBQYWdl
KiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgpCiAgICAgaWYgKG1fb3ZlcmxheVBhZ2Up
CiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdlLmdldCgpOwogCi0gICAgUGFnZTo6UGFnZUNs
aWVudHMgcGFnZUNsaWVudHM7Ci0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMp
OwotICAgIG1fb3ZlcmxheVBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDbGllbnRz
KTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBmaWxsV2l0
aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CisgICAgbV9vdmVybGF5UGFnZSA9IHN0
ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogCiAgICAgU2V0dGluZ3Mm
IHNldHRpbmdzID0gbV9wYWdlLnNldHRpbmdzKCk7CiAgICAgU2V0dGluZ3MmIG92ZXJsYXlTZXR0
aW5ncyA9IG1fb3ZlcmxheVBhZ2UtPnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDhlNzU0OTc2ZjAyZDM0ZmIyNzk5ZjY3MGNlZDZiY2U1NDYyY2Qw
NWQuLmMxMGFmYWRiZTMxZmFhMGJhZGNkMTA3OWMwMmYzOGQ0ZWFlNGU3YzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQpAQCAtNDMsMzIgKzQ0LDMyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBmaWxs
V2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCit2b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlvbikK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hy
b21lQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9ICZkdW1teUNocm9tZUNs
aWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSAmZHVtbXlD
aHJvbWVDbGllbnQuZ2V0KCk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDb250ZXh0TWVudUNsaWVudD4gZHVtbXlDb250ZXh0TWVu
dUNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9ICZkdW1teUNvbnRl
eHRNZW51Q2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xp
ZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RHJhZ0NsaWVu
dD4gZHVtbXlEcmFnQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSAmZHVtbXlE
cmFnQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSAmZHVt
bXlEcmFnQ2xpZW50LmdldCgpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
RW1wdHlFZGl0b3JDbGllbnQ+IGR1bW15RWRpdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmVk
aXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJh
dGlvbi5lZGl0b3JDbGllbnQgPSAmZHVtbXlFZGl0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlJbnNwZWN0b3JDbGllbnQ+IGR1bW15SW5zcGVjdG9yQ2xp
ZW50OwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9ICZkdW1teUluc3BlY3RvckNs
aWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQgPSAmZHVt
bXlJbnNwZWN0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xp
ZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5n
ZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAm
ZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICAKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+IGR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dy
ZXNzVHJhY2tlckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVzc1Ry
YWNrZXJDbGllbnQgPSAmZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQuZ2V0KCk7CiB9CiAKIGNs
YXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKaW5kZXggZjMyMGM1OTk3Y2QzYzllMzE1MmRhYTJjYjcxZTg0YzNiYWE4
NjkwZC4uNDIwMGI4MDE1ZTQxM2UwODExYWNlNmRmOGUxYTk1MDYxMWJiMzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNjM0LDcgKzYzNCw3IEBAIGNsYXNzIEVtcHR5
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IDogcHVibGljIFByb2dyZXNzVHJhY2tlckNsaWVudCB7CiAg
ICAgdmlydHVhbCB2b2lkIHByb2dyZXNzRmluaXNoZWQoRnJhbWUmKSBvdmVycmlkZSB7IH0KIH07
CiAKLXZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZTo6UGFnZUNsaWVudHMmKTsKK3ZvaWQg
ZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mKTsKIAogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBkZGJjZTBkY2M1NzczMTc0ZmNjYTQ3MWFm
NzE5NWQwNjc5NmMzODBmLi4wNjc5ZjM1ZjVmMjkzMDNjNWU3MDI1MDFlNzI0OWYyMDcxN2JhZWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAK
ICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKQEAgLTIyNjYsNyAr
MjI2NywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFt
ZSgpCiAgICAgICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPnNldHRpbmdzKCkuZGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxs
KCkgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhc3NLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5n
S2V5czo6ZmFpbEtleSgpKTsKKyAgICAgICAgICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCk7CisgICAgICAgICAgICBpZiAoIWRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpGYWls
KTsKIAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA1YzM3Nzg5MWI2NDI2ZDViYjVlN2U5NDNmNDYxODg4
ZjZiOWExMTJjLi4zYTI2MGQ3ZDQzMjliOWM2OTgxMGEwNDU0MjBjZTZlMWRkY2IxNjFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3Vt
ZW50LmgiCkBAIC0xOTIsMTQgKzE5NCwxNyBAQCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0
KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdQogICAg
IFN0cmluZyBwbHVnaW5GaWxlID0gcGFnZS0+cGx1Z2luRGF0YSgpLnBsdWdpbkZpbGVGb3JNaW1l
VHlwZShuZXdNSU1FVHlwZSk7CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIXBsdWdpbkZpbGUg
PyBuZXdNSU1FVHlwZSA6IHBsdWdpbkZpbGU7CiAKLSAgICBDaHJvbWVDbGllbnQmIGNocm9tZUNs
aWVudCA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpOwotICAgIGNocm9tZUNsaWVudC5sb2dEaWFn
bm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2Fk
ZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxlZEtleSgp
LCBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgIERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1h
aW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnBsdWdpbkxvYWRlZEtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2Fk
aW5nRmFpbGVkS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIGlmICghcGFnZS0+aGFzU2VlbkFu
eVBsdWdpbigpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5KCksIGVt
cHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKLSAgICAKKyAg
ICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpLCBlbXB0
eVN0cmluZygpKTsKKwogICAgIGlmICghcGFnZS0+aGFzU2VlblBsdWdpbihkZXNjcmlwdGlvbikp
Ci0gICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnBhZ2VDb250YWluc1BsdWdpbktleSgpLCBkZXNjcmlwdGlvbiwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFp
bnNQbHVnaW5LZXkoKSwgZGVzY3JpcHRpb24pOwogCiAgICAgcGFnZS0+c2F3UGx1Z2luKGRlc2Ny
aXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDg3OGRlZTU4Mzg3
MmExNTdiNzc3ZmQyODg2YTU3NGQ4ZjczMDRmNDYuLjNiYmQ2YzBkNzQ4ZWNhMGVhOGIyMTc1ZDkz
MmRjZTBmMmZmNTg0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDE2LDgg
KzQxNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxM
b25nTW91c2VQcmVzcygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29u
c3QgU3RyaW5nJiBzdGF0dXMpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0oc3RhdHVzKTsgfQotCiAgICAgdmlydHVhbCBGbG9h
dFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAwLCAx
MDApOyB9OwogCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNmQwMWNlMzFjNDdlMjYzM2U4ODFlMzEzY2Y1YzQ3MTA3
ODQ3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9o
CisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2Ny
aXB0aW9uKTsgfQorCisgICAgZW51bSBMb2dSZXN1bHRUeXBlIHsKKyAgICAgICAgUGFzcywKKyAg
ICAgICAgRmFpbCwKKyAgICAgICAgTm9vcCwKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBMb2dSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdl
KTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgVU5VU0VEX1BBUkFNKG1lc3Nh
Z2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0odmFsdWUpOyB9CisK
K3Byb3RlY3RlZDoKKyAgICB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXggNzgwM2Y4ODdlNzczMjVh
Y2I2YTJmMjA2ZWE1OTA4ZTY1OTc0ZjlkOC4uYzgwYjljMzcxZWY2YWQ1ZTBmOTc5Y2I3NDc1Nzlk
ZDQxMmVkODViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogCisjaW5jbHVk
ZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJTY3JvbGxMYXRjaGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVu
dERlbHRhVHJhY2tlci5oIgpAQCAtMzYsOCArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFtZShQYWdlJiBwYWdlLCBGcmFtZUxvYWRlckNs
aWVudCYgY2xpZW50KQotICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgY2xpZW50KQoraW5saW5l
IE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKQorICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgKmNvbmZpZ3VyYXRpb24ubG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKQogICAgICwgbV9zZWxmT25seVJlZkNvdW50KDApCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgICwgbV9sYXRjaGluZ1N0YXRlKHN0ZDo6bWFrZV91bmlxdWU8U2Ny
b2xsTGF0Y2hpbmdTdGF0ZT4oKSkKQEAgLTQ3LDYgKzQ4LDcgQEAgaW5saW5lIE1haW5GcmFtZTo6
TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCiAjZW5kaWYK
ICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcihzdGQ6Om1ha2VfdW5pcXVlPFdo
ZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCiAgICAgLCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4oKnRoaXMpKQorICAgICwgbV9k
aWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KQogewogfQogCkBAIC01NCw5ICs1Niw5IEBAIE1haW5GcmFtZTo6fk1haW5GcmFtZSgpCiB7
CiB9CiAKLVJlZlB0cjxNYWluRnJhbWU+IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2UmIHBhZ2UsIEZy
YW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCitSZWZQdHI8TWFpbkZyYW1lPiBNYWluRnJhbWU6OmNy
ZWF0ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjbGllbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZv
aWQgTWFpbkZyYW1lOjpzZWxmT25seVJlZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAppbmRleCBi
ZDZjZTc5MDNjY2NlNmI3NjkwM2I2MWVkZTQ2NGEzYzE3NWQyYmNkLi5jMTA5OTQwMjBiN2VhNTZl
YzQ3ODc4N2M4MzM5YmJkNDc4MjgxMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01haW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKQEAgLTMw
LDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlD
b250cm9sbGVyOwogY2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI7CkBAIC0zNyw3ICszOSw3IEBAIGNsYXNzIFdoZWVsRXZlbnREZWx0YVRy
YWNrZXI7CiAKIGNsYXNzIE1haW5GcmFtZSBmaW5hbCA6IHB1YmxpYyBGcmFtZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxNYWluRnJhbWU+IGNyZWF0ZShQYWdlJiwgRnJhbWVMb2FkZXJD
bGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBhZ2UmLCBQYWdl
Q29uZmlndXJhdGlvbiYpOwogCiAgICAgdmlydHVhbCB+TWFpbkZyYW1lKCk7CiAKQEAgLTU2LDgg
KzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0TGF0Y2hpbmdTdGF0ZSgpOwogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ7IH0KKwogcHJpdmF0ZToKLSAgICBNYWluRnJhbWUoUGFnZSYsIEZyYW1lTG9hZGVyQ2xpZW50
Jik7CisgICAgTWFpbkZyYW1lKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdm9p
ZCBkcm9wQ2hpbGRyZW4oKTsKIApAQCAtNzEsNiArNzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhVHJhY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZU92ZXJsYXlDb250cm9s
bGVyPiBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcjsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIH07CiAKIGlubGluZSBib29sIEZyYW1lOjpp
c01haW5GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjMTFiYjAwZjFjOWJkZWI0
OWJlMzg1MGYwNjNmMzlkOWExM2IxYjRlLi4yNjM2MTY4MmJjMTI5NzVjZTBjNDlkODU3YTE4NTYx
NmJhZmVhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRl
ICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlv
blRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VE
ZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMjQsMzQgKzEyNSwzNCBA
QCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpCiAKIHN0YXRp
YyBjb25zdCBWaWV3U3RhdGU6OkZsYWdzIFBhZ2VJbml0aWFsVmlld1N0YXRlID0gVmlld1N0YXRl
OjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CiAKLVBhZ2U6OlBhZ2UoUGFnZUNs
aWVudHMmIHBhZ2VDbGllbnRzKQotICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJv
bWU+KCp0aGlzLCAqcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50KSkKK1BhZ2U6OlBhZ2UoUGFnZUNv
bmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQorICAgIDogbV9jaHJvbWUoc3RkOjptYWtl
X3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50KSkK
ICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERyYWdDYXJldENv
bnRyb2xsZXI+KCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAsIG1fZHJhZ0NvbnRy
b2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50
cy5kcmFnQ2xpZW50KSkKKyAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxE
cmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50KSkKICNl
bmRpZgogICAgICwgbV9mb2N1c0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxGb2N1c0NvbnRy
b2xsZXI+KCp0aGlzLCBQYWdlSW5pdGlhbFZpZXdTdGF0ZSkpCiAjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENv
bnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVu
dCkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRl
eHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNs
aWVudCkpCiAjZW5kaWYKICAgICAsIG1fdXNlcklucHV0QnJpZGdlKHN0ZDo6bWFrZV91bmlxdWU8
VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgLCBt
X3JlcGxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxSZXBsYXlDb250cm9sbGVyPigqdGhp
cykpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNwZWN0b3JDb250
cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VD
bGllbnRzLmluc3BlY3RvckNsaWVudCkpCisgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRp
b24uaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgLCBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBvaW50ZXJMb2Nr
Q29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpj
cmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlxdWU8UHJvZ3Jlc3NU
cmFja2VyPigqcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkKLSAgICAsIG1fYmFj
a0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVy
PigqdGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQpKQotICAgICwgbV9tYWluRnJh
bWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsICpwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUpKQorICAgICwgbV9wcm9ncmVzcyhzdGQ6Om1ha2VfdW5pcXVlPFByb2dyZXNzVHJh
Y2tlcj4oKnBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCkpCisgICAgLCBt
X2JhY2tGb3J3YXJkQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50KSkKKyAgICAs
IG1fbWFpbkZyYW1lKE1haW5GcmFtZTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbikp
CiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UodGhpcykpCi0gICAgLCBt
X2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQpCi0gICAgLCBtX3BsdWdJbkNs
aWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQpCi0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50KHBhZ2VDbGllbnRzLnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KQorICAgICwgbV9lZGl0
b3JDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KQorICAgICwgbV9wbHVnSW5D
bGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50KQorICAgICwgbV92YWxpZGF0aW9u
TWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkK
ICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAg
ICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpCkBAIC0xOTIsNyArMTkzLDcg
QEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWZuZGVmIE5ERUJVRwog
ICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX2FsdGVybmF0aXZlVGV4
dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCisgICAgLCBtX2FsdGVy
bmF0aXZlVGV4dENsaWVudChwYWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQp
CiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFn
ZVRocm90dGxlcigqdGhpcywgbV92aWV3U3RhdGUpCiAgICAgLCBtX2NvbnNvbGVDbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUNsaWVudD4oKnRoaXMpKQpAQCAtMjAxLDggKzIwMiw4
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBt
X2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNh
bGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAg
LCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKLSAgICAsIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ2xpZW50cy51c2VyQ29udGVudENvbnRyb2xsZXIp
KQotICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ2xpZW50cy52aXNpdGVk
TGlua1N0b3JlKSkKKyAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdl
Q29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIpKQorICAgICwgbV92aXNpdGVkTGlu
a1N0b3JlKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlKSkKICAg
ICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9p
c0Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2lzUGxheWluZ0F1ZGlvKGZhbHNlKQpAQCAtMTY1NSwy
NCArMTY1Niw0IEBAIHZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgICAgIHZpZXctPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChzZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSk7CiB9CiAKLVBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCi0gICAg
OiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKLSAgICAsIGNocm9tZUNsaWVudChudWxs
cHRyKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgICwgY29udGV4dE1lbnVDbGllbnQo
bnVsbHB0cikKLSNlbmRpZgotICAgICwgZWRpdG9yQ2xpZW50KG51bGxwdHIpCi0gICAgLCBkcmFn
Q2xpZW50KG51bGxwdHIpCi0gICAgLCBpbnNwZWN0b3JDbGllbnQobnVsbHB0cikKLSAgICAsIHBs
dWdJbkNsaWVudChudWxscHRyKQotICAgICwgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIp
Ci0gICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudChudWxscHRyKQotICAgICwgbG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCi17Ci19Ci0KLVBhZ2U6OlBhZ2VDbGllbnRzOjp+UGFn
ZUNsaWVudHMoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGFmN2Y4YWNjNDM0MDdjMTZjYzZiMWFkYTQzYjA5YzE5MmY1OGY4ZTMuLjdmNDI0YjM1YjU1
OWUyYzIwNGI5ZjkxNWFiYjEwMWM3YjA4ODA0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MSw2ICs4
MSw3IEBAIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNYWluRnJhbWU7CiBjbGFz
cyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tl
bjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBj
bGFzcyBQYWdlRGVidWdnYWJsZTsKIGNsYXNzIFBhZ2VHcm91cDsKQEAgLTExOSwzMyArMTIwLDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxlRm9y
QWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBjbGVhclByZXZpb3VzSXRlbUZyb21BbGxQYWdlcyhIaXN0b3J5SXRl
bSopOwogCi0gICAgLy8gSXQgaXMgdXAgdG8gdGhlIHBsYXRmb3JtIHRvIGVuc3VyZSB0aGF0IG5v
bi1udWxsIGNsaWVudHMgYXJlIHByb3ZpZGVkIHdoZXJlIHJlcXVpcmVkLgotICAgIC8vIEZJWE1F
OiBSZW5hbWUgdGhpcyB0byBQYWdlQ29uZmlndXJhdGlvbiBhbmQgbW92ZSBpdCB0byBpdHMgb3du
IGNsYXNzLgotICAgIHN0cnVjdCBQYWdlQ2xpZW50cyB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDbGllbnRzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGlj
OgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ2xpZW50cygpOwotICAgICAgICBXRUJDT1JF
X0VYUE9SVCB+UGFnZUNsaWVudHMoKTsKLQotICAgICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQq
IGFsdGVybmF0aXZlVGV4dENsaWVudDsKLSAgICAgICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGll
bnQ7Ci0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgICAgIENvbnRleHRNZW51Q2xpZW50
KiBjb250ZXh0TWVudUNsaWVudDsKLSNlbmRpZgotICAgICAgICBFZGl0b3JDbGllbnQqIGVkaXRv
ckNsaWVudDsKLSAgICAgICAgRHJhZ0NsaWVudCogZHJhZ0NsaWVudDsKLSAgICAgICAgSW5zcGVj
dG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7Ci0gICAgICAgIFBsdWdJbkNsaWVudCogcGx1Z0lu
Q2xpZW50OwotICAgICAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNzVHJhY2tlckNs
aWVudDsKLSAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVu
dDsKLSAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50OwotICAgICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
OwotCi0gICAgICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29u
dHJvbGxlcjsKLSAgICAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3Rv
cmU7Ci0gICAgfTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2UoUGFnZUNsaWVu
dHMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQYWdlKFBhZ2VDb25maWd1cmF0aW9u
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2UoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVp
bnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4OWExODJjMzg1NWQ1OTdkNDc1MjkzNWE1NDg3
YjNiMjc4ODNkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCisKKyNpbmNsdWRlICJCYWNr
Rm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdl
Q29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oKQorICAgIDogYWx0ZXJuYXRpdmVUZXh0
Q2xpZW50KG51bGxwdHIpCisgICAgLCBjaHJvbWVDbGllbnQobnVsbHB0cikKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICAsIGNvbnRleHRNZW51Q2xpZW50KG51bGxwdHIpCisjZW5kaWYK
KyAgICAsIGVkaXRvckNsaWVudChudWxscHRyKQorICAgICwgZHJhZ0NsaWVudChudWxscHRyKQor
ICAgICwgaW5zcGVjdG9yQ2xpZW50KG51bGxwdHIpCisgICAgLCBwbHVnSW5DbGllbnQobnVsbHB0
cikKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChudWxscHRyKQorICAgICwgdmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQobnVsbHB0cikKKyAgICAsIGxvYWRlckNsaWVudEZvck1haW5GcmFtZShu
dWxscHRyKQoreworfQorCitQYWdlQ29uZmlndXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkK
K3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkwOWI3MjNhZTZjZDQ2NGY5MjAzYmU2MzU1MTQwMTc0NjFmMWVjOWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTAsMCAr
MSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFnZUNvbmZpZ3VyYXRpb25faAorI2RlZmluZSBQ
YWdlQ29uZmlndXJhdGlvbl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50OworY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CitjbGFzcyBDaHJvbWVD
bGllbnQ7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCitjbGFzcyBDb250ZXh0TWVudUNsaWVu
dDsKKyNlbmRpZgorY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CitjbGFzcyBEcmFnQ2xp
ZW50OworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFz
cyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ7CitjbGFzcyBVc2VyQ29udGVudENvbnRyb2xsZXI7CitjbGFzcyBWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudDsKK2NsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CisKK2NsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0
aW9uKCk7CisKKyAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVu
dDsKKyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudDsKKyNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKKyAgICBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQ7CisjZW5kaWYK
KyAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKKyAgICBEcmFnQ2xpZW50KiBkcmFnQ2xp
ZW50OworICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OworICAgIFBsdWdJbkNs
aWVudCogcGx1Z0luQ2xpZW50OworICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJvZ3Jlc3NU
cmFja2VyQ2xpZW50OworICAgIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRD
bGllbnQ7CisgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50OworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWU7Cisg
ICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworCisg
ICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyOwor
ICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDVj
ODhhNzRmZDJjMWZkYmIwNjcwOWQxZjhkODk5MDIyNGQwMjZkOTUuLjQ5YjkwYmUzNzEyMjUxNDBk
Njg2NTNjMDlkNjYxODcyOTBkOTkxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAi
UGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgpAQCAtMzM5LDEwICsz
NDAsMTAgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgewotICAg
ICAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICAgICAgZmlsbFdpdGhFbXB0
eUNsaWVudHMocGFnZUNsaWVudHMpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbjsKKyAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRp
b24pOwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHSW1hZ2VD
aHJvbWVDbGllbnQ+KHRoaXMpOwotICAgICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBt
X2Nocm9tZUNsaWVudC5nZXQoKTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xp
ZW50ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMg
U1ZHIGVuZHMgdXAgbG9hZGluZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdvcmxkLgogICAg
ICAgICAvLyBUaGUgQ2FjaGUgY29kZSBkb2VzIG5vdCBrbm93IGFib3V0IENhY2hlZEltYWdlcyBo
b2xkaW5nIEZyYW1lcyBhbmQKQEAgLTM1MCw3ICszNTEsNyBAQCBib29sIFNWR0ltYWdlOjpkYXRh
Q2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgLy8gVGhpcyB3aWxsIGJlY29t
ZSBhbiBpc3N1ZSB3aGVuIFNWR0ltYWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90aGVyCiAgICAg
ICAgIC8vIFNWR0ltYWdlIG9iamVjdHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVjYXVzZSBTVkdJ
bWFnZSBjYW4gb25seSBiZQogICAgICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2ZWwgZG9jdW1l
bnQuCi0gICAgICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMp
OworICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0
aW9uKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7
CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKICAg
ICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0ODQ4NzExOTRhNDg0YmUxNDUxZGQ5MGY4
Y2QyNmFlYmJmOTQ3MTg5Li4xZjg0NDhjZmRmM2Y2NjRmMTIyOTcxNzU1ZGZlYmM5ZDNmZjZhMGVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTUsNiArMTU1LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CkBAIC05MTgsMjMgKzkxOSwyMyBAQCBzdGF0aWMgdm9p
ZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBk
aWRPbmVUaW1lSW5pdGlhbGl6YXRpb24gPSB0cnVlOwogICAgIH0KIAotICAgIFBhZ2U6OlBhZ2VD
bGllbnRzIHBhZ2VDbGllbnRzOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0
aW9uOwogI2lmICFQTEFURk9STShJT1MpCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNs
aWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJh
dGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOworICAgIHBhZ2VD
b25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50
KHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0Ns
aWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRy
YWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGll
bnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVu
dChzZWxmKTsKICNlbHNlCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudElPUyhzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBu
ZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwotI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5h
bHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHNlbGYp
OwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFt
ZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBu
ZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwotICAgIF9wcml2YXRlLT5wYWdlID0g
bmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVu
dCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKKyNlbmRpZgor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQo
c2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5s
b2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudChzZWxmKTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VD
b25maWd1cmF0aW9uKTsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2ViQ29yZTo6cHJv
dmlkZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVu
dChzZWxmKSk7CiAjZW5kaWYKQEAgLTExNTUsMTYgKzExNTYsMTYgQEAgc3RhdGljIHZvaWQgV2Vi
S2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICBbZnJhbWVWaWV3
IHJlbGVhc2VdOwogCiAgICAgCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0g
ICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxm
KTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBwYWdlQ29u
ZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5l
dyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQg
PSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmVkaXRv
ckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNsaWVudHMuaW5z
cGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xp
ZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7
Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudChzZWxmKTsKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VD
bGllbnRzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRp
dG9yQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9
IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBh
Z2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQoc2VsZik7CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ29u
ZmlndXJhdGlvbik7CiAgICAgCiAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
OllFU107CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzhhNjFkZTUwNDlhNzE2ZGQ5NDBjMzgzODI0ODkxZmFlMDlhOThl
MC4uNjFmN2EzZGRiNDhhNjJkZTYzZTViODQ3OTA4ODYzMjUyZjdlYzFmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU4Myw2
ICsxNTgzLDggQEAKIAkJQzVGQTFFRDQxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRl
UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovOyB9
OwogCQlDRDAwM0E1MjE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAw
M0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi87
IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAw
M0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovOyB9
OworCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qx
OUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAq
LzsgfTsKKwkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAq
LzsgfTsKIAkJQ0Q1QzY2QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1QzY2OUUxMzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuY3BwICovOyB9OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIElu
amVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q2N0QzMEUxNUMw
OEY5QTAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjdE
MzA4MTVDMDdCRTAwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHAgKi87IH07CkBAIC0zNjg3LDYgKzM2ODksOCBAQAogCQlDNUZBMUVEMjE4RTEw
NjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbTsgcGF0aCA9IGlv
cy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0QwMDNBNTAxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5jcHA7IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MTE5RDQ5QjVE
MDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRp
YUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
OUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJB
OCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0
RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjdEMzA4MTVDMDdCRTAwMDg0M0FE
RiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzQz
LDYgKzU3NDcsOCBAQAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuaCAqLywKIAkJCQlDRURCQTg0NTE5RkRBMDBBMDA2ODY2QTUgLyogV2ViU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmNwcCAqLywKIAkJCQlDRURCQTg0NjE5RkRBMDBBMDA2ODY2QTUgLyog
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi8sCisJCQkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2
NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLywKKwkJCQlDRDE5QTI2QTFB
MTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gV2ViQ29yZVN1cHBvcnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtNzUwOCw2ICs3NTE0LDcgQEAKIAkJCQkxQTY1MDlDRTE4QjQxNDYyMDA2MTQzMzIgLyogV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODcxQjVDMTI3Q0I4OUQw
MEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOTAx
QTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZUVuY29kZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNv
bnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NUU3NDlFQzE4MERCQjk4MDAw
ODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg4OTgsNiArODkwNSw3IEBACiAJCQkJMUExRTA5MzMxODg2MUQz
ODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTkwQzFGNTEyNjRGRDcxMDAzRTQ0RDQgLyogRmluZENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE5MTAwNzIxMjY2NzVDNDAwMTg0MkY1IC8qIFRleHRJbmRpY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTgxRDhDMTMx
OUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUE0
OTE4MjA4Q0Q2MDAzMTAwN0EgLyogV0tOU1N0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
QUYwOEI3MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggNDE1NGQwM2Vl
YjZkOGVhYWRiNzlhZjM3Y2E3NjVhNWE2MWYzNGU4MC4uYWI1YWNmYjUwMTc0OTdhY2VjMDM1YjA2
MTU4MDFmZDQ4ZDkwMTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMjgsNyArMjgsMTcgQEAKIAog
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KIAorZW51bSB7CisgICAga1dLRGlhZ25vc3RpY0xv
Z2dpbmdSZXN1bHRQYXNzID0gMCwKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwg
PSAxLAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0Tm9vcCA9IDIsCit9OwordHlwZWRl
ZiB1aW50MzJfdCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZTsKKwogdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0
cmluZ1JlZiBzdWNjZXNzLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNM
b2dnaW5nUmVzdWx0VHlwZSByZXN1bHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVm
IGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiB2YWx1ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFz
ZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtNDIsMTMgKzUyLDMwIEBAIHR5cGVkZWYg
c3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjAgewogICAgIFdLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CiB9IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50VjA7CiAKLWVudW0geyBrV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJz
aW9uIG51bWJlciBpbnN0ZWFkIikgPSAwIH07Cit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxIHsKKyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAv
LyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0
ZWQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01l
c3NhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVz
c2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAg
ICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOworfSBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxOworCitlbnVtIHsga1dLQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2Ug
YW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMSB9OwogdHlwZWRlZiBzdHJ1
Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAKICAgICAvLyBWZXJzaW9uIDAu
Ci0gICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Z0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZDsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBX
S0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdENhbGxiYWNrICAgICAgICAgICAgICAgICAgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0OworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWU7CiB9IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IFdLX0RF
UFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uZWQgc3RydWN0IGluc3RlYWQiKTsKIAog
I2VuZGlmIC8vIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAKaW5kZXggMTc2Y2E2Njc3ZjQ2MTg0NDlkMjU3ZmYyNzJmYjdlNTBmYTc3MTA2NS4u
OWFiODZmOTMzYTAyZGYxZjdjOGMzMTcyYWZiNTNiYjU1MWM0Y2YwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAKQEAgLTMxLDExICszMSwzMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01l
c3NhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpCit2b2lkIEluamVjdGVkQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0
ZWQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpCit7CisgICAgaWYgKCFtX2NsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Ns
aWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQodG9BUEkocGFnZSksIHRvQVBJKG1l
c3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgdG9BUEkoc3VjY2Vzcy5p
bXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQ
YWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZSkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKHRvQVBJKHBhZ2UpLCB0
b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHN1
Y2Nlc3MuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0
b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQor
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0
VHlwZSByZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEko
ZGVzY3JpcHRpb24uaW1wbCgpKSwgcmVzdWx0LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7
CisgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRv
QVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwo
KSksIHRvQVBJKHZhbHVlLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaAppbmRleCBkZGY4MzgwMzlhYjY4Y2QwMDQ3NmI0MWZkMmE3OGYyOWYw
ZTdmYTVkLi5iYjZlYWVmNWUwYjg5ZWM2NGNkNmIyYWQyN2JjNGViMzUyOGU3MjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBBUEkgewogdGVtcGxhdGU8
PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudFYwPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMCwgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRWMT4gVmVyc2lvbnM7CiB9OwogfQogCkBAIC00NSw3ICs0NSwxMCBAQCBjbGFzcyBX
ZWJQYWdlOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dEJhc2U+IHsKIHB1YmxpYzoKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgc3VjY2Vzcyk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0
ZWQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24pOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdLRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMmE0M2VkZTcwZTQyODYzMGQxNDRk
ZGE5Y2YwZTUyYWVkMDZmYzQ5Mi4uNDZkZGU4Yzg5YTFjMDIxNzgzZjI4Y2FlYzVlMzkyMTRmNjBi
OTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTg5LDE0ICs5ODksNiBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBj
b3VudCkKICAgICBtX3BhZ2UtPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1
Y2Nlc3MpCi17Ci0gICAgaWYgKCFtX3BhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25v
c3RpY0xvZ2dpbmdFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS0+aW5q
ZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdl
KG1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN1Y2Nlc3MpOwotfQotCiBTdHJpbmcgV2Vi
Q2hyb21lQ2xpZW50OjpwbHVnSW5TdGFydExhYmVsVGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCku
cGx1Z0luU3RhcnRMYWJlbFRpdGxlKG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IGE2NmM0ZWY5OWQ1Zjc4MWFlYjk2MmM0MzFmYzY3YzIzY2MxMGEwZmUuLmMzYzc3YTFjYmVlZTYw
MGY2ODQzODNhYmJhYzM3NGIyZTRjN2U2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjg2
LDggKzI4Niw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKSBvdmVycmlkZTsKLQogICAgIHZp
cnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxUaXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5TdGFydExhYmVsU3Vi
dGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlN2M5Yjkz
ODFlN2ZmNzI5YjcxOTFjNDQzNzI2NDM5ZTAxY2FiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisKKyNpbmNsdWRlICJX
ZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6On5XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpCit7Cit9
CisKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAg
ICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKCZtX3BhZ2UsIG1lc3Nh
Z2UsIGRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6
OkxvZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNl
dHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBy
ZXN1bHQpOworfQorCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3BhZ2UuY29y
ZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNj
cmlwdGlvbiwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWIxMDE2MmFmZjIzYzdi
NGE0ZmJmMDVhMDk1ZjE1NmY3MTIzMjNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50X2gKKyNkZWZpbmUgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVk
ZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCB7CitwdWJsaWM6CisgICAgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV2Vi
UGFnZSYpOworICAgIHZpcnR1YWwgfldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIExvZ1Jlc3VsdFR5cGUpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
dmFsdWUpIG92ZXJyaWRlOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA3ZTgwNTUwZTE2ZDYzNWQ4ZDQ1N2Q4ZmQxZTYwYTZjNDdlZGRjY2FiLi4zNjAxNmQ5MzBkMjg3
NWUyOGQ1MzI5Y2M3NzNlYzEyNDdmYzExNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiV2Vi
Q29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgpAQCAtMTMw
LDYgKzEzMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01vdXNlRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVGhy
b3R0bGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CkBAIC0zMzcsMzEgKzMzOSwzMiBAQCBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICBTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBh
Z2VDbGllbnRzOwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVD
bGllbnQodGhpcyk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb247Cisg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0
aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0
TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29u
ZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0
aGlzKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0
b3JDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50ID0gbmV3
IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBh
Z2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjZW5k
aWYKLSAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlz
dFByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRD
bGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xp
ZW50KHRoaXMpOwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9y
Q2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVj
dG9yQ2xpZW50OwogI2VuZGlmCiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQotICAgIHBh
Z2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRD
bGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50
ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VD
bGllbnRzLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVnSW5DbGllbnQodGhpcyk7Ci0gICAgcGFn
ZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQoKnRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNs
aWVudCA9IG5ldyBXZWJQbHVnSW5DbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAg
IHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQoKnRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50ID0gbmV3IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCp0aGlzKTsKIAot
ICAgIHBhZ2VDbGllbnRzLnVzZXJDb250ZW50Q29udHJvbGxlciA9IG1fdXNlckNvbnRlbnRDb250
cm9sbGVyID8gJm1fdXNlckNvbnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIo
KSA6IG51bGxwdHI7Ci0gICAgcGFnZUNsaWVudHMudmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0ZWRM
aW5rVGFibGVDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFi
bGVJRCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyID0gbV91
c2VyQ29udGVudENvbnRyb2xsZXIgPyAmbV91c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250
ZW50Q29udHJvbGxlcigpIDogbnVsbHB0cjsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVk
TGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFt
ZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKIAotICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlx
dWU8UGFnZT4ocGFnZUNsaWVudHMpOworICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFn
ZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogCiAgICAgbV9kcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVh
OjpjcmVhdGUoKnRoaXMsIHBhcmFtZXRlcnMpOwogICAgIG1fZHJhd2luZ0FyZWEtPnNldFBhaW50
aW5nRW5hYmxlZChmYWxzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241619</attachid>
            <date>2014-11-14 13:26:57 -0800</date>
            <delta_ts>2014-11-14 14:18:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141114132705.patch</filename>
            <type>text/plain</type>
            <size>74277</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2ZTZjZTIzODg5Y2Nj
NjYzYmE0OWM3NDg1YjcxYzk0NTFmZWU4Zi4uY2NlNGJhMzQ3NDczZTAwMjQ3ZDVjY2E3OWEyNDBk
MTZmNTdhYmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IFVzZSBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhp
c0ZyYW1lKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oOiAKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6fkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogRW1wdHkgZGVzdHJ1Y3Rvci4K
KworICAgICAgICBSZW5hbWUgUGFnZTo6UGFnZUNsaWVudCB0byBQYWdlQ29uZmlndXJhdGlvbiwg
YW5kIHBhc3MgdGhhdCBjb25maWd1cmF0aW9uIGZyb20KKyAgICAgICAgUGFnZSBpbnRvIE1haW5G
cmFtZSB1cG9uIGNvbnN0cnVjdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQ
YWdlKTogVXNlIFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsV2l0
aEVtcHR5Q2xpZW50cyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJh
bWU6Ok1haW5GcmFtZSk6IFBhc3MgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lIHRocm91Z2ggdG8g
dGhlCisgICAgICAgICAgICBGcmFtZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5GcmFtZTo6Y3JlYXRlKTogVGFrZXMgYSBQYWdlQ29uZmlndXJhdGlvbi4KKyAgICAgICAgKiBw
YWdlL01haW5GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6IFNpbXBsZSBhY2Nlc3Nvci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6UGFnZUNsaWVudHM6On5QYWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKTog
UmVuYW1lZCBmcm9tIFBhZ2VDbGllbnRzKCkuCisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tIH5QYWdlQ2xpZW50cygp
LgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDogQWRkZWQuCisgICAgICAgICog
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpk
YXRhQ2hhbmdlZCk6IFVzZSBQYWdlQ29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIFBhZ2VDbGllbnRz
LgorCisKIDIwMTQtMTEtMTEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFRhYmxlIHJvd3MgcmVwYWludCBlbnRpcmUgdGFibGUgd2hlbiB0aGVpciBiYWNrZ3JvdW5k
IGNvbG9yIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZTE0YTY3M2I2YmU1NDA2NjgyMGE5
YjAxOWEzNmIxMzAwZTFhOGY4MS4uOWVhOTBkMGNiODc3ZTQxOTllNWQyMjg3ZWMyMmVhYWJiOWEy
ZmVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTExLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYWdlOjpQYWdlQ2xpZW50cyBoYXMgYmVlbiByZW5h
bWVkIFBhZ2VDb25maWd1cmF0aW9uLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3Jv
dXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRo
U3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDE0LTExLTE0ICBCZXRo
IERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBXSzE6IFdlYnBhZ2UgcHJldmll
dyBjYW4gY29tZSB1cCBpbiB3cm9uZyBsb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE0NjcxMTQ1ZWU4
YTY0ZTQyZjlhMjcxNzY4NmI5NmFlZDQ3MjMzYzguLjQzNGI4NGRlNGIxZDI4OTYyN2ZkNmY2NDg3
YjhkNDlkZDIxNGE3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNC0xMS0xMyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG11bHRp
cGxlIHNpZ25hdHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIHRoZSBleGlzdGluZyBXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBpbnRlcmZhY2UgYnkgZGVwcmVjYXRpbmcKKyAg
ICAgICAgdGhlIG9yaWdpbmFsIGxvZ0RpYWdub3N0aWNNZXNzYWdlIGNsaWVudCBtZXRob2QgaW4g
VjEgYW5kIGFkZGluZyB0aHJlZSBuZXcsCisgICAgICAgIGV4cGxpY2l0IGNsaWVudCBtZXRob2Rz
LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlRGVwcmVjYXRlZCk6CisgICAgICAgICAgICBSZW5hbWVkIGZyb20gbG9nRGlh
Z25vc3RpY01lc3NhZ2UoKS4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTogUGFzcyB0byB0aGUg
Y2xpZW50LgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpOiBTaW1w
bGUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Ojp+V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpOiBTaW1wbGUgZGVzdHJ1Y3Rvci4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKTogUGFzcyB0byB0aGUgaW5qZWN0ZWQgYnVuZGxlLgorICAgICAgICAoV2ViS2l0OjpX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5pdGlhbGl6ZSB0aGUgbmV3IGNsaWVudC4KKwogMjAxNC0x
MS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXVtX
SzJdIFNpbXBsaWZ5IHRoZSBNZWRpYUtleXMgb3JpZ2luIGRlbGV0aW9uIGNvZGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IDFkMzk0NGM4Y2ViMWYzODVjYTkzODg2MzM1ODZjYTk2MTAwYTYxMjgu
LmVhMTlkYmE3ODc0MzgxNTUwMzRiMzkyM2NjOTk1Y2NhNTE1MWViYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCkBAIC0xMTMzLDggKzExMzMsNiBAQCBfX1pON1dlYkNvcmU0Tm9kZTE4c3RhcnRJZ25v
cmluZ0xlYWtzRXYKIF9fWk43V2ViQ29yZTROb2RlMTlzZXROZWVkc1N0eWxlUmVjYWxjRU5TXzE1
U3R5bGVDaGFuZ2VUeXBlRQogX19aTjdXZWJDb3JlNE5vZGU2cmVtb3ZlRVJpCiBfX1pON1dlYkNv
cmU0UGFnZTEwZmluZFN0cmluZ0VSS04zV1RGNlN0cmluZ0VoCi1fX1pON1dlYkNvcmU0UGFnZTEx
UGFnZUNsaWVudHNDMUV2Ci1fX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pO
N1dlYkNvcmU0UGFnZTEyc2V0R3JvdXBOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
NFBhZ2UxMnNldElzVmlzaWJsZUViCiBfX1pON1dlYkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5T
XzlTZXNzaW9uSURFCkBAIC0xMTgxLDcgKzExNzksNyBAQCBfX1pON1dlYkNvcmU0UGFnZTM3c2V0
SW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUViCiBfX1pON1dlYkNvcmU0UGFnZThn
b1RvSXRlbUVQTlNfMTFIaXN0b3J5SXRlbUVOU18xM0ZyYW1lTG9hZFR5cGVFCiBfX1pON1dlYkNv
cmU0UGFnZThzZXRNdXRlZEViCiBfX1pON1dlYkNvcmU0UGFnZTlpbml0R3JvdXBFdgotX19aTjdX
ZWJDb3JlNFBhZ2VDMUVSTlMwXzExUGFnZUNsaWVudHNFCitfX1pON1dlYkNvcmU0UGFnZUMxRVJO
U18xN1BhZ2VDb25maWd1cmF0aW9uRQogX19aTjdXZWJDb3JlNFBhZ2VEMUV2CiBfX1pON1dlYkNv
cmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU18xNkZsb2F0Um91bmRlZFJlY3RFTlMwXzE5Um91
bmRlZFJlY3RTdHJhdGVneUUKIF9fWk43V2ViQ29yZTRQYXRoMTRhZGRSb3VuZGVkUmVjdEVSS05T
XzlGbG9hdFJlY3RFUktOU185RmxvYXRTaXplRU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRlZ3lFCkBA
IC0yMzA4LDYgKzIzMDYsOCBAQCBfX1pON1dlYkNvcmUxNkpTWE1MSHR0cFJlcXVlc3Q5dG9XcmFw
cGVkRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0Nv
bG9yCiBfX1pON1dlYkNvcmUxNmRlbGV0ZUFsbENvb2tpZXNFUktOU18yMU5ldHdvcmtTdG9yYWdl
U2Vzc2lvbkUKIF9fWk43V2ViQ29yZTE2ZW5jbG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CitfX1pO
N1dlYkNvcmUxN1BhZ2VDb25maWd1cmF0aW9uQzFFdgorX19aTjdXZWJDb3JlMTdQYWdlQ29uZmln
dXJhdGlvbkQxRXYKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyM3NldFVwT3Zlcmhh
bmdBcmVhU2hhZG93RVA3Q0FMYXllcgogX19aTjdXZWJDb3JlMTdTY3JvbGxiYXJUaGVtZU1hYzI0
cmVtb3ZlT3ZlcmhhbmdBcmVhU2hhZG93RVA3Q0FMYXllcgogX19aTjdXZWJDb3JlMTdTY3JvbGxi
YXJUaGVtZU1hYzI3c2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kRVA3Q0FMYXllclJLTlNfNUNv
bG9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGM5MzA4YmY5MzM3NmJiMzJjNDYyZDBiMzQ0NDJhODY2MGJkMDY0YzkuLjRkMTNm
NTcxOGU1MzFjMTcwMDRlMWVkM2RjYjRkYmFhMmFiMmJkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1ODUsNiArNTU4NSw3
IEBACiAJCUNEMEVFRTBFMTQ3NDNGMzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMEVFRTBC
MTQ3NDNFMzUwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCAqLzsgfTsKIAkJQ0Qx
MjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3
OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RF
RTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4
NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0QxQjRBNjUxNjA3ODZBRTAwMjgyREY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBOThEQzIx
NjAxNEVFRTAwRkVBM0IxIC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwICovOyB9OwogCQlDRDFF
NzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4
RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2
RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC01NjIxLDYgKzU2MjIsOCBAQAog
CQlDRDU0REU0QjE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTRERTQ5MTc0NjlDNkQw
MDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovOyB9OwogCQlDRDU1OTY5MTE0NzVCNjc4
MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTU5NjhGMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuY3BwICovOyB9OwogCQlDRDU1OTY5MjE0NzVCNjc4MDAxRDBCRDAgLyog
QXVkaW9GaWxlUmVhZGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDU1OTY5MDE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9T
LmggKi87IH07CisJCUNENUU1QjVGMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1RTVC
NUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0Q1RTVCNjExQTE1RjE1NjAwMEM2
MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmln
dXJhdGlvbi5jcHAgKi87IH07CiAJCUNENjBDMEM2MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRp
bWVRVEtpdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENjBDMEM0MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5tbSAqLzsgfTsKIAkJ
Q0Q2MEMwQzcxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNTE5M0U4N0M3MDAzQzY1
NkIgLyogTWVkaWFUaW1lUVRLaXQuaCAqLzsgfTsKIAkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVC
IC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTExNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNl
UmVnaXN0cnkuY3BwICovOyB9OwpAQCAtMTMwMTQsNiArMTMwMTcsNyBAQAogCQlDRDBFRUUwQjE0
NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcDsgcGF0aCA9IGlv
cy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAv
KiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxRTczNDYxNjdC
Qzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1l
ZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFD
b250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDYwLDYgKzEz
MDY0LDggQEAKIAkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY4RjE0NzVCNjc4MDAxRDBC
RDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEF1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHBhdGggPSBpb3MvQXVkaW9GaWxlUmVh
ZGVySU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OTAxNDc1QjY3
ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1MuaDsgcGF0aCA9IGlvcy9BdWRpb0ZpbGVSZWFk
ZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1RTVCNUUxQTE1Q0U1NDAw
MEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhZ2VDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29uZmlndXJhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjBDMEM0MTkzRTg3QzcwMDNDNjU2QiAvKiBN
ZWRpYVRpbWVRVEtpdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE1lZGlhVGltZVFUS2l0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBD
NTE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lUVRLaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjA4LDYgKzE2NjE0LDggQEAKIAkJCQk2NUEy
MTQ2NzA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oICovLAogCQkJCUNEMDgyODVBMTc1NzI1MDgw
MEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbi5jcHAgKi8sCiAJCQkJQ0QwODI4
NUIxNzU3MjUwODAwRUM1RkI3IC8qIFBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmggKi8sCisJ
CQkJQ0Q1RTVCNjAxQTE1RjE1NjAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmNwcCAqLywK
KwkJCQlDRDVFNUI1RTFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCAqLywK
IAkJCQlEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGllbnQuY3BwICov
LAogCQkJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZUNsaWVudC5oICov
LAogCQkJCUE1QTJBRjA5MTgyOTczNDMwMERFMTcyOSAvKiBQYWdlRGVidWdnYWJsZS5jcHAgKi8s
CkBAIC0xNjcwNiw2ICsxNjcxNCw3IEBACiAJCQkJRTEyNzFBMTMwRUVFQzgwNDAwRjYxMjEzIC8q
IFdvcmtlck5hdmlnYXRvci5jcHAgKi8sCiAJCQkJRTEyNzFBMEEwRUVFQzc3QTAwRjYxMjEzIC8q
IFdvcmtlck5hdmlnYXRvci5oICovLAogCQkJCUUxMjcxQTUxMEVFRUNEMUMwMEY2MTIxMyAvKiBX
b3JrZXJOYXZpZ2F0b3IuaWRsICovLAorCQkJCUNEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBwYWdlOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzODQ0LDYgKzIzODUzLDcgQEAKIAkJCQk4NThD
MzgyQzBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1OTA5RDI5MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMkRFMTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxOUEyNjgxQTEzRTcwMDAwOEQ2
NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0
OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTAzMkRFMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RTcxMTkyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlz
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MzkwLDYgKzI0NDAwLDcgQEAKIAkJCQlG
RDMxNjA5RjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkQzMTYwQTExMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDOTdFMjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0Q1RTVCNUYxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjdBQjBBMTU2OTc4MDAwQTQyMzQgLyog
SFRNTEFuY2hvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFENDVEMEExMjdDQkMw
MEIxMkE2OCAvKiBIVE1MQXBwbGV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdE
MkUwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxBcmVhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNzU4OCw2ICsyNzU5OSw3IEBACiAJCQkJNTJCNkM5QzIxNUUzRjRERjAwNjkwQjA1IC8qIERP
TU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUxOERENzkwQTlD
RjMxQjAwOTFCN0E2IC8qIERPTU5hbWVkTm9kZU1hcC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
M0JGNERDMEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q1RTVCNjExQTE1RjE1NjAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1NTI2QzM4MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3Iu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUFDQUE4RTBBOUI3NTlDMDA2NzFFOTAgLyogRE9NTm9k
ZUxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUNBOTZFQjBBOTYyNEU5MDA2OTBDQ0YgLyog
RE9NTm90YXRpb24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGQ0N2Q2NGFmODYyMzFjOTkxOTIxYWYyOWJjZDU0YmMzODZiNjU3
NTUuLjhlMDI4MzJmODc3YmI4N2FlZDBhZGM1MWZjN2YyYTlhNjQ2Mzc5YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAj
aW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJEaXNwbGF5
U2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0xODI1LDIw
ICsxODI2LDIyIEBAIHN0YXRpYyB2b2lkIGxvZ01lZGlhTG9hZFJlcXVlc3QoUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBtZWRpYUVuZ2luZSwgY29uc3QgU3RyCiAgICAgaWYgKCFwYWdlIHx8ICFw
YWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBDaHJvbWVDbGllbnQmIGNocm9tZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAg
aWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFzdWNjZWVkZWQpIHsKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkaW5nRmFpbGVkS2V5KCksIGVycm9yTWVz
c2FnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpmYWlsS2V5KCkpOworICAgICAgICBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkaW5nRmFpbGVkS2V5KCksIGVycm9yTWVzc2FnZSwgRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OkZhaWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bWVkaWFMb2FkZWRLZXkoKSwgbWVkaWFFbmdpbmUsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bm9vcEtleSgpKTsKKyAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01l
c3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRlZEtleSgpLCBtZWRpYUVuZ2lu
ZSk7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5BbnlNZWRpYUVuZ2luZSgpKQotICAgICAgICBj
aHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
YWdlQ29udGFpbnNBdExlYXN0T25lTWVkaWFFbmdpbmVLZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdl
Q29udGFpbnNBdExlYXN0T25lTWVkaWFFbmdpbmVLZXkoKSwgZW1wdHlTdHJpbmcoKSk7CiAKICAg
ICBpZiAoIXBhZ2UtPmhhc1NlZW5NZWRpYUVuZ2luZShtZWRpYUVuZ2luZSkpCi0gICAgICAgIGNo
cm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBh
Z2VDb250YWluc01lZGlhRW5naW5lS2V5KCksIG1lZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6Om5vb3BLZXkoKSk7CisgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dE
aWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc01lZGlh
RW5naW5lS2V5KCksIG1lZGlhRW5naW5lKTsKIAogICAgIHBhZ2UtPnNhd01lZGlhRW5naW5lKG1l
ZGlhRW5naW5lKTsKIH0KQEAgLTU3NjYsOSArNTc2OSwxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBpZiAoIXBhZ2Ug
fHwgIXBhZ2UtPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7Cisg
ICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
U3RyaW5nIGVuZ2luZSA9IG1fcGxheWVyLT5lbmdpbmVEZXNjcmlwdGlvbigpOwotICAgIFN0cmlu
ZyBtZXNzYWdlID0gU3RyaW5nOjpudW1iZXIobV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkp
OwotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIGVuZ2luZSwgbWVzc2Fn
ZSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIGVu
Z2luZSwgU3RyaW5nOjpudW1iZXIobV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpKTsKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRl
ckZpcnN0VXNlckdlc3R1cmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCmluZGV4IDFlZDFlOTc0NzQ5YmEyZDlhM2IwNDI0ZTE0MGVhNTFmNjdlMmQ4
MmIuLmYwY2Q3NWZiZTRkMmNkYWE2MWIzMTZjMjdlZGY1MmM0NDBkODA4Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdv
blNoYXBlLmgiCiAjaW5jbHVkZSAiUmVjdGFuZ2xlU2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJC
b3hNb2RlbE9iamVjdC5oIgpAQCAtODA4LDkgKzgwOSw5IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJs
YXk6Om92ZXJsYXlQYWdlKCkKICAgICBpZiAobV9vdmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJu
IG1fb3ZlcmxheVBhZ2UuZ2V0KCk7CiAKLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50
czsKLSAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ2xpZW50cyk7Ci0gICAgbV9vdmVybGF5
UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMpOworICAgIFBhZ2VDb25m
aWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOworICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBh
Z2VDb25maWd1cmF0aW9uKTsKKyAgICBtX292ZXJsYXlQYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQ
YWdlPihwYWdlQ29uZmlndXJhdGlvbik7CiAKICAgICBTZXR0aW5ncyYgc2V0dGluZ3MgPSBtX3Bh
Z2Uuc2V0dGluZ3MoKTsKICAgICBTZXR0aW5ncyYgb3ZlcmxheVNldHRpbmdzID0gbV9vdmVybGF5
UGFnZS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5k
ZXggOGU3NTQ5NzZmMDJkMzRmYjI3OTlmNjcwY2VkNmJjZTU0NjJjZDA1ZC4uNzY5ZTAyNDBmNmIx
MzliMGI5ZDM1MThiYjE2NDM5NmM5ZTdjODRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCkBAIC00MywzMiArNDQs
MzUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRz
KFBhZ2U6OlBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKK3ZvaWQgZmlsbFdpdGhFbXB0eUNsaWVu
dHMoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogewogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVDbGllbnQ7Ci0gICAg
cGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gJmR1bW15Q2hyb21lQ2xpZW50LmdldCgpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9ICZkdW1teUNocm9tZUNsaWVudC5nZXQo
KTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxFbXB0eUNvbnRleHRNZW51Q2xpZW50PiBkdW1teUNvbnRleHRNZW51Q2xpZW50OwotICAgIHBh
Z2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0
KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSAmZHVtbXlDb250
ZXh0TWVudUNsaWVudC5nZXQoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlEcmFnQ2xpZW50PiBkdW1teURyYWdDbGll
bnQ7Ci0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9ICZkdW1teURyYWdDbGllbnQuZ2V0KCk7
CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9ICZkdW1teURyYWdDbGllbnQuZ2V0
KCk7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUVkaXRvckNsaWVu
dD4gZHVtbXlFZGl0b3JDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gJmR1
bW15RWRpdG9yQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVu
dCA9ICZkdW1teUVkaXRvckNsaWVudC5nZXQoKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxFbXB0eUluc3BlY3RvckNsaWVudD4gZHVtbXlJbnNwZWN0b3JDbGllbnQ7Ci0gICAgcGFnZUNs
aWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gJmR1bW15SW5zcGVjdG9yQ2xpZW50LmdldCgpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9ICZkdW1teUluc3BlY3RvckNsaWVu
dC5nZXQoKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50PiBkdW1teUZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSA9ICZkdW1teUZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOwotICAgIAorICAg
IHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9ICZkdW1teUZyYW1l
TG9hZGVyQ2xpZW50LmdldCgpOworCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PiBkdW1teVByb2dyZXNzVHJhY2tlckNsaWVudDsKLSAgICBwYWdl
Q2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSAmZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQuZ2V0KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0g
JmR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOworCisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IGR1bW15RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
PSAmZHVtbXlEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5nZXQoKTsKIH0KIAogY2xhc3MgRW1wdHlQ
b3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCBmMzIwYzU5OTdjZDNjOWUzMTUyZGFhMmNiNzFlODRjM2JhYTg2OTBkLi40NzRk
MTlhN2RkZWNhMWE3NTZjYTRiYTNiYjFjNzUwY2M0ZWM5NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
bGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgog
I2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCkBAIC02MzQsNyArNjM1LDEzIEBAIGNsYXNz
IEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IDogcHVibGljIFByb2dyZXNzVHJhY2tlckNsaWVu
dCB7CiAgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzRmluaXNoZWQoRnJhbWUmKSBvdmVycmlkZSB7
IH0KIH07CiAKLXZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZTo6UGFnZUNsaWVudHMmKTsK
K2NsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBwdWJsaWMgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQgeworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIExvZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KK307CisKK3ZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMo
UGFnZUNvbmZpZ3VyYXRpb24mKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCA1MTk0MDhiNTdmNjI2MTMyYTlhZTMyYmQ1MDQ3NTk4ZDNjNWQzN2M4Li44NmQ3
Mzc0Yjg0MWMzNDg4YzhiYTc2MzE0ZmFmM2Y1ODZmNTBiZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJET01JbXBsZW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlTWFu
YWdlci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRUaW1pbmcuaCIKQEAgLTIyNjYsNyArMjI2NywxMSBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAo
IXBhZ2UgfHwgIXBhZ2UtPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VMb2Fk
ZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnBhc3NLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFpbEtleSgpKTsKKyAg
ICAgICAgICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgICAg
ICAgICBpZiAoIWRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VMb2FkZWRLZXkoKSwg
ZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpGYWlsKTsKIAogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApp
bmRleCA1YzM3Nzg5MWI2NDI2ZDViYjVlN2U5NDNmNDYxODg4ZjZiOWExMTJjLi4zYTI2MGQ3ZDQz
MjliOWM2OTgxMGEwNDU0MjBjZTZlMWRkY2IxNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRp
YWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKKyNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YS5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCkBAIC0xOTIsMTQgKzE5
NCwxNyBAQCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIFN0cmluZyBwbHVnaW5GaWxlID0g
cGFnZS0+cGx1Z2luRGF0YSgpLnBsdWdpbkZpbGVGb3JNaW1lVHlwZShuZXdNSU1FVHlwZSk7CiAg
ICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIXBsdWdpbkZpbGUgPyBuZXdNSU1FVHlwZSA6IHBsdWdp
bkZpbGU7CiAKLSAgICBDaHJvbWVDbGllbnQmIGNocm9tZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpOwotICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNz
ID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbiwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdpbkxvYWRlZEtleSgp
IDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkaW5nRmFpbGVkS2V5KCksIGRlc2Ny
aXB0aW9uKTsKIAogICAgIGlmICghcGFnZS0+aGFzU2VlbkFueVBsdWdpbigpKQotICAgICAgICBj
aHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
YWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKLSAgICAKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFn
ZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpLCBlbXB0eVN0cmluZygpKTsKKwogICAgIGlm
ICghcGFnZS0+aGFzU2VlblBsdWdpbihkZXNjcmlwdGlvbikpCi0gICAgICAgIGNocm9tZUNsaWVu
dC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWlu
c1BsdWdpbktleSgpLCBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5
KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkoKSwgZGVzY3Jp
cHRpb24pOwogCiAgICAgcGFnZS0+c2F3UGx1Z2luKGRlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDg3OGRlZTU4Mzg3MmExNTdiNzc3ZmQyODg2YTU3NGQ4
ZjczMDRmNDYuLjNiYmQ2YzBkNzQ4ZWNhMGVhOGIyMTc1ZDkzMmRjZTBmMmZmNTg0NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDE2LDggKzQxNiw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpIHsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdGF0dXMpIHsg
VU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURf
UEFSQU0oc3RhdHVzKTsgfQotCiAgICAgdmlydHVhbCBGbG9hdFNpemUgbWluaW11bVdpbmRvd1Np
emUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAwLCAxMDApOyB9OwogCiAgICAgdmlydHVh
bCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0MTM5MzQ1MTk5ZWJhNWQyODgxM2QyOTkyMzQ5NjVjNjAxMDAwMWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRf
aAorI2RlZmluZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorCisgICAgZW51
bSBMb2dSZXN1bHRUeXBlIHsKKyAgICAgICAgUGFzcywKKyAgICAgICAgRmFpbCwKKyAgICAgICAg
Tm9vcCwKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBM
b2dSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2Ny
aXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgdmFsdWUpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVz
Y3JpcHRpb24pOyBVTlVTRURfUEFSQU0odmFsdWUpOyB9CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0
dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgfQorfTsKKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAppbmRleCA3ODAzZjg4N2U3NzMyNWFjYjZhMmYyMDZlYTU5
MDhlNjU5NzRmOWQ4Li5jODBiOWMzNzFlZjZhZDVlMGY5NzljYjc0NzU3OWRkNDEyZWQ4NWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAKKyNpbmNsdWRlICJQYWdlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNjcm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFUcmFja2Vy
LmgiCkBAIC0zNiw4ICszNyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIE1h
aW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQp
Ci0gICAgOiBGcmFtZShwYWdlLCBudWxscHRyLCBjbGllbnQpCitpbmxpbmUgTWFpbkZyYW1lOjpN
YWluRnJhbWUoUGFnZSYgcGFnZSwgUGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisg
ICAgOiBGcmFtZShwYWdlLCBudWxscHRyLCAqY29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUpCiAgICAgLCBtX3NlbGZPbmx5UmVmQ291bnQoMCkKICNpZiBQTEFURk9STShNQUMp
CiAgICAgLCBtX2xhdGNoaW5nU3RhdGUoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxMYXRjaGluZ1N0
YXRlPigpKQpAQCAtNDcsNiArNDgsNyBAQCBpbmxpbmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFn
ZSYgcGFnZSwgRnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCkKICNlbmRpZgogICAgICwgbV9yZWNl
bnRXaGVlbEV2ZW50RGVsdGFUcmFja2VyKHN0ZDo6bWFrZV91bmlxdWU8V2hlZWxFdmVudERlbHRh
VHJhY2tlcj4oKSkKICAgICAsIG1fcGFnZU92ZXJsYXlDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlx
dWU8UGFnZU92ZXJsYXlDb250cm9sbGVyPigqdGhpcykpCisgICAgLCBtX2RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KGNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCiB7CiB9CiAK
QEAgLTU0LDkgKzU2LDkgQEAgTWFpbkZyYW1lOjp+TWFpbkZyYW1lKCkKIHsKIH0KIAotUmVmUHRy
PE1haW5GcmFtZT4gTWFpbkZyYW1lOjpjcmVhdGUoUGFnZSYgcGFnZSwgRnJhbWVMb2FkZXJDbGll
bnQmIGNsaWVudCkKK1JlZlB0cjxNYWluRnJhbWU+IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2UmIHBh
Z2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWFpbkZyYW1lKHBhZ2UsIGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWFpbkZyYW1lKHBhZ2UsIGNvbmZpZ3VyYXRpb24pKTsKIH0KIAogdm9pZCBNYWluRnJhbWU6
OnNlbGZPbmx5UmVmKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCmluZGV4IGJkNmNlNzkwM2NjY2U2
Yjc2OTAzYjYxZWRlNDY0YTNjMTc1ZDJiY2QuLmMxMDk5NDAyMGI3ZWE1NmVjNDc4Nzg3YzgzMzli
YmQ0NzgyODEyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaApAQCAtMzAsNiArMzAsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Owor
Y2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXI7CiBj
bGFzcyBTY3JvbGxMYXRjaGluZ1N0YXRlOwogY2xhc3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjsKQEAgLTM3LDcgKzM5LDcgQEAgY2xhc3MgV2hlZWxFdmVudERlbHRhVHJhY2tlcjsKIAogY2xh
c3MgTWFpbkZyYW1lIGZpbmFsIDogcHVibGljIEZyYW1lIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBhZ2UmLCBGcmFtZUxvYWRlckNsaWVudCYpOworICAg
IHN0YXRpYyBSZWZQdHI8TWFpbkZyYW1lPiBjcmVhdGUoUGFnZSYsIFBhZ2VDb25maWd1cmF0aW9u
Jik7CiAKICAgICB2aXJ0dWFsIH5NYWluRnJhbWUoKTsKIApAQCAtNTYsOCArNTgsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVzZXRMYXRjaGluZ1N0YXRlKCk7CiAjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQogCisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsgfQorCiBwcml2
YXRlOgotICAgIE1haW5GcmFtZShQYWdlJiwgRnJhbWVMb2FkZXJDbGllbnQmKTsKKyAgICBNYWlu
RnJhbWUoUGFnZSYsIFBhZ2VDb25maWd1cmF0aW9uJik7CiAKICAgICB2b2lkIGRyb3BDaGlsZHJl
bigpOwogCkBAIC03MSw2ICs3NSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2hlZWxFdmVudERlbHRhVHJhY2tlcj4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFUcmFj
a2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlT3ZlcmxheUNvbnRyb2xsZXI+IG1fcGFnZU92
ZXJsYXlDb250cm9sbGVyOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBtX2RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OwogfTsKIAogaW5saW5lIGJvb2wgRnJhbWU6OmlzTWFpbkZyYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGMxMWJiMDBmMWM5YmRlYjQ5YmUzODUwZjA2M2Yz
OWQ5YTEzYjFiNGUuLjI2MzYxNjgyYmMxMjk3NWNlMGM0OWQ4NTdhMTg1NjE2YmFmZWFmN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTdGF0
ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uaCIKICNp
bmNsdWRlICJQYWdlQ2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2FibGUuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTEyNCwzNCArMTI1LDM0IEBAIHN0YXRpYyB2b2lk
IG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSkKIAogc3RhdGljIGNvbnN0IFZpZXdT
dGF0ZTo6RmxhZ3MgUGFnZUluaXRpYWxWaWV3U3RhdGUgPSBWaWV3U3RhdGU6OklzVmlzaWJsZSB8
IFZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKIAotUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNs
aWVudHMpCi0gICAgOiBtX2Nocm9tZShzdGQ6Om1ha2VfdW5pcXVlPENocm9tZT4oKnRoaXMsICpw
YWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQorUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYg
cGFnZUNvbmZpZ3VyYXRpb24pCisgICAgOiBtX2Nocm9tZShzdGQ6Om1ha2VfdW5pcXVlPENocm9t
ZT4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQpKQogICAgICwgbV9kcmFn
Q2FyZXRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8RHJhZ0NhcmV0Q29udHJvbGxlcj4oKSkK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICwgbV9kcmFnQ29udHJvbGxlcihzdGQ6Om1h
a2VfdW5pcXVlPERyYWdDb250cm9sbGVyPigqdGhpcywgKnBhZ2VDbGllbnRzLmRyYWdDbGllbnQp
KQorICAgICwgbV9kcmFnQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERyYWdDb250cm9sbGVy
PigqdGhpcywgKnBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQpKQogI2VuZGlmCiAgICAgLCBt
X2ZvY3VzQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEZvY3VzQ29udHJvbGxlcj4oKnRoaXMs
IFBhZ2VJbml0aWFsVmlld1N0YXRlKSkKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICAs
IG1fY29udGV4dE1lbnVDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4dE1lbnVDb250
cm9sbGVyPigqdGhpcywgKnBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50KSkKKyAgICAsIG1f
Y29udGV4dE1lbnVDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4dE1lbnVDb250cm9s
bGVyPigqdGhpcywgKnBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50KSkKICNlbmRp
ZgogICAgICwgbV91c2VySW5wdXRCcmlkZ2Uoc3RkOjptYWtlX3VuaXF1ZTxVc2VySW5wdXRCcmlk
Z2U+KCp0aGlzKSkKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICAgICAsIG1fcmVwbGF5Q29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPFJlcGxheUNvbnRyb2xsZXI+KCp0aGlzKSkKICNlbmRpZgog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFnZUNsaWVudHMuaW5zcGVj
dG9yQ2xpZW50KSkKKyAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3RvckNvbnRyb2xsZXI+KCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JD
bGllbnQpKQogI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAsIG1fcG9pbnRl
ckxvY2tDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8UG9pbnRlckxvY2tDb250cm9sbGVyPigq
dGhpcykpCiAjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkK
LSAgICAsIG1fcHJvZ3Jlc3Moc3RkOjptYWtlX3VuaXF1ZTxQcm9ncmVzc1RyYWNrZXI+KCpwYWdl
Q2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQpKQotICAgICwgbV9iYWNrRm9yd2FyZENvbnRy
b2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRyb2xsZXI+KCp0aGlzLCBwYWdl
Q2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCkpCi0gICAgLCBtX21haW5GcmFtZShNYWluRnJhbWU6
OmNyZWF0ZSgqdGhpcywgKnBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCisg
ICAgLCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNv
bmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkKKyAgICAsIG1fYmFja0ZvcndhcmRD
b250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywg
cGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQpKQorICAgICwgbV9tYWluRnJhbWUo
TWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uKSkKICAgICAsIG1fdGhl
bWUoUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSh0aGlzKSkKLSAgICAsIG1fZWRpdG9yQ2xpZW50
KHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCkKLSAgICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDbGll
bnRzLnBsdWdJbkNsaWVudCkKLSAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQocGFnZUNs
aWVudHMudmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQpCisgICAgLCBtX2VkaXRvckNsaWVudChwYWdl
Q29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQpCisgICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ29u
ZmlndXJhdGlvbi5wbHVnSW5DbGllbnQpCisgICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
KHBhZ2VDb25maWd1cmF0aW9uLnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KQogICAgICwgbV9zdWJm
cmFtZUNvdW50KDApCiAgICAgLCBtX29wZW5lZEJ5RE9NKGZhbHNlKQogICAgICwgbV90YWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSkKQEAgLTE5Miw3ICsxOTMsNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzUGFp
bnRpbmcoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VD
bGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKKyAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50KHBhZ2VDb25maWd1cmF0aW9uLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2Ny
aXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9wYWdlVGhyb3R0bGVyKCp0
aGlzLCBtX3ZpZXdTdGF0ZSkKICAgICAsIG1fY29uc29sZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PFBhZ2VDb25zb2xlQ2xpZW50PigqdGhpcykpCkBAIC0yMDEsOCArMjAyLDggQEAgUGFnZTo6UGFn
ZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxO
YXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50
ZXJuYWxzIGZvciBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFu
ZGxpbmdCZWZvcmVVbmxvYWRFdmVudCgwKQotICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIo
V1RGOjptb3ZlKHBhZ2VDbGllbnRzLnVzZXJDb250ZW50Q29udHJvbGxlcikpCi0gICAgLCBtX3Zp
c2l0ZWRMaW5rU3RvcmUoV1RGOjptb3ZlKHBhZ2VDbGllbnRzLnZpc2l0ZWRMaW5rU3RvcmUpKQor
ICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIoV1RGOjptb3ZlKHBhZ2VDb25maWd1cmF0aW9u
LnVzZXJDb250ZW50Q29udHJvbGxlcikpCisgICAgLCBtX3Zpc2l0ZWRMaW5rU3RvcmUoV1RGOjpt
b3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQogICAgICwgbV9zZXNzaW9u
SUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgLCBtX2lzQ2xvc2luZyhmYWxz
ZSkKICAgICAsIG1faXNQbGF5aW5nQXVkaW8oZmFsc2UpCkBAIC0xNjU1LDI0ICsxNjU2LDQgQEAg
dm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgdmll
dy0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsK
IH0KIAotUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKLSAgICA6IGFsdGVybmF0aXZl
VGV4dENsaWVudChudWxscHRyKQotICAgICwgY2hyb21lQ2xpZW50KG51bGxwdHIpCi0jaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBjb250ZXh0TWVudUNsaWVudChudWxscHRyKQotI2Vu
ZGlmCi0gICAgLCBlZGl0b3JDbGllbnQobnVsbHB0cikKLSAgICAsIGRyYWdDbGllbnQobnVsbHB0
cikKLSAgICAsIGluc3BlY3RvckNsaWVudChudWxscHRyKQotICAgICwgcGx1Z0luQ2xpZW50KG51
bGxwdHIpCi0gICAgLCBwcm9ncmVzc1RyYWNrZXJDbGllbnQobnVsbHB0cikKLSAgICAsIHZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50KG51bGxwdHIpCi0gICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJh
bWUobnVsbHB0cikKLXsKLX0KLQotUGFnZTo6UGFnZUNsaWVudHM6On5QYWdlQ2xpZW50cygpCi17
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWY3ZjhhY2M0
MzQwN2MxNmNjNmIxYWRhNDNiMDljMTkyZjU4ZjhlMy4uN2Y0MjRiMzViNTU5ZTJjMjA0YjlmOTE1
YWJiMTAxYzdiMDg4MDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTgxLDYgKzgxLDcgQEAgY2xhc3Mg
SW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIE1haW5GcmFtZTsKIGNsYXNzIE1lZGlhQ2FuU3Rh
cnRMaXN0ZW5lcjsKIGNsYXNzIFBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuOworY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1
Z2dhYmxlOwogY2xhc3MgUGFnZUdyb3VwOwpAQCAtMTE5LDMzICsxMjAsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVy
R2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKEhpc3RvcnlJdGVtKik7CiAKLSAgICAv
LyBJdCBpcyB1cCB0byB0aGUgcGxhdGZvcm0gdG8gZW5zdXJlIHRoYXQgbm9uLW51bGwgY2xpZW50
cyBhcmUgcHJvdmlkZWQgd2hlcmUgcmVxdWlyZWQuCi0gICAgLy8gRklYTUU6IFJlbmFtZSB0aGlz
IHRvIFBhZ2VDb25maWd1cmF0aW9uIGFuZCBtb3ZlIGl0IHRvIGl0cyBvd24gY2xhc3MuCi0gICAg
c3RydWN0IFBhZ2VDbGllbnRzIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNs
aWVudHMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFdF
QkNPUkVfRVhQT1JUIFBhZ2VDbGllbnRzKCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdl
Q2xpZW50cygpOwotCi0gICAgICAgIEFsdGVybmF0aXZlVGV4dENsaWVudCogYWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50OwotICAgICAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudDsKLSNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKLSAgICAgICAgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51
Q2xpZW50OwotI2VuZGlmCi0gICAgICAgIEVkaXRvckNsaWVudCogZWRpdG9yQ2xpZW50OwotICAg
ICAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50OwotICAgICAgICBJbnNwZWN0b3JDbGllbnQqIGlu
c3BlY3RvckNsaWVudDsKLSAgICAgICAgUGx1Z0luQ2xpZW50KiBwbHVnSW5DbGllbnQ7Ci0gICAg
ICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwotICAgICAg
ICBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwotICAgICAgICBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudCogdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7Ci0gICAgICAg
IEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWU7Ci0KLSAgICAgICAg
UmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyOwotICAg
ICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKLSAgICB9Owot
Ci0gICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGFnZShQYWdlQ2xpZW50cyYpOworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB+UGFnZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgcmVuZGVy
VHJlZVNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDg5YTE4MmMzODU1ZDU5N2Q0NzUyOTM1YTU0ODdiM2IyNzg4M2QwMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKKworI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2xpZW50
LmgiCisjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVmlzaXRl
ZExpbmtTdG9yZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BhZ2VDb25maWd1cmF0aW9u
OjpQYWdlQ29uZmlndXJhdGlvbigpCisgICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0
cikKKyAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQorI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorICAgICwgY29udGV4dE1lbnVDbGllbnQobnVsbHB0cikKKyNlbmRpZgorICAgICwgZWRpdG9y
Q2xpZW50KG51bGxwdHIpCisgICAgLCBkcmFnQ2xpZW50KG51bGxwdHIpCisgICAgLCBpbnNwZWN0
b3JDbGllbnQobnVsbHB0cikKKyAgICAsIHBsdWdJbkNsaWVudChudWxscHRyKQorICAgICwgcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIpCisgICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dChudWxscHRyKQorICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCit7Cit9
CisKK1BhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNvbmZpZ3VyYXRpb24oKQoreworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA5YjcyM2Fl
NmNkNDY0ZjkyMDNiZTYzNTUxNDAxNzQ2MWYxZWM5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDc4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBQYWdlQ29uZmlndXJhdGlvbl9oCisjZGVmaW5lIFBhZ2VDb25maWd1cmF0
aW9uX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBbHRlcm5hdGl2ZVRleHRDbGll
bnQ7CitjbGFzcyBCYWNrRm9yd2FyZENsaWVudDsKK2NsYXNzIENocm9tZUNsaWVudDsKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKK2NsYXNzIENvbnRleHRNZW51Q2xpZW50OworI2VuZGlmCitj
bGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK2NsYXNzIERyYWdDbGllbnQ7CitjbGFzcyBF
ZGl0b3JDbGllbnQ7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKK2NsYXNzIEluc3BlY3RvckNs
aWVudDsKK2NsYXNzIFBsdWdJbkNsaWVudDsKK2NsYXNzIFByb2dyZXNzVHJhY2tlckNsaWVudDsK
K2NsYXNzIFVzZXJDb250ZW50Q29udHJvbGxlcjsKK2NsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50OworY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKKworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24g
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3Vy
YXRpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKKworICAg
IEFsdGVybmF0aXZlVGV4dENsaWVudCogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50OworICAgIENocm9t
ZUNsaWVudCogY2hyb21lQ2xpZW50OworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIENv
bnRleHRNZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudDsKKyNlbmRpZgorICAgIEVkaXRvckNs
aWVudCogZWRpdG9yQ2xpZW50OworICAgIERyYWdDbGllbnQqIGRyYWdDbGllbnQ7CisgICAgSW5z
cGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7CisgICAgUGx1Z0luQ2xpZW50KiBwbHVnSW5D
bGllbnQ7CisgICAgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KiBwcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CisgICAgUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVudDsKKyAgICBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudCogdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CisgICAgRnJh
bWVMb2FkZXJDbGllbnQqIGxvYWRlckNsaWVudEZvck1haW5GcmFtZTsKKyAgICBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CisKKyAgICBSZWZQdHI8VXNl
ckNvbnRlbnRDb250cm9sbGVyPiB1c2VyQ29udGVudENvbnRyb2xsZXI7CisgICAgUmVmUHRyPFZp
c2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggNWM4OGE3NGZkMmMxZmRi
YjA2NzA5ZDFmOGQ4OTkwMjI0ZDAyNmQ5NS4uNDliOTBiZTM3MTIyNTE0MGQ2ODY1M2MwOWQ2NjE4
NzI5MGQ5OTE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCkBAIC0zMzksMTAgKzM0MCwxMCBAQCBib29s
IFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICBpZiAoYWxsRGF0YVJlY2VpdmVkKSB7Ci0gICAgICAgIFBhZ2U6OlBh
Z2VDbGllbnRzIHBhZ2VDbGllbnRzOwotICAgICAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdl
Q2xpZW50cyk7CisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOwor
ICAgICAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgICAg
IG1fY2hyb21lQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdJbWFnZUNocm9tZUNsaWVudD4o
dGhpcyk7Ci0gICAgICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50
LmdldCgpOworICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBtX2Nocm9t
ZUNsaWVudC5nZXQoKTsKIAogICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBTVkcgZW5kcyB1cCBs
b2FkaW5nIGl0c2VsZiwgd2UgbWlnaHQgbGVhayB0aGUgd29ybGQuCiAgICAgICAgIC8vIFRoZSBD
YWNoZSBjb2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1hZ2VzIGhvbGRpbmcgRnJhbWVz
IGFuZApAQCAtMzUwLDcgKzM1MSw3IEBAIGJvb2wgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wg
YWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAvLyBUaGlzIHdpbGwgYmVjb21lIGFuIGlzc3VlIHdo
ZW4gU1ZHSW1hZ2Ugd2lsbCBiZSBhYmxlIHRvIGxvYWQgb3RoZXIKICAgICAgICAgLy8gU1ZHSW1h
Z2Ugb2JqZWN0cywgYnV0IHdlJ3JlIHNhZmUgbm93LCBiZWNhdXNlIFNWR0ltYWdlIGNhbiBvbmx5
IGJlCiAgICAgICAgIC8vIGxvYWRlZCBieSBhIHRvcC1sZXZlbCBkb2N1bWVudC4KLSAgICAgICAg
bV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ2xpZW50cyk7CisgICAgICAgIG1f
cGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogICAgICAg
ICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0TWVkaWFFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9w
YWdlLT5zZXR0aW5ncygpLnNldFNjcmlwdEVuYWJsZWQoZmFsc2UpOwogICAgICAgICBtX3BhZ2Ut
PnNldHRpbmdzKCkuc2V0UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDQ4NDg3MTE5NGE0ODRiZTE0NTFkZDkwZjhjZDI2YWViYmY5NDcx
ODkuLjFmODQ0OGNmZGYzZjY2NGYxMjI5NzE3NTVkZmViYzlkM2ZmNmEwZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE1NSw2ICsxNTUsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25m
aWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm9ncmVz
c1RyYWNrZXIuaD4KQEAgLTkxOCwyMyArOTE5LDIzIEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRp
YWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIGRpZE9uZVRpbWVJbml0
aWFsaXphdGlvbiA9IHRydWU7CiAgICAgfQogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNs
aWVudHM7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb247CiAjaWYgIVBM
QVRGT1JNKElPUykKLSAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21l
Q2xpZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdl
YkNvbnRleHRNZW51Q2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNs
aWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
Y29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQoc2VsZik7CiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdl
YkRyYWdDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5l
dyBXZWJEcmFnQ2xpZW50KHNlbGYpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9y
Q2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJh
dGlvbi5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwogI2Vs
c2UKLSAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9T
KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0
b3JDbGllbnQoc2VsZik7Ci0jZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBu
ZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4
dENsaWVudCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNs
aWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50
OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQoc2VsZik7Ci0gICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdl
Q2xpZW50cyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudElPUyhzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGll
bnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOworI2VuZGlmCisgICAgcGFnZUNvbmZp
Z3VyYXRpb24uZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKKyAgICBw
YWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZv
ck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKKyAgICBwYWdlQ29uZmlndXJh
dGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
KHNlbGYpOworICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNvbmZpZ3VyYXRpb24p
OwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBXZWJDb3JlOjpwcm92aWRlR2VvbG9jYXRp
b25UbyhfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHNlbGYpKTsKICNl
bmRpZgpAQCAtMTE1NSwxNiArMTE1NiwxNiBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXpl
R2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgIFtmcmFtZVZpZXcgcmVsZWFzZV07CiAK
ICAgICAKLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBwYWdlQ2xpZW50
cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOworICAgIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLSAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGll
bnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFn
Q2xpZW50KHNlbGYpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3
IFdlYkVkaXRvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQg
PSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNs
aWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xp
ZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
KHNlbGYpOwotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2Vs
Zik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3Bl
Y3RvckNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChz
ZWxmKTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDb25maWd1cmF0aW9uKTsK
ICAgICAKICAgICBbc2VsZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6WUVTXTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3OGE2MWRlNTA0OWE3MTZkZDk0MGMzODM4MjQ4OTFmYWUwOWE5OGUwLi42MWY3YTNkZGI0
OGE2MmRlNjNlNWI4NDc5MDg4NjMyNTJmN2VjMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTgzLDYgKzE1ODMsOCBAQAog
CQlDNUZBMUVENDE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUZBMUVEMjE4RTEw
NjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gKi87IH07CiAJCUNEMDAzQTUy
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUwMTlENDlCNUQw
MDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0QwMDNB
NTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUxMTlENDlCNUQw
MDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CisJCUNEMTlBMjZE
MUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2OTFBMTNFODIw
MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9OworCQlDRDE5
QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4
MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQlDRDVD
NjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVD
NjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNBREYg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2N0QzMDgxNUMwN0JFMDAw
ODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAq
LzsgfTsKQEAgLTM2ODcsNiArMzY4OSw4IEBACiAJCUM1RkExRUQyMThFMTA2MjIwMEIzRjQwMiAv
KiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFdLQWlyUGxheVJvdXRlUGlja2VyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLQWly
UGxheVJvdXRlUGlja2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1
MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDE5
QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDE5QTI2QTFBMTNFODIx
MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUxMzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVk
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3NDMsNiArNTc0Nyw4IEBA
CiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICov
LAogCQkJCUNFREJBODQ1MTlGREEwMEEwMDY4NjZBNSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuY3BwICovLAogCQkJCUNFREJBODQ2MTlGREEwMEEwMDY4NjZBNSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCAqLywKKwkJCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovLAorCQkJCUNEMTlBMjZBMUExM0U4MjEwMDhENjUw
RSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBX
ZWJDb3JlU3VwcG9ydDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03NTA4LDYgKzc1
MTQsNyBAQAogCQkJCTFBNjUwOUNFMThCNDE0NjIwMDYxNDMzMiAvKiBXS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdl
YkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI5MDFBMEEyREI4MDA3OEMw
NkEgLyogTmV0d29ya0NhY2hlRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxOUEyNkUx
QTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1RTc0OUVDMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjkz
NUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICov
LApAQCAtODg5OCw2ICs4OTA1LDcgQEAKIAkJCQkxQTFFMDkzMzE4ODYxRDM4MDBEMkRDNDkgLyog
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOTBDMUY1
MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTkxMDA3MjEyNjY3NUM0MDAxODQyRjUgLyogVGV4dEluZGljYXRvci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFODFEOEMxMzE5RjdFRjAwMjQxOTEw
IC8qIEZvbnRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEUxQTQ5MTgyMDhDRDYwMDMx
MDA3QSAvKiBXS05TU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA4QjcxOTI2OUU2
RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA0MTU0ZDAzZWViNmQ4ZWFhZGI3OWFm
MzdjYTc2NWE1YTYxZjM0ZTgwLi5hYjVhY2ZiNTAxNzQ5N2FjZWMwMzViMDYxNTgwMWZkNDhkOTAx
MGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0yOCw3ICsyOCwxNyBAQAogCiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQmFzZS5oPgogCitlbnVtIHsKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBh
c3MgPSAwLAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCA9IDEsCisgICAga1dL
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wID0gMiwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdL
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlOworCiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLU3RyaW5nUmVmIHN1Y2Nl
c3MsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
TG9nRGlhZ25vc3RpY01lc3NhZ2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVz
c2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRU
eXBlIHJlc3VsdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24s
IFdLU3RyaW5nUmVmIHZhbHVlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogdHlwZWRlZiBz
dHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlIHsKICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb247CkBAIC00MiwxMyArNTIsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMCB7CiAgICAgV0tCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFn
bm9zdGljTWVzc2FnZTsKIH0gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMDsK
IAotZW51bSB7IGtXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEN1cnJlbnRWZXJz
aW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGlu
c3RlYWQiKSA9IDAgfTsKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50VjEgeworICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFz
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4K
KyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZDsKKworICAgIC8v
IFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOworICAgIFdL
QnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0OworICAgIFdLQnVuZGxlUGFn
ZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7Cit9IFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50VjE7CisKK2VudW0geyBrV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2
ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAxIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAg
IGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKIAogICAgIC8vIFZlcnNpb24gMC4KLSAgICBXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOworICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01l
c3NhZ2VEZXByZWNhdGVkOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLQnVuZGxlUGFnZUxv
Z0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9n
RGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQ7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZTsK
IH0gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgV0tfREVQUkVDQVRFRCgiVXNl
IGFuIGV4cGxpY2l0IHZlcnNpb25lZCBzdHJ1Y3QgaW5zdGVhZCIpOwogCiAjZW5kaWYgLy8gV0tC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAppbmRl
eCAxNzZjYTY2NzdmNDYxODQ0OWQyNTdmZjI3MmZiN2U1MGZhNzcxMDY1Li45YWI4NmY5MzNhMDJk
ZjFmN2M4YzMxNzJhZmI1M2JiNTUxYzRjZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtMzEs
MTEgKzMxLDMyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEluamVjdGVkQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGNvbnN0IFN0cmluZyYgc3VjY2VzcykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZChXZWJQYWdlKiBw
YWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgc3VjY2VzcykKK3sKKyAgICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlRGVwcmVjYXRlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmxvZ0RpYWdu
b3N0aWNNZXNzYWdlRGVwcmVjYXRlZCh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkp
LCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSShzdWNjZXNzLmltcGwoKSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKIHsKICAgICBp
ZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKQogICAgICAgICByZXR1cm47Ci0gICAg
bV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2Uu
aW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgdG9BUEkoc3VjY2Vzcy5pbXBsKCkp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0
aW9uLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlIHJlc3VsdCkK
K3sKKyAgICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dCh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5p
bXBsKCkpLCByZXN1bHQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodG9BUEkocGFnZSksIHRv
QVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgdG9BUEkodmFs
dWUuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCmluZGV4IGRkZjgzODAzOWFiNjhjZDAwNDc2YjQxZmQyYTc4ZjI5ZjBlN2ZhNWQuLmJiNmVh
ZWY1ZTBiODllYzY0Y2Q2YjJhZDI3YmM0ZWIzNTI4ZTcyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAg
LTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlPiB7Ci0gICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjA+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudFYwLCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxPiBW
ZXJzaW9uczsKIH07CiB9CiAKQEAgLTQ1LDcgKzQ1LDEwIEBAIGNsYXNzIFdlYlBhZ2U7CiAKIGNs
YXNzIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4gewogcHVi
bGljOgotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSosIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNj
ZXNzKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZChXZWJQYWdlKiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBT
dHJpbmcmIHN1Y2Nlc3MpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7CisgICAg
dm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZSosIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2Vi
UGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCAyYTQzZWRlNzBlNDI4NjMwZDE0NGRkYTljZjBlNTJhZWQw
NmZjNDkyLi40NmRkZThjODlhMWMwMjE3ODNmMjhjYWVjNWUzOTIxNGY2MGI5NjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05ODksMTQgKzk4OSw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KQogICAgIG1f
cGFnZS0+bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChjb3VudCk7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2VzcykKLXsKLSAg
ICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0Vu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYWdlLCBtZXNz
YWdlLCBkZXNjcmlwdGlvbiwgc3VjY2Vzcyk7Ci19Ci0KIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6
OnBsdWdJblN0YXJ0TGFiZWxUaXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogewog
ICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5wbHVnSW5TdGFydExh
YmVsVGl0bGUobWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTY2YzRlZjk5ZDVm
NzgxYWViOTYyYzQzMWZjNjdjMjNjYzEwYTBmZS4uYzNjNzdhMWNiZWVlNjAwZjY4NDM4M2FiYmFj
Mzc0YjJlNGM3ZTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yODYsOCArMjg2LDYgQEAg
cHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpIG92ZXJyaWRlOwotCiAgICAgdmlydHVhbCBTdHJpbmcg
cGx1Z0luU3RhcnRMYWJlbFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxTdWJ0aXRsZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVn
SW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U3YzliOTM4MWU3ZmY3MjliNzE5
MWM0NDM3MjY0MzllMDFjYWI2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBA
IC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV2ViUGFn
ZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkKK3sKK30KKwordm9pZCBXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGlmICghbV9wYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRp
b24pOworfQorCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6TG9nUmVzdWx0VHlw
ZSByZXN1bHQpCit7CisgICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFn
bm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLmlu
amVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCk7Cit9CisK
K3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1
ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYjEwMTYyYWZmMjNjN2I0YTRmYmYwNWEwOTVm
MTU2ZjcxMjMyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2Rl
ZmluZSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXZWJQYWdlJik7CisgICAg
dmlydHVhbCB+V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJp
ZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYyYWE0OTcwOTBk
NWNkYTA3ZGI3NWMxMmMzMGM2OTgwZjA0MDEzYmMuLjEzNGYzNmIxMzBjNzA0ZmM5YWIwZjMzODk5
ZWUwNjQwMzY0MDhlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJEcmFnQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCkBAIC0xMzEsNiArMTMyLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VF
dmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUNvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VUaHJvdHRsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGx1Z2luRG9jdW1lbnQuaD4KQEAgLTMzOCwzMSArMzQwLDMyIEBAIFdlYlBhZ2U6OldlYlBh
Z2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogICAgIFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29y
eSh0cnVlKTsKICNlbmRpZgogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0g
ICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlzKTsK
KyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBwYWdlQ29uZmln
dXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQotICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0g
bmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNv
bnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOwogI2VuZGlm
Ci0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudCh0aGlz
KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xp
ZW50KHRoaXMpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJh
Z0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9u
LmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VD
bGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50ID0gV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0
ZSh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJh
Y2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBtX2luc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQodGhpcyk7Ci0g
ICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JDbGllbnQ7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JDbGllbnQ7CiAj
ZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCi0gICAgcGFnZUNsaWVudHMuYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCh0aGlzKTsK
KyAgICBwYWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50KHRoaXMpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMucGx1Z0lu
Q2xpZW50ID0gbmV3IFdlYlBsdWdJbkNsaWVudCh0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5sb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgcGFn
ZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudCgqdGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50ID0gbmV3IFdl
YlBsdWdJbkNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dCgqdGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
PSBuZXcgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKnRoaXMpOwogCi0gICAgcGFnZUNsaWVu
dHMudXNlckNvbnRlbnRDb250cm9sbGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXIgPyAmbV91
c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpIDogbnVsbHB0cjsK
LSAgICBwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNvbnRy
b2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKKyAgICBw
YWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBtX3VzZXJDb250ZW50Q29u
dHJvbGxlciA/ICZtX3VzZXJDb250ZW50Q29udHJvbGxlci0+dXNlckNvbnRlbnRDb250cm9sbGVy
KCkgOiBudWxscHRyOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSBW
aXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6Z2V0T3JDcmVhdGUocGFyYW1ldGVycy52aXNpdGVk
TGlua1RhYmxlSUQpOwogCi0gICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdl
Q2xpZW50cyk7CisgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ29uZmln
dXJhdGlvbik7CiAKICAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0FyZWE6OmNyZWF0ZSgqdGhp
cywgcGFyYW1ldGVycyk7CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0UGFpbnRpbmdFbmFibGVkKGZh
bHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241624</attachid>
            <date>2014-11-14 14:18:52 -0800</date>
            <delta_ts>2014-11-14 15:06:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141114141859.patch</filename>
            <type>text/plain</type>
            <size>45315</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2ZTZjZTIzODg5Y2Nj
NjYzYmE0OWM3NDg1YjcxYzk0NTFmZWU4Zi4uY2YyMDVkOTkxMDU1ZjAzOTBlZDZkZGE5YmIwNDI1
OGZkMzg1ZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTExICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBUYWJsZSByb3dzIHJlcGFpbnQgZW50aXJlIHRhYmxlIHdoZW4gdGhlaXIg
YmFja2dyb3VuZCBjb2xvciBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMDEzNGEw
YTRkMGMxNmMzYWYxMDljZTgwNmIzNzcwMGJiYjM1MzQwLi5lNmJjMjcxYjQwNGJiN2M2ZDcwOWY4
ZTMxNzc0YjYwNWZkZmZkYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTkwOSw2ICsxOTA5
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3Bw
CiAgICAgcGFnZS9QYWdlLmNwcAogICAgIHBhZ2UvUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4u
Y3BwCisgICAgcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKICAgICBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxZDM5NDRjOGNlYjFmMzg1Y2E5
Mzg4NjMzNTg2Y2E5NjEwMGE2MTI4Li5lYTE5ZGJhNzg3NDM4MTU1MDM0YjM5MjNjYzk5NWNjYTUx
NTFlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTEzMyw4ICsxMTMzLDYgQEAgX19aTjdX
ZWJDb3JlNE5vZGUxOHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0
TmVlZHNTdHlsZVJlY2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKIF9fWk43V2ViQ29yZTROb2Rl
NnJlbW92ZUVSaQogX19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJpbmdF
aAotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgotX19aTjdXZWJDb3JlNFBhZ2Ux
MVBhZ2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYgogX19aTjdXZWJDb3Jl
NFBhZ2UxMnNldFNlc3Npb25JREVOU185U2Vzc2lvbklERQpAQCAtMTE4MSw3ICsxMTc5LDcgQEAg
X19aTjdXZWJDb3JlNFBhZ2UzN3NldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGVF
YgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFt
ZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlNFBhZ2U4c2V0TXV0ZWRFYgogX19aTjdXZWJDb3JlNFBh
Z2U5aW5pdEdyb3VwRXYKLV9fWk43V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRQor
X19aTjdXZWJDb3JlNFBhZ2VDMUVSTlNfMTdQYWdlQ29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29y
ZTRQYWdlRDFFdgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5kZWRSZWN0RVJLTlNfMTZGbG9h
dFJvdW5kZWRSZWN0RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRlZ3lFCiBfX1pON1dlYkNvcmU0UGF0
aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBfMTlS
b3VuZGVkUmVjdFN0cmF0ZWd5RQpAQCAtMjMwOCw2ICsyMzA2LDggQEAgX19aTjdXZWJDb3JlMTZK
U1hNTEh0dHBSZXF1ZXN0OXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZj
b2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgogX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29raWVz
RVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25FCiBfX1pON1dlYkNvcmUxNmVuY2xvc2luZ0lu
dFJlY3RFUks3X05TUmVjdAorX19aTjdXZWJDb3JlMTdQYWdlQ29uZmlndXJhdGlvbkMxRXYKK19f
Wk43V2ViQ29yZTE3UGFnZUNvbmZpZ3VyYXRpb25EMUV2CiBfX1pON1dlYkNvcmUxN1Njcm9sbGJh
clRoZW1lTWFjMjNzZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29y
ZTE3U2Nyb2xsYmFyVGhlbWVNYWMyNHJlbW92ZU92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIK
IF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyN3NldFVwT3ZlcmhhbmdBcmVhQmFja2dy
b3VuZEVQN0NBTGF5ZXJSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZTdiZmFmOTlhMzJiODBhZGRlNDE4OWFmNTEx
OGUzZWRmNWU4ODkuLmEzMDQxM2IwNzRjODE3OWFlOWU3M2U5NTdjZWQ2OWZiM2RjNjUzMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAt
NzE3Niw2ICs3MTc2LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3JpZ2lu
QWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUFjdGl2aXR5QXNz
ZXJ0aW9uVG9rZW4uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
Q29uZmlndXJhdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBh
Z2VDb25zb2xlQ2xpZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
UGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdy
b3VwTG9hZERlZmVycmVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOTMwOGJmOTMzNzZiYjMyYzQ2MmQwYjM0NDQy
YTg2NjBiZDA2NGM5Li40ZDEzZjU3MThlNTMxYzE3MDA0ZTFlZDNkY2I0ZGJhYTJhYjJiZDRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01NTg1LDYgKzU1ODUsNyBAQAogCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVk
aW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklP
Uy5jcHAgKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5t
bSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDE5QTI2ODFB
MTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhENjUw
RSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRp
YUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQTk4REMyMTYwMTRFRUUwMEZFQTNCMSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50
LmNwcCAqLzsgfTsKIAkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJl
c2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5j
cHAgKi87IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3
RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAt
NTYyMSw2ICs1NjIyLDggQEAKIAkJQ0Q1NERFNEIxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vz
c2lvbk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLzsgfTsK
IAkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY4RjE0NzVC
Njc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTIx
NDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8q
IEF1ZGlvRmlsZVJlYWRlcklPUy5oICovOyB9OworCQlDRDVFNUI1RjFBMTVDRTU0MDAwQzYwOUUg
LyogUGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNE
NUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVFNUI2MDFBMTVGMTU2MDAw
QzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQlDRDYwQzBDNjE5M0U4N0M3
MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1l
UVRLaXQubW0gKi87IH07CiAJCUNENjBDMEM3MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVR
VEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2
MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggKi87IH07CiAJCUNENjFG
RTY3MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkUxMTVCNUNFMjIwMEQ1
MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLzsgfTsKQEAgLTEzMDE0LDYgKzEzMDE3
LDcgQEAKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXVkaW9EZXN0aW5hdGlv
bklPUy5jcHA7IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RF
QjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBF
IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1
NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4
MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMzA2MCw2ICsxMzA2NCw4IEBACiAJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAv
KiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBwYXRo
ID0gaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9GaWxlUmVhZGVySU9TLmg7IHBhdGgg
PSBpb3MvQXVkaW9GaWxlUmVhZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZp
Z3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNv
bmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBDNDE5
M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZVFUS2l0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRp
YVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
b3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjYwOCw2ICsx
NjYxNCw4IEBACiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCAqLywKIAkJ
CQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4u
Y3BwICovLAogCQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlBc3Nl
cnRpb25Ub2tlbi5oICovLAorCQkJCUNENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29u
ZmlndXJhdGlvbi5jcHAgKi8sCisJCQkJQ0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VD
b25maWd1cmF0aW9uLmggKi8sCiAJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VD
b25zb2xlQ2xpZW50LmNwcCAqLywKIAkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFn
ZUNvbnNvbGVDbGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4Mjk3MzQzMDBERTE3MjkgLyogUGFn
ZURlYnVnZ2FibGUuY3BwICovLApAQCAtMTY3MDYsNiArMTY3MTQsNyBAQAogCQkJCUUxMjcxQTEz
MEVFRUM4MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuY3BwICovLAogCQkJCUUxMjcxQTBB
MEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCAqLywKIAkJCQlFMTI3MUE1MTBF
RUVDRDFDMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlkbCAqLywKKwkJCQlDRDE5QTI2NzFB
MTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzg0NCw2ICsy
Mzg1Myw3IEBACiAJCQkJODU4QzM4MkMwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2
ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUQyOTBBQ0M3RDU1MDBERjAxRjEgLyog
RE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJE
RTEwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODVCNDk4RUQwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5MjBBQzVENTM1MDA1MzI3
MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDM5MCw2
ICsyNDQwMCw3IEBACiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZLZXJuZWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2RjcwMEMxQTM1OSAvKiBIUlRGUGFu
bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEwOTE0NDk1MDAxMEQzNjEgLyogSFRN
TEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNENUU1QjVGMUExNUNFNTQwMDBD
NjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3QUIw
QTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODcxRDQ1RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTEFwcGxldEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4RUE3RDJFMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MQXJlYUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc1ODgsNiArMjc1OTksNyBAQAogCQkJCTUyQjZDOUMyMTVF
M0Y0REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg1MThERDc5MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NTNCRjREQzBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSBp
biBTb3VyY2VzICovLAorCQkJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmln
dXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTUyNkMzODBBQjBBMTdFMDAwMzAyRUEg
LyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVBQ0FBOEUwQTlCNzU5
QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDQTk2RUIw
QTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkNDdkNjRhZjg2MjMxYzk5MTky
MWFmMjliY2Q1NGJjMzg2YjY1NzU1Li44ZTAyODMyZjg3N2JiODdhZWQwYWRjNTFmYzdmMmE5YTY0
NjM3OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRl
ICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgi
CiAjaW5jbHVkZSAiRGlzcGxheVNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgpAQCAtMTgyNSwyMCArMTgyNiwyMiBAQCBzdGF0aWMgdm9pZCBsb2dNZWRpYUxvYWRS
ZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVkaWFFbmdpbmUsIGNvbnN0IFN0cgog
ICAgIGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGllbnQg
PSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCog
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAg
IHJldHVybjsKIAogICAgIGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgIGNocm9tZUNsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0Zh
aWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFpbEtleSgp
KTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgp
LCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpGYWlsKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5KCksIG1lZGlhRW5naW5lLCBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2Fk
ZWRLZXkoKSwgbWVkaWFFbmdpbmUpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuQW55TWVkaWFF
bmdpbmUoKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCks
IGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAg
ICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCksIGVt
cHR5U3RyaW5nKCkpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuTWVkaWFFbmdpbmUobWVkaWFF
bmdpbmUpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2lu
ZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBwYWdl
LT5zYXdNZWRpYUVuZ2luZShtZWRpYUVuZ2luZSk7CiB9CkBAIC01NzY2LDkgKzU3NjksMTIgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNv
bnN0CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5n
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAg
ICAgIHJldHVybjsKKwogICAgIFN0cmluZyBlbmdpbmUgPSBtX3BsYXllci0+ZW5naW5lRGVzY3Jp
cHRpb24oKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5w
bGF0Zm9ybUVycm9yQ29kZSgpKTsKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtl
eSgpLCBlbmdpbmUsIG1lc3NhZ2UpOworICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZh
aWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9y
bUVycm9yQ29kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQmVoYXZp
b3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCAxZWQxZTk3NDc0OWJhMmQ5YTNi
MDQyNGUxNDBlYTUxZjY3ZTJkODJiLi5mMGNkNzVmYmU0ZDJjZGFhNjFiMzE2YzI3ZWRmNTJjNDQw
ZDgwOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
Y3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5o
IgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKQEAgLTgwOCw5ICs4MDksOSBAQCBQ
YWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgpCiAgICAgaWYgKG1fb3ZlcmxheVBh
Z2UpCiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdlLmdldCgpOwogCi0gICAgUGFnZTo6UGFn
ZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVu
dHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDbGll
bnRzKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBmaWxs
V2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CisgICAgbV9vdmVybGF5UGFnZSA9
IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogCiAgICAgU2V0dGlu
Z3MmIHNldHRpbmdzID0gbV9wYWdlLnNldHRpbmdzKCk7CiAgICAgU2V0dGluZ3MmIG92ZXJsYXlT
ZXR0aW5ncyA9IG1fb3ZlcmxheVBhZ2UtPnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCmluZGV4IDhlNzU0OTc2ZjAyZDM0ZmIyNzk5ZjY3MGNlZDZiY2U1NDYy
Y2QwNWQuLjc2OWUwMjQwZjZiMTM5YjBiOWQzNTE4YmIxNjQzOTZjOWU3Yzg0YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQpAQCAtNDMsMzIgKzQ0LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBm
aWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCit2b2lk
IGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlv
bikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15
Q2hyb21lQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9ICZkdW1teUNocm9t
ZUNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSAmZHVt
bXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDb250ZXh0TWVudUNsaWVudD4gZHVtbXlDb250ZXh0
TWVudUNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9ICZkdW1teUNv
bnRleHRNZW51Q2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51
Q2xpZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0KCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RHJhZ0Ns
aWVudD4gZHVtbXlEcmFnQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSAmZHVt
bXlEcmFnQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSAm
ZHVtbXlEcmFnQ2xpZW50LmdldCgpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8RW1wdHlFZGl0b3JDbGllbnQ+IGR1bW15RWRpdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRz
LmVkaXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmln
dXJhdGlvbi5lZGl0b3JDbGllbnQgPSAmZHVtbXlFZGl0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlJbnNwZWN0b3JDbGllbnQ+IGR1bW15SW5zcGVjdG9y
Q2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9ICZkdW1teUluc3BlY3Rv
ckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQgPSAm
ZHVtbXlJbnNwZWN0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdl
Q2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVu
dC5nZXQoKTsKLSAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKwogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dy
ZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dyZXNzVHJhY2tlckNsaWVudC5nZXQoKTsKKwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBk
dW1teURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1bW15RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuZ2V0KCk7
CiB9CiAKIGNsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjMyMGM1OTk3Y2QzYzllMzE1MmRhYTJjYjcx
ZTg0YzNiYWE4NjkwZC4uNDc0ZDE5YTdkZGVjYTFhNzU2Y2E0YmEzYmIxYzc1MGNjNGVjOTQ0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRl
ICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgpAQCAtNjM0
LDcgKzYzNSwxMyBAQCBjbGFzcyBFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudCA6IHB1YmxpYyBQ
cm9ncmVzc1RyYWNrZXJDbGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0ZpbmlzaGVk
KEZyYW1lJikgb3ZlcnJpZGUgeyB9CiB9OwogCi12b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBh
Z2U6OlBhZ2VDbGllbnRzJik7CitjbGFzcyBFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDog
cHVibGljIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2dSZXN1bHRUeXBlKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9Cit9OworCit2b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJik7CiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTE5NDA4YjU3ZjYyNjEzMmE5YWUzMmJkNTA0
NzU5OGQzYzVkMzdjOC4uODZkNzM3NGI4NDFjMzQ4OGM4YmE3NjMxNGZhZjNmNTg2ZjUwYmYzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAj
aW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCkBAIC0yMjY2LDcgKzIy
NjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUo
KQogICAgICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgp
ID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmZhaWxLZXkoKSk7CisgICAgICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpOworICAgICAgICAgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OlBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6RmFpbCk7
CiAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKaW5kZXggNWMzNzc4OTFiNjQyNmQ1YmI1ZTdlOTQzZjQ2MTg4OGY2
YjlhMTEyYy4uM2EyNjBkN2Q0MzI5YjljNjk4MTBhMDQ1NDIwY2U2ZTFkZGNiMTYxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVu
dC5oIgpAQCAtMTkyLDE0ICsxOTQsMTcgQEAgc3RhdGljIHZvaWQgbG9nUGx1Z2luUmVxdWVzdChQ
YWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHUKICAgICBT
dHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2UtPnBsdWdpbkRhdGEoKS5wbHVnaW5GaWxlRm9yTWltZVR5
cGUobmV3TUlNRVR5cGUpOwogICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9ICFwbHVnaW5GaWxlID8g
bmV3TUlNRVR5cGUgOiBwbHVnaW5GaWxlOwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGll
bnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKLSAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25v
c3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGVk
S2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXkoKSwg
ZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWlu
RnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGlu
Z0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbik7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5BbnlQ
bHVnaW4oKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpLCBlbXB0
eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7Ci0gICAgCisgICAg
ICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc0F0TGVhc3RPbmVQbHVnaW5LZXkoKSwgZW1wdHlT
dHJpbmcoKSk7CisKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5QbHVnaW4oZGVzY3JpcHRpb24pKQot
ICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQt
PmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5z
UGx1Z2luS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNjcmlw
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA4NzhkZWU1ODM4NzJh
MTU3Yjc3N2ZkMjg4NmE1NzRkOGY3MzA0ZjQ2Li4zYmJkNmMwZDc0OGVjYTBlYThiMjE3NWQ5MzJk
Y2UwZjJmZjU4NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxNiw4ICs0
MTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRl
c2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0KLQogICAgIHZpcnR1YWwgRmxvYXRT
aXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1cm4gRmxvYXRTaXplKDEwMCwgMTAw
KTsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEzOTM0NTE5OWViYTVkMjg4MTNkMjk5MjM0OTY1YzYwMTAw
MDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbikgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlw
dGlvbik7IH0KKworICAgIGVudW0gTG9nUmVzdWx0VHlwZSB7CisgICAgICAgIFBhc3MsCisgICAg
ICAgIEZhaWwsCisgICAgICAgIE5vb3AsCisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdl
KTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHZhbHVlKTsgfQorCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KK307
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXggNzgwM2Y4ODdl
NzczMjVhY2I2YTJmMjA2ZWE1OTA4ZTY1OTc0ZjlkOC4uYzgwYjljMzcxZWY2YWQ1ZTBmOTc5Y2I3
NDc1NzlkZDQxMmVkODViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogCisj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JvbGxMYXRjaGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudERlbHRhVHJhY2tlci5oIgpAQCAtMzYsOCArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFtZShQYWdlJiBwYWdlLCBGcmFtZUxv
YWRlckNsaWVudCYgY2xpZW50KQotICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgY2xpZW50KQor
aW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQorICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgKmNvbmZpZ3VyYXRp
b24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKQogICAgICwgbV9zZWxmT25seVJlZkNvdW50KDAp
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9sYXRjaGluZ1N0YXRlKHN0ZDo6bWFrZV91bmlx
dWU8U2Nyb2xsTGF0Y2hpbmdTdGF0ZT4oKSkKQEAgLTQ3LDYgKzQ4LDcgQEAgaW5saW5lIE1haW5G
cmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCiAj
ZW5kaWYKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcihzdGQ6Om1ha2VfdW5p
cXVlPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCiAgICAgLCBtX3BhZ2VPdmVybGF5Q29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4oKnRoaXMpKQorICAg
ICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KQogewogfQogCkBAIC01NCw5ICs1Niw5IEBAIE1haW5GcmFtZTo6fk1haW5GcmFt
ZSgpCiB7CiB9CiAKLVJlZlB0cjxNYWluRnJhbWU+IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2UmIHBh
Z2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCitSZWZQdHI8TWFpbkZyYW1lPiBNYWluRnJh
bWU6OmNyZWF0ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjbGllbnQpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjb25maWd1cmF0aW9uKSk7CiB9
CiAKIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seVJlZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01haW5GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaApp
bmRleCBiZDZjZTc5MDNjY2NlNmI3NjkwM2I2MWVkZTQ2NGEzYzE3NWQyYmNkLi5jMTA5OTQwMjBi
N2VhNTZlYzQ3ODc4N2M4MzM5YmJkNDc4MjgxMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL01haW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgK
QEAgLTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92
ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI7CkBAIC0zNyw3ICszOSw3IEBAIGNsYXNzIFdoZWVsRXZlbnRE
ZWx0YVRyYWNrZXI7CiAKIGNsYXNzIE1haW5GcmFtZSBmaW5hbCA6IHB1YmxpYyBGcmFtZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNYWluRnJhbWU+IGNyZWF0ZShQYWdlJiwgRnJhbWVM
b2FkZXJDbGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBhZ2Um
LCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdmlydHVhbCB+TWFpbkZyYW1lKCk7CiAKQEAg
LTU2LDggKzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0TGF0Y2hpbmdTdGF0ZSgpOwog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ7IH0KKwogcHJpdmF0ZToKLSAgICBNYWluRnJhbWUoUGFnZSYsIEZyYW1lTG9hZGVy
Q2xpZW50Jik7CisgICAgTWFpbkZyYW1lKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAg
ICAgdm9pZCBkcm9wQ2hpbGRyZW4oKTsKIApAQCAtNzEsNiArNzUsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50
V2hlZWxFdmVudERlbHRhVHJhY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZU92ZXJsYXlD
b250cm9sbGVyPiBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcjsKKyAgICBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIH07CiAKIGlubGluZSBib29sIEZy
YW1lOjppc01haW5GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjMTFiYjAwZjFj
OWJkZWI0OWJlMzg1MGYwNjNmMzlkOWExM2IxYjRlLi4yNjM2MTY4MmJjMTI5NzVjZTBjNDlkODU3
YTE4NTYxNmJhZmVhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFz
c2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUg
IlBhZ2VEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMjQsMzQgKzEy
NSwzNCBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpCiAK
IHN0YXRpYyBjb25zdCBWaWV3U3RhdGU6OkZsYWdzIFBhZ2VJbml0aWFsVmlld1N0YXRlID0gVmll
d1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CiAKLVBhZ2U6OlBhZ2Uo
UGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQotICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1
ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50KSkKK1BhZ2U6OlBhZ2Uo
UGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQorICAgIDogbV9jaHJvbWUoc3Rk
OjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xp
ZW50KSkKICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERyYWdD
YXJldENvbnRyb2xsZXI+KCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAsIG1fZHJh
Z0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdl
Q2xpZW50cy5kcmFnQ2xpZW50KSkKKyAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3Vu
aXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50
KSkKICNlbmRpZgogICAgICwgbV9mb2N1c0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxGb2N1
c0NvbnRyb2xsZXI+KCp0aGlzLCBQYWdlSW5pdGlhbFZpZXdTdGF0ZSkpCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5p
cXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5jb250ZXh0TWVu
dUNsaWVudCkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVl
PENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0
TWVudUNsaWVudCkpCiAjZW5kaWYKICAgICAsIG1fdXNlcklucHV0QnJpZGdlKHN0ZDo6bWFrZV91
bmlxdWU8VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAg
ICAgLCBtX3JlcGxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxSZXBsYXlDb250cm9sbGVy
PigqdGhpcykpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNwZWN0
b3JDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMs
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCisgICAgLCBtX2luc3BlY3RvckNvbnRyb2xs
ZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFnZUNvbmZp
Z3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBvaW50
ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKFNldHRp
bmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlxdWU8UHJv
Z3Jlc3NUcmFja2VyPigqcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkKLSAgICAs
IG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QmFja0ZvcndhcmRDb250
cm9sbGVyPigqdGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQpKQotICAgICwgbV9t
YWluRnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsICpwYWdlQ2xpZW50cy5sb2FkZXJDbGll
bnRGb3JNYWluRnJhbWUpKQorICAgICwgbV9wcm9ncmVzcyhzdGQ6Om1ha2VfdW5pcXVlPFByb2dy
ZXNzVHJhY2tlcj4oKnBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCkpCisg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEJhY2tGb3J3YXJk
Q29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50KSkK
KyAgICAsIG1fbWFpbkZyYW1lKE1haW5GcmFtZTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmlndXJh
dGlvbikpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UodGhpcykpCi0g
ICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQpCi0gICAgLCBtX3Bs
dWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQpCi0gICAgLCBtX3ZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50KHBhZ2VDbGllbnRzLnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KQorICAgICwg
bV9lZGl0b3JDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KQorICAgICwgbV9w
bHVnSW5DbGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50KQorICAgICwgbV92YWxp
ZGF0aW9uTWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNs
aWVudCkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShmYWxz
ZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpCkBAIC0xOTIsNyAr
MTkzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX2FsdGVybmF0
aXZlVGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCisgICAgLCBt
X2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRD
bGllbnQpCiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAgICAs
IG1fcGFnZVRocm90dGxlcigqdGhpcywgbV92aWV3U3RhdGUpCiAgICAgLCBtX2NvbnNvbGVDbGll
bnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUNsaWVudD4oKnRoaXMpKQpAQCAtMjAxLDgg
KzIwMiw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAg
ICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBP
bmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3Rpbmcu
CiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKLSAgICAsIG1fdXNl
ckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ2xpZW50cy51c2VyQ29udGVudENvbnRy
b2xsZXIpKQotICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ2xpZW50cy52
aXNpdGVkTGlua1N0b3JlKSkKKyAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92
ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIpKQorICAgICwgbV92aXNp
dGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3Jl
KSkKICAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAg
ICwgbV9pc0Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2lzUGxheWluZ0F1ZGlvKGZhbHNlKQpAQCAt
MTY1NSwyNCArMTY1Niw0IEBAIHZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgICAgIHZpZXctPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChzZXNzaW9u
SUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKLVBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygp
Ci0gICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKLSAgICAsIGNocm9tZUNsaWVu
dChudWxscHRyKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgICwgY29udGV4dE1lbnVD
bGllbnQobnVsbHB0cikKLSNlbmRpZgotICAgICwgZWRpdG9yQ2xpZW50KG51bGxwdHIpCi0gICAg
LCBkcmFnQ2xpZW50KG51bGxwdHIpCi0gICAgLCBpbnNwZWN0b3JDbGllbnQobnVsbHB0cikKLSAg
ICAsIHBsdWdJbkNsaWVudChudWxscHRyKQotICAgICwgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50KG51
bGxwdHIpCi0gICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudChudWxscHRyKQotICAgICwgbG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCi17Ci19Ci0KLVBhZ2U6OlBhZ2VDbGllbnRz
Ojp+UGFnZUNsaWVudHMoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCmluZGV4IGFmN2Y4YWNjNDM0MDdjMTZjYzZiMWFkYTQzYjA5YzE5MmY1OGY4ZTMuLjdmNDI0
YjM1YjU1OWUyYzIwNGI5ZjkxNWFiYjEwMWM3YjA4ODA0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04
MSw2ICs4MSw3IEBAIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNYWluRnJhbWU7
CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBQYWdlQWN0aXZpdHlBc3NlcnRp
b25Ub2tlbjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZUNvbnNvbGVDbGll
bnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJsZTsKIGNsYXNzIFBhZ2VHcm91cDsKQEAgLTExOSwzMyAr
MTIwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHVwZGF0ZVN0
eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjbGVhclByZXZpb3VzSXRlbUZyb21BbGxQYWdlcyhIaXN0
b3J5SXRlbSopOwogCi0gICAgLy8gSXQgaXMgdXAgdG8gdGhlIHBsYXRmb3JtIHRvIGVuc3VyZSB0
aGF0IG5vbi1udWxsIGNsaWVudHMgYXJlIHByb3ZpZGVkIHdoZXJlIHJlcXVpcmVkLgotICAgIC8v
IEZJWE1FOiBSZW5hbWUgdGhpcyB0byBQYWdlQ29uZmlndXJhdGlvbiBhbmQgbW92ZSBpdCB0byBp
dHMgb3duIGNsYXNzLgotICAgIHN0cnVjdCBQYWdlQ2xpZW50cyB7Ci0gICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFBhZ2VDbGllbnRzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAg
cHVibGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ2xpZW50cygpOwotICAgICAgICBX
RUJDT1JFX0VYUE9SVCB+UGFnZUNsaWVudHMoKTsKLQotICAgICAgICBBbHRlcm5hdGl2ZVRleHRD
bGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKLSAgICAgICAgQ2hyb21lQ2xpZW50KiBjaHJv
bWVDbGllbnQ7Ci0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgICAgIENvbnRleHRNZW51
Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudDsKLSNlbmRpZgotICAgICAgICBFZGl0b3JDbGllbnQq
IGVkaXRvckNsaWVudDsKLSAgICAgICAgRHJhZ0NsaWVudCogZHJhZ0NsaWVudDsKLSAgICAgICAg
SW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7Ci0gICAgICAgIFBsdWdJbkNsaWVudCog
cGx1Z0luQ2xpZW50OwotICAgICAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNzVHJh
Y2tlckNsaWVudDsKLSAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBiYWNrRm9yd2Fy
ZENsaWVudDsKLSAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50OwotICAgICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lOwotCi0gICAgICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJDb250
ZW50Q29udHJvbGxlcjsKLSAgICAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRM
aW5rU3RvcmU7Ci0gICAgfTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2UoUGFn
ZUNsaWVudHMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQYWdlKFBhZ2VDb25maWd1
cmF0aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2UoKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4OWExODJjMzg1NWQ1OTdkNDc1Mjkz
NWE1NDg3YjNiMjc4ODNkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCisKKyNpbmNsdWRl
ICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oKQorICAgIDogYWx0ZXJuYXRp
dmVUZXh0Q2xpZW50KG51bGxwdHIpCisgICAgLCBjaHJvbWVDbGllbnQobnVsbHB0cikKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICAsIGNvbnRleHRNZW51Q2xpZW50KG51bGxwdHIpCisj
ZW5kaWYKKyAgICAsIGVkaXRvckNsaWVudChudWxscHRyKQorICAgICwgZHJhZ0NsaWVudChudWxs
cHRyKQorICAgICwgaW5zcGVjdG9yQ2xpZW50KG51bGxwdHIpCisgICAgLCBwbHVnSW5DbGllbnQo
bnVsbHB0cikKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChudWxscHRyKQorICAgICwgdmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQobnVsbHB0cikKKyAgICAsIGxvYWRlckNsaWVudEZvck1haW5G
cmFtZShudWxscHRyKQoreworfQorCitQYWdlQ29uZmlndXJhdGlvbjo6flBhZ2VDb25maWd1cmF0
aW9uKCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkwOWI3MjNhZTZjZDQ2NGY5MjAzYmU2MzU1MTQwMTc0NjFmMWVjOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAg
LTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFnZUNvbmZpZ3VyYXRpb25faAorI2Rl
ZmluZSBQYWdlQ29uZmlndXJhdGlvbl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50OworY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CitjbGFzcyBD
aHJvbWVDbGllbnQ7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCitjbGFzcyBDb250ZXh0TWVu
dUNsaWVudDsKKyNlbmRpZgorY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CitjbGFzcyBE
cmFnQ2xpZW50OworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7
CitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQcm9n
cmVzc1RyYWNrZXJDbGllbnQ7CitjbGFzcyBVc2VyQ29udGVudENvbnRyb2xsZXI7CitjbGFzcyBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKK2NsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CisKK2NsYXNz
IFBhZ2VDb25maWd1cmF0aW9uIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmln
dXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVf
RVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25m
aWd1cmF0aW9uKCk7CisKKyAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4
dENsaWVudDsKKyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudDsKKyNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKKyAgICBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQ7Cisj
ZW5kaWYKKyAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKKyAgICBEcmFnQ2xpZW50KiBk
cmFnQ2xpZW50OworICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OworICAgIFBs
dWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OworICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50OworICAgIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0Zv
cndhcmRDbGllbnQ7CisgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50OworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJh
bWU7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
OworCisgICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9s
bGVyOworICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmlu
ZGV4IDVjODhhNzRmZDJjMWZkYmIwNjcwOWQxZjhkODk5MDIyNGQwMjZkOTUuLjQ5YjkwYmUzNzEy
MjUxNDBkNjg2NTNjMDlkNjYxODcyOTBkOTkxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5j
bHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgpAQCAtMzM5
LDEwICszNDAsMTAgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVj
ZWl2ZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkg
ewotICAgICAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICAgICAgZmlsbFdp
dGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBw
YWdlQ29uZmlndXJhdGlvbjsKKyAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZp
Z3VyYXRpb24pOwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
SW1hZ2VDaHJvbWVDbGllbnQ+KHRoaXMpOwotICAgICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGll
bnQgPSBtX2Nocm9tZUNsaWVudC5nZXQoKTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hy
b21lQ2xpZW50ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IElm
IHRoaXMgU1ZHIGVuZHMgdXAgbG9hZGluZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdvcmxk
LgogICAgICAgICAvLyBUaGUgQ2FjaGUgY29kZSBkb2VzIG5vdCBrbm93IGFib3V0IENhY2hlZElt
YWdlcyBob2xkaW5nIEZyYW1lcyBhbmQKQEAgLTM1MCw3ICszNTEsNyBAQCBib29sIFNWR0ltYWdl
OjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgLy8gVGhpcyB3aWxs
IGJlY29tZSBhbiBpc3N1ZSB3aGVuIFNWR0ltYWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90aGVy
CiAgICAgICAgIC8vIFNWR0ltYWdlIG9iamVjdHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVjYXVz
ZSBTVkdJbWFnZSBjYW4gb25seSBiZQogICAgICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2ZWwg
ZG9jdW1lbnQuCi0gICAgICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNs
aWVudHMpOworICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDb25m
aWd1cmF0aW9uKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChm
YWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNl
KTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241629</attachid>
            <date>2014-11-14 15:06:29 -0800</date>
            <delta_ts>2014-11-14 15:38:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141114150637.patch</filename>
            <type>text/plain</type>
            <size>75640</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2ZTZjZTIzODg5Y2Nj
NjYzYmE0OWM3NDg1YjcxYzk0NTFmZWU4Zi4uY2YyMDVkOTkxMDU1ZjAzOTBlZDZkZGE5YmIwNDI1
OGZkMzg1ZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTExICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBUYWJsZSByb3dzIHJlcGFpbnQgZW50aXJlIHRhYmxlIHdoZW4gdGhlaXIg
YmFja2dyb3VuZCBjb2xvciBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGUxNGE2NzNiNmJl
NTQwNjY4MjBhOWIwMTlhMzZiMTMwMGUxYThmODEuLjllYTkwZDBjYjg3N2U0MTk5ZTVkMjI4N2Vj
MjJlYWFiYjlhMmZlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0x
MS0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0
IG11bHRpcGxlIHNpZ25hdHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgaGFz
IGJlZW4gcmVuYW1lZCBQYWdlQ29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERv
Y3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNC0x
MS0xNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgV0sxOiBXZWJw
YWdlIHByZXZpZXcgY2FuIGNvbWUgdXAgaW4gd3JvbmcgbG9jYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
NDY3MTE0NWVlOGE2NGU0MmY5YTI3MTc2ODZiOTZhZWQ0NzIzM2M4Li40MzRiODRkZTRiMWQyODk2
MjdmZDZmNjQ4N2I4ZDQ5ZGQyMTRhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIw
MTQtMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3Vw
cG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2luZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCB0aGUgZXhpc3Rp
bmcgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgaW50ZXJmYWNlIGJ5IGRlcHJl
Y2F0aW5nCisgICAgICAgIHRoZSBvcmlnaW5hbCBsb2dEaWFnbm9zdGljTWVzc2FnZSBjbGllbnQg
bWV0aG9kIGluIFYxIGFuZCBhZGRpbmcgdGhyZWUgbmV3LAorICAgICAgICBleHBsaWNpdCBjbGll
bnQgbWV0aG9kcy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQpOgorICAgICAgICAgICAgUmVuYW1lZCBm
cm9tIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBh
c3MgdG8gdGhlIGNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9nRGlh
Z25vc3RpY01lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KTogU2ltcGxlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxlIGRlc3Ry
dWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhlIGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAg
KFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQu
CisKIDIwMTQtMTEtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0VNRV1bV0syXSBTaW1wbGlmeSB0aGUgTWVkaWFLZXlzIG9yaWdpbiBkZWxldGlvbiBjb2Rl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMDEzNGEwYTRkMGMxNmMzYWYxMDljZTgwNmIzNzcw
MGJiYjM1MzQwLi5lNmJjMjcxYjQwNGJiN2M2ZDcwOWY4ZTMxNzc0YjYwNWZkZmZkYmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTkwOSw2ICsxOTA5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAogICAg
IHBhZ2UvUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwCisgICAgcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCAxZDM5NDRjOGNlYjFmMzg1Y2E5Mzg4NjMzNTg2Y2E5NjEwMGE2MTI4Li5l
YTE5ZGJhNzg3NDM4MTU1MDM0YjM5MjNjYzk5NWNjYTUxNTFlYmExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtMTEzMyw4ICsxMTMzLDYgQEAgX19aTjdXZWJDb3JlNE5vZGUxOHN0YXJ0SWdub3Jp
bmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJlY2FsY0VOU18xNVN0
eWxlQ2hhbmdlVHlwZUUKIF9fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQogX19aTjdXZWJDb3Jl
NFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJpbmdFaAotX19aTjdXZWJDb3JlNFBhZ2UxMVBh
Z2VDbGllbnRzQzFFdgotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdX
ZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQ
YWdlMTJzZXRJc1Zpc2libGVFYgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFNlc3Npb25JREVOU185
U2Vzc2lvbklERQpAQCAtMTE4MSw3ICsxMTc5LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UzN3NldElu
TG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGVFYgogX19aTjdXZWJDb3JlNFBhZ2U4Z29U
b0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3Jl
NFBhZ2U4c2V0TXV0ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2U5aW5pdEdyb3VwRXYKLV9fWk43V2Vi
Q29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRQorX19aTjdXZWJDb3JlNFBhZ2VDMUVSTlNf
MTdQYWdlQ29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTRQYWdlRDFFdgogX19aTjdXZWJDb3Jl
NFBhdGgxNGFkZFJvdW5kZWRSZWN0RVJLTlNfMTZGbG9hdFJvdW5kZWRSZWN0RU5TMF8xOVJvdW5k
ZWRSZWN0U3RyYXRlZ3lFCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185
RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0cmF0ZWd5RQpAQCAt
MjMwOCw2ICsyMzA2LDggQEAgX19aTjdXZWJDb3JlMTZKU1hNTEh0dHBSZXF1ZXN0OXRvV3JhcHBl
ZEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xv
cgogX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNl
c3Npb25FCiBfX1pON1dlYkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUks3X05TUmVjdAorX19aTjdX
ZWJDb3JlMTdQYWdlQ29uZmlndXJhdGlvbkMxRXYKK19fWk43V2ViQ29yZTE3UGFnZUNvbmZpZ3Vy
YXRpb25EMUV2CiBfX1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjNzZXRVcE92ZXJoYW5n
QXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyNHJl
bW92ZU92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFy
VGhlbWVNYWMyN3NldFVwT3ZlcmhhbmdBcmVhQmFja2dyb3VuZEVQN0NBTGF5ZXJSS05TXzVDb2xv
ckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmlu
ZGV4IDZiZTdiZmFmOTlhMzJiODBhZGRlNDE4OWFmNTExOGUzZWRmNWU4ODkuLmEzMDQxM2IwNzRj
ODE3OWFlOWU3M2U5NTdjZWQ2OWZiM2RjNjUzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzE3Niw2ICs3MTc2LDcgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwIiAvPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uZmlndXJhdGlvbi5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25zb2xlQ2xpZW50LmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjOTMwOGJmOTMzNzZiYjMyYzQ2MmQwYjM0NDQyYTg2NjBiZDA2NGM5Li40ZDEzZjU3MThl
NTMxYzE3MDA0ZTFlZDNkY2I0ZGJhYTJhYjJiZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTg1LDYgKzU1ODUsNyBAQAog
CQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQz
RTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgKi87IH07CiAJCUNEMTI3REVE
MTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4
NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYz
MDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3Nzkg
LyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlDRDE5QTI2ODFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4REMyMTYwMTRF
RUUwMEZFQTNCMSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCAqLzsgfTsKIAkJQ0QxRTczNDcx
NjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUU3MzQ2MTY3QkM3OEUwMDlB
ODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi87IH07CiAJCUNEMjdGNkU1MTQ1
NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyog
SlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtNTYyMSw2ICs1NjIyLDggQEAKIAkJQ0Q1
NERFNEIxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0OTE3NDY5QzZEMDA1RTVC
MzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQw
QkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY4RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxl
UmVhZGVySU9TLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlv
RmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICov
OyB9OworCQlDRDVFNUI1RjFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUU1QjVFMUEx
NUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAv
KiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRp
b24uY3BwICovOyB9OwogCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRL
aXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYw
QzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi87IH07CiAJCUNENjBD
MEM3MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8q
IE1lZGlhVGltZVFUS2l0LmggKi87IH07CiAJCUNENjFGRTY3MTc5NEFBREIwMDQxMDFFQiAvKiBN
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lz
dHJ5LmNwcCAqLzsgfTsKQEAgLTEzMDE0LDYgKzEzMDE3LDcgQEAKIAkJQ0QwRUVFMEIxNDc0M0Uz
NTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHBhdGggPSBpb3MvQXVk
aW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3
REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUw
MDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNv
bnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA2MCw2ICsxMzA2NCw4
IEBACiAJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8q
IEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBwYXRoID0gaW9zL0F1ZGlvRmlsZVJlYWRlcklP
Uy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFE
MEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQXVkaW9GaWxlUmVhZGVySU9TLmg7IHBhdGggPSBpb3MvQXVkaW9GaWxlUmVhZGVySU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUU1QjVFMUExNUNFNTQwMDBDNjA5
RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDVF
NUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFU
aW1lUVRLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRp
YVRpbWVRVEtpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2MEMwQzUxOTNF
ODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhVGltZVFUS2l0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjYwOCw2ICsxNjYxNCw4IEBACiAJCQkJNjVBMjE0Njcw
OTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCAqLywKIAkJCQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVG
QjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwICovLAogCQkJCUNEMDgyODVCMTc1
NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbi5oICovLAorCQkJCUNE
NUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8sCisJCQkJ
Q0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJ
REFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlQ2xpZW50LmNwcCAqLywKIAkJ
CQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGllbnQuaCAqLywKIAkJ
CQlBNUEyQUYwOTE4Mjk3MzQzMDBERTE3MjkgLyogUGFnZURlYnVnZ2FibGUuY3BwICovLApAQCAt
MTY3MDYsNiArMTY3MTQsNyBAQAogCQkJCUUxMjcxQTEzMEVFRUM4MDQwMEY2MTIxMyAvKiBXb3Jr
ZXJOYXZpZ2F0b3IuY3BwICovLAogCQkJCUUxMjcxQTBBMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3Jr
ZXJOYXZpZ2F0b3IuaCAqLywKIAkJCQlFMTI3MUE1MTBFRUVDRDFDMDBGNjEyMTMgLyogV29ya2Vy
TmF2aWdhdG9yLmlkbCAqLywKKwkJCQlDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcGFnZTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzg0NCw2ICsyMzg1Myw3IEBACiAJCQkJODU4QzM4MkMw
QUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NTkwOUQyOTBBQ0M3RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTEwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU1J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAv
KiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RUQw
QURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NUU3MTE5MjBBQzVENTM1MDA1MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDM5MCw2ICsyNDQwMCw3IEBACiAJCQkJRkQzMTYw
OUYxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
MzE2MEExMTJCMDI2RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk3RTIzQTEwOTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENUU1QjVGMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3QUIwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxB
bmNob3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxRDQ1RDBBMTI3Q0JDMDBCMTJB
NjggLyogSFRNTEFwcGxldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJFMEEx
OTM4NTUwMEE4RUY1RiAvKiBIVE1MQXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1
ODgsNiArMjc1OTksNyBAQAogCQkJCTUyQjZDOUMyMTVFM0Y0REYwMDY5MEIwNSAvKiBET01OYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MThERDc5MEE5Q0YzMUIw
MDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTNCRjRE
QzBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENUU1
QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NTUyNkMzODBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODVBQ0FBOEUwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDQTk2RUIwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5v
dGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCBkNDdkNjRhZjg2MjMxYzk5MTkyMWFmMjliY2Q1NGJjMzg2YjY1NzU1Li44
ZTAyODMyZjg3N2JiODdhZWQwYWRjNTFmYzdmMmE5YTY0NjM3OWFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJD
b250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1
ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAiRGlzcGxheVNsZWVw
RGlzYWJsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMTgyNSwyMCArMTgy
NiwyMiBAQCBzdGF0aWMgdm9pZCBsb2dNZWRpYUxvYWRSZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0
IFN0cmluZyYgbWVkaWFFbmdpbmUsIGNvbnN0IFN0cgogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+
c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
PSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICgh
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc3Vj
Y2VlZGVkKSB7Ci0gICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2Us
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFpbEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9n
Z2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OjpGYWlsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNo
cm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1l
ZGlhTG9hZGVkS2V5KCksIG1lZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BL
ZXkoKSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkZWRLZXkoKSwgbWVkaWFFbmdpbmUpOwog
CiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuQW55TWVkaWFFbmdpbmUoKSkKLSAgICAgICAgY2hyb21l
Q2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNv
bnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRh
aW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCkpOwogCiAgICAgaWYg
KCFwYWdlLT5oYXNTZWVuTWVkaWFFbmdpbmUobWVkaWFFbmdpbmUpKQotICAgICAgICBjaHJvbWVD
bGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29u
dGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2luZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25v
c3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2lu
ZUtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBwYWdlLT5zYXdNZWRpYUVuZ2luZShtZWRpYUVu
Z2luZSk7CiB9CkBAIC01NzY2LDkgKzU3NjksMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlIHx8ICFw
YWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlm
ICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmlu
ZyBlbmdpbmUgPSBtX3BsYXllci0+ZW5naW5lRGVzY3JpcHRpb24oKTsKLSAgICBTdHJpbmcgbWVz
c2FnZSA9IFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKTsKLSAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIG1lc3NhZ2UpOwor
ICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUs
IFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSk7CiB9CiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJz
dFVzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcAppbmRleCAxZWQxZTk3NDc0OWJhMmQ5YTNiMDQyNGUxNDBlYTUxZjY3ZTJkODJiLi5m
MGNkNzVmYmU0ZDJjZGFhNjFiMzE2YzI3ZWRmNTJjNDQwZDgwOGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFw
ZS5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9k
ZWxPYmplY3QuaCIKQEAgLTgwOCw5ICs4MDksOSBAQCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5Ojpv
dmVybGF5UGFnZSgpCiAgICAgaWYgKG1fb3ZlcmxheVBhZ2UpCiAgICAgICAgIHJldHVybiBtX292
ZXJsYXlQYWdlLmdldCgpOwogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0g
ICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2Ug
PSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDbGllbnRzKTsKKyAgICBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29u
ZmlndXJhdGlvbik7CisgICAgbV9vdmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4o
cGFnZUNvbmZpZ3VyYXRpb24pOwogCiAgICAgU2V0dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLnNl
dHRpbmdzKCk7CiAgICAgU2V0dGluZ3MmIG92ZXJsYXlTZXR0aW5ncyA9IG1fb3ZlcmxheVBhZ2Ut
PnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhl
NzU0OTc2ZjAyZDM0ZmIyNzk5ZjY3MGNlZDZiY2U1NDYyY2QwNWQuLjc2OWUwMjQwZjZiMTM5YjBi
OWQzNTE4YmIxNjQzOTZjOWU3Yzg0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNDMsMzIgKzQ0LDM1IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdl
OjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBh
Z2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50OwotICAgIHBhZ2VD
bGllbnRzLmNocm9tZUNsaWVudCA9ICZkdW1teUNocm9tZUNsaWVudC5nZXQoKTsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSAmZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlDb250ZXh0TWVudUNsaWVudD4gZHVtbXlDb250ZXh0TWVudUNsaWVudDsKLSAgICBwYWdlQ2xp
ZW50cy5jb250ZXh0TWVudUNsaWVudCA9ICZkdW1teUNvbnRleHRNZW51Q2xpZW50LmdldCgpOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gJmR1bW15Q29udGV4dE1l
bnVDbGllbnQuZ2V0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RHJhZ0NsaWVudD4gZHVtbXlEcmFnQ2xpZW50Owot
ICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOwog
I2VuZGlmCiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlFZGl0b3JDbGllbnQ+IGR1
bW15RWRpdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9ICZkdW1teUVk
aXRvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSAm
ZHVtbXlFZGl0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlJbnNwZWN0b3JDbGllbnQ+IGR1bW15SW5zcGVjdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRz
Lmluc3BlY3RvckNsaWVudCA9ICZkdW1teUluc3BlY3RvckNsaWVudC5nZXQoKTsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQgPSAmZHVtbXlJbnNwZWN0b3JDbGllbnQuZ2V0
KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4g
ZHVtbXlGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKLSAgICAKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRl
ckNsaWVudC5nZXQoKTsKKwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eVByb2dyZXNz
VHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVu
dHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmdl
dCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1t
eVByb2dyZXNzVHJhY2tlckNsaWVudC5nZXQoKTsKKworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1teURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1
bW15RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuZ2V0KCk7CiB9CiAKIGNsYXNzIEVtcHR5UG9wdXBN
ZW51IDogcHVibGljIFBvcHVwTWVudSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggZjMyMGM1OTk3Y2QzYzllMzE1MmRhYTJjYjcxZTg0YzNiYWE4NjkwZC4uNDc0ZDE5YTdk
ZGVjYTFhNzU2Y2E0YmEzYmIxYzc1MGNjNGVjOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgpAQCAtNjM0LDcgKzYzNSwxMyBAQCBjbGFzcyBFbXB0
eVByb2dyZXNzVHJhY2tlckNsaWVudCA6IHB1YmxpYyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewog
ICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0ZpbmlzaGVkKEZyYW1lJikgb3ZlcnJpZGUgeyB9CiB9
OwogCi12b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2U6OlBhZ2VDbGllbnRzJik7CitjbGFz
cyBFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50IHsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBM
b2dSZXN1bHRUeXBlKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGUgeyB9Cit9OworCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VD
b25maWd1cmF0aW9uJik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggNTE5NDA4YjU3ZjYyNjEzMmE5YWUzMmJkNTA0NzU5OGQzYzVkMzdjOC4uODZkNzM3NGI4
NDFjMzQ4OGM4YmE3NjMxNGZhZjNmNTg2ZjUwYmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIu
aCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdu
b3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkVGltaW5nLmgiCkBAIC0yMjY2LDcgKzIyNjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUoKQogICAgICAgICAgICAgaWYgKCFwYWdl
IHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5
KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpwYXNzS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmZhaWxLZXkoKSk7CisgICAgICAg
ICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBw
YWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgICAgICAgICAg
aWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5
U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OlBhc3Mg
OiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6RmFpbCk7CiAKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXgg
NWMzNzc4OTFiNjQyNmQ1YmI1ZTdlOTQzZjQ2MTg4OGY2YjlhMTEyYy4uM2EyNjBkN2Q0MzI5Yjlj
Njk4MTBhMDQ1NDIwY2U2ZTFkZGNiMTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5Lmgi
CisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9z
dGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisj
aW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdp
bkRhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgpAQCAtMTkyLDE0ICsxOTQsMTcg
QEAgc3RhdGljIHZvaWQgbG9nUGx1Z2luUmVxdWVzdChQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHUKICAgICBTdHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2Ut
PnBsdWdpbkRhdGEoKS5wbHVnaW5GaWxlRm9yTWltZVR5cGUobmV3TUlNRVR5cGUpOwogICAgIFN0
cmluZyBkZXNjcmlwdGlvbiA9ICFwbHVnaW5GaWxlID8gbmV3TUlNRVR5cGUgOiBwbHVnaW5GaWxl
OwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKTsKLSAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGVkS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlv
bik7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5BbnlQbHVnaW4oKSkKLSAgICAgICAgY2hyb21l
Q2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNv
bnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6Om5vb3BLZXkoKSk7Ci0gICAgCisgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250
YWluc0F0TGVhc3RPbmVQbHVnaW5LZXkoKSwgZW1wdHlTdHJpbmcoKSk7CisKICAgICBpZiAoIXBh
Z2UtPmhhc1NlZW5QbHVnaW4oZGVzY3JpcHRpb24pKQotICAgICAgICBjaHJvbWVDbGllbnQubG9n
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVn
aW5LZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsK
KyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zUGx1Z2luS2V5KCksIGRlc2NyaXB0aW9u
KTsKIAogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaAppbmRleCA4NzhkZWU1ODM4NzJhMTU3Yjc3N2ZkMjg4NmE1NzRkOGY3MzA0
ZjQ2Li4zYmJkNmMwZDc0OGVjYTBlYThiMjE3NWQ5MzJkY2UwZjJmZjU4NDU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxNiw4ICs0MTYsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKSB7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFN
KHN0YXR1cyk7IH0KLQogICAgIHZpcnR1YWwgRmxvYXRTaXplIG1pbmltdW1XaW5kb3dTaXplKCkg
Y29uc3QgeyByZXR1cm4gRmxvYXRTaXplKDEwMCwgMTAwKTsgfTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEz
OTM0NTE5OWViYTVkMjg4MTNkMjk5MjM0OTY1YzYwMTAwMDFlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNk
ZWZpbmUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFS
QU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKworICAgIGVudW0gTG9n
UmVzdWx0VHlwZSB7CisgICAgICAgIFBhc3MsCisgICAgICAgIEZhaWwsCisgICAgICAgIE5vb3As
CisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVz
dWx0VHlwZSkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlv
bik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJp
bmcmIHZhbHVlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0
aW9uKTsgVU5VU0VEX1BBUkFNKHZhbHVlKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAKaW5kZXggNzgwM2Y4ODdlNzczMjVhY2I2YTJmMjA2ZWE1OTA4ZTY1
OTc0ZjlkOC4uYzgwYjljMzcxZWY2YWQ1ZTBmOTc5Y2I3NDc1NzlkZDQxMmVkODViOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxMYXRjaGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhVHJhY2tlci5oIgpA
QCAtMzYsOCArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBNYWluRnJh
bWU6Ok1haW5GcmFtZShQYWdlJiBwYWdlLCBGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KQotICAg
IDogRnJhbWUocGFnZSwgbnVsbHB0ciwgY2xpZW50KQoraW5saW5lIE1haW5GcmFtZTo6TWFpbkZy
YW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDog
RnJhbWUocGFnZSwgbnVsbHB0ciwgKmNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZy
YW1lKQogICAgICwgbV9zZWxmT25seVJlZkNvdW50KDApCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
ICwgbV9sYXRjaGluZ1N0YXRlKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsTGF0Y2hpbmdTdGF0ZT4o
KSkKQEAgLTQ3LDYgKzQ4LDcgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBh
Z2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCiAjZW5kaWYKICAgICAsIG1fcmVjZW50V2hl
ZWxFdmVudERlbHRhVHJhY2tlcihzdGQ6Om1ha2VfdW5pcXVlPFdoZWVsRXZlbnREZWx0YVRyYWNr
ZXI+KCkpCiAgICAgLCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBh
Z2VPdmVybGF5Q29udHJvbGxlcj4oKnRoaXMpKQorICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudChjb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogfQogCkBAIC01
NCw5ICs1Niw5IEBAIE1haW5GcmFtZTo6fk1haW5GcmFtZSgpCiB7CiB9CiAKLVJlZlB0cjxNYWlu
RnJhbWU+IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBj
bGllbnQpCitSZWZQdHI8TWFpbkZyYW1lPiBNYWluRnJhbWU6OmNyZWF0ZShQYWdlJiBwYWdlLCBQ
YWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1haW5GcmFtZShwYWdlLCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1h
aW5GcmFtZShwYWdlLCBjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQgTWFpbkZyYW1lOjpzZWxm
T25seVJlZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAppbmRleCBiZDZjZTc5MDNjY2NlNmI3Njkw
M2I2MWVkZTQ2NGEzYzE3NWQyYmNkLi5jMTA5OTQwMjBiN2VhNTZlYzQ3ODc4N2M4MzM5YmJkNDc4
MjgxMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK2NsYXNz
IFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVyOwogY2xhc3Mg
U2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI7CkBA
IC0zNyw3ICszOSw3IEBAIGNsYXNzIFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7CiAKIGNsYXNzIE1h
aW5GcmFtZSBmaW5hbCA6IHB1YmxpYyBGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxNYWluRnJhbWU+IGNyZWF0ZShQYWdlJiwgRnJhbWVMb2FkZXJDbGllbnQmKTsKKyAgICBzdGF0
aWMgUmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwog
CiAgICAgdmlydHVhbCB+TWFpbkZyYW1lKCk7CiAKQEAgLTU2LDggKzU4LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0TGF0Y2hpbmdTdGF0ZSgpOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
IAorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7IH0KKwogcHJpdmF0ZToK
LSAgICBNYWluRnJhbWUoUGFnZSYsIEZyYW1lTG9hZGVyQ2xpZW50Jik7CisgICAgTWFpbkZyYW1l
KFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdm9pZCBkcm9wQ2hpbGRyZW4oKTsK
IApAQCAtNzEsNiArNzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZU92ZXJsYXlDb250cm9sbGVyPiBtX3BhZ2VPdmVybGF5
Q29udHJvbGxlcjsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDsKIH07CiAKIGlubGluZSBib29sIEZyYW1lOjppc01haW5GcmFtZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCBjMTFiYjAwZjFjOWJkZWI0OWJlMzg1MGYwNjNmMzlkOWEx
M2IxYjRlLi4yNjM2MTY4MmJjMTI5NzVjZTBjNDlkODU3YTE4NTYxNmJhZmVhZjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3Rp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmgiCiAjaW5jbHVk
ZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
ICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMjQsMzQgKzEyNSwzNCBAQCBzdGF0aWMgdm9pZCBuZXR3
b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpCiAKIHN0YXRpYyBjb25zdCBWaWV3U3RhdGU6
OkZsYWdzIFBhZ2VJbml0aWFsVmlld1N0YXRlID0gVmlld1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3
U3RhdGU6OklzSW5XaW5kb3c7CiAKLVBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRz
KQotICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNs
aWVudHMuY2hyb21lQ2xpZW50KSkKK1BhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VD
b25maWd1cmF0aW9uKQorICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0
aGlzLCAqcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50KSkKICAgICAsIG1fZHJhZ0NhcmV0
Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERyYWdDYXJldENvbnRyb2xsZXI+KCkpCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3Vu
aXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKKyAg
ICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRo
aXMsICpwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9mb2N1
c0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxGb2N1c0NvbnRyb2xsZXI+KCp0aGlzLCBQYWdl
SW5pdGlhbFZpZXdTdGF0ZSkpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2Nv
bnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxl
cj4oKnRoaXMsICpwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCkpCisgICAgLCBtX2NvbnRl
eHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4o
KnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCkpCiAjZW5kaWYKICAg
ICAsIG1fdXNlcklucHV0QnJpZGdlKHN0ZDo6bWFrZV91bmlxdWU8VXNlcklucHV0QnJpZGdlPigq
dGhpcykpCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgLCBtX3JlcGxheUNvbnRyb2xsZXIo
c3RkOjptYWtlX3VuaXF1ZTxSZXBsYXlDb250cm9sbGVyPigqdGhpcykpCiAjZW5kaWYKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKHN0ZDo6bWFrZV91
bmlxdWU8SW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNs
aWVudCkpCisgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNw
ZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50
KSkKICNlbmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgLCBtX3BvaW50ZXJMb2Nr
Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMp
KQogI2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAg
LCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNsaWVu
dHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVy
KHN0ZDo6bWFrZV91bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywgcGFnZUNsaWVu
dHMuYmFja0ZvcndhcmRDbGllbnQpKQotICAgICwgbV9tYWluRnJhbWUoTWFpbkZyYW1lOjpjcmVh
dGUoKnRoaXMsICpwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQorICAgICwg
bV9wcm9ncmVzcyhzdGQ6Om1ha2VfdW5pcXVlPFByb2dyZXNzVHJhY2tlcj4oKnBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCkpCisgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VD
b25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50KSkKKyAgICAsIG1fbWFpbkZyYW1lKE1haW5G
cmFtZTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbikpCiAgICAgLCBtX3RoZW1lKFJl
bmRlclRoZW1lOjp0aGVtZUZvclBhZ2UodGhpcykpCi0gICAgLCBtX2VkaXRvckNsaWVudChwYWdl
Q2xpZW50cy5lZGl0b3JDbGllbnQpCi0gICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5w
bHVnSW5DbGllbnQpCi0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KHBhZ2VDbGllbnRz
LnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KQorICAgICwgbV9lZGl0b3JDbGllbnQocGFnZUNvbmZp
Z3VyYXRpb24uZWRpdG9yQ2xpZW50KQorICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3Vy
YXRpb24ucGx1Z0luQ2xpZW50KQorICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdl
Q29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKICAgICAsIG1fc3ViZnJhbWVD
b3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVz
VGhyb3VnaEVsZW1lbnRzKHRydWUpCkBAIC0xOTIsNyArMTkzLDcgQEAgUGFnZTo6UGFnZShQYWdl
Q2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5n
KGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50
cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCisgICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChw
YWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCiAgICAgLCBtX3NjcmlwdGVk
QW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFnZVRocm90dGxlcigqdGhpcywg
bV92aWV3U3RhdGUpCiAgICAgLCBtX2NvbnNvbGVDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdl
Q29uc29sZUNsaWVudD4oKnRoaXMpKQpAQCAtMjAxLDggKzIwMiw4IEBAIFBhZ2U6OlBhZ2UoUGFn
ZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdh
dGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFs
cyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5n
QmVmb3JlVW5sb2FkRXZlbnQoMCkKLSAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6
bW92ZShwYWdlQ2xpZW50cy51c2VyQ29udGVudENvbnRyb2xsZXIpKQotICAgICwgbV92aXNpdGVk
TGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlKSkKKyAgICAs
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2Vy
Q29udGVudENvbnRyb2xsZXIpKQorICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShw
YWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlKSkKICAgICAsIG1fc2Vzc2lvbklEKFNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9pc0Nsb3NpbmcoZmFsc2UpCiAg
ICAgLCBtX2lzUGxheWluZ0F1ZGlvKGZhbHNlKQpAQCAtMTY1NSwyNCArMTY1Niw0IEBAIHZvaWQg
UGFnZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIHZpZXctPnBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAK
LVBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCi0gICAgOiBhbHRlcm5hdGl2ZVRleHRD
bGllbnQobnVsbHB0cikKLSAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQotI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQotICAgICwgY29udGV4dE1lbnVDbGllbnQobnVsbHB0cikKLSNlbmRpZgot
ICAgICwgZWRpdG9yQ2xpZW50KG51bGxwdHIpCi0gICAgLCBkcmFnQ2xpZW50KG51bGxwdHIpCi0g
ICAgLCBpbnNwZWN0b3JDbGllbnQobnVsbHB0cikKLSAgICAsIHBsdWdJbkNsaWVudChudWxscHRy
KQotICAgICwgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIpCi0gICAgLCB2YWxpZGF0aW9u
TWVzc2FnZUNsaWVudChudWxscHRyKQotICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51
bGxwdHIpCi17Ci19Ci0KLVBhZ2U6OlBhZ2VDbGllbnRzOjp+UGFnZUNsaWVudHMoKQotewotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFmN2Y4YWNjNDM0MDdj
MTZjYzZiMWFkYTQzYjA5YzE5MmY1OGY4ZTMuLjdmNDI0YjM1YjU1OWUyYzIwNGI5ZjkxNWFiYjEw
MWM3YjA4ODA0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MSw2ICs4MSw3IEBAIGNsYXNzIEluc3Bl
Y3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNYWluRnJhbWU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlz
dGVuZXI7CiBjbGFzcyBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbjsKK2NsYXNzIFBhZ2VDb25m
aWd1cmF0aW9uOwogY2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJs
ZTsKIGNsYXNzIFBhZ2VHcm91cDsKQEAgLTExOSwzMyArMTIwLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2Jh
bENoYW5nZUluRW52aXJvbm1lbnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBj
bGVhclByZXZpb3VzSXRlbUZyb21BbGxQYWdlcyhIaXN0b3J5SXRlbSopOwogCi0gICAgLy8gSXQg
aXMgdXAgdG8gdGhlIHBsYXRmb3JtIHRvIGVuc3VyZSB0aGF0IG5vbi1udWxsIGNsaWVudHMgYXJl
IHByb3ZpZGVkIHdoZXJlIHJlcXVpcmVkLgotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyB0byBQ
YWdlQ29uZmlndXJhdGlvbiBhbmQgbW92ZSBpdCB0byBpdHMgb3duIGNsYXNzLgotICAgIHN0cnVj
dCBQYWdlQ2xpZW50cyB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRz
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBXRUJDT1JF
X0VYUE9SVCBQYWdlQ2xpZW50cygpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNsaWVu
dHMoKTsKLQotICAgICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENs
aWVudDsKLSAgICAgICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQ7Ci0jaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgICAgIENvbnRleHRNZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVu
dDsKLSNlbmRpZgotICAgICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKLSAgICAgICAg
RHJhZ0NsaWVudCogZHJhZ0NsaWVudDsKLSAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0
b3JDbGllbnQ7Ci0gICAgICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OwotICAgICAgICBQ
cm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNzVHJhY2tlckNsaWVudDsKLSAgICAgICAgUmVm
UHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVudDsKLSAgICAgICAgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwotICAgICAgICBGcmFt
ZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lOwotCi0gICAgICAgIFJlZlB0
cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29udHJvbGxlcjsKLSAgICAgICAg
UmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7Ci0gICAgfTsKLQotICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2UoUGFnZUNsaWVudHMmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBQYWdlKFBhZ2VDb25maWd1cmF0aW9uJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgflBhZ2UoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQ2NF90IHJlbmRlclRyZWVT
aXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ4OWExODJjMzg1NWQ1OTdkNDc1MjkzNWE1NDg3YjNiMjc4ODNkMDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlBhZ2VDb25maWd1cmF0aW9uLmgiCisKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgor
I2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5r
U3RvcmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlQ29uZmlndXJhdGlvbjo6UGFn
ZUNvbmZpZ3VyYXRpb24oKQorICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCisg
ICAgLCBjaHJvbWVDbGllbnQobnVsbHB0cikKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAg
ICAsIGNvbnRleHRNZW51Q2xpZW50KG51bGxwdHIpCisjZW5kaWYKKyAgICAsIGVkaXRvckNsaWVu
dChudWxscHRyKQorICAgICwgZHJhZ0NsaWVudChudWxscHRyKQorICAgICwgaW5zcGVjdG9yQ2xp
ZW50KG51bGxwdHIpCisgICAgLCBwbHVnSW5DbGllbnQobnVsbHB0cikKKyAgICAsIHByb2dyZXNz
VHJhY2tlckNsaWVudChudWxscHRyKQorICAgICwgdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQobnVs
bHB0cikKKyAgICAsIGxvYWRlckNsaWVudEZvck1haW5GcmFtZShudWxscHRyKQoreworfQorCitQ
YWdlQ29uZmlndXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkKK3sKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWI3MjNhZTZjZDQ2
NGY5MjAzYmU2MzU1MTQwMTc0NjFmMWVjOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgUGFnZUNvbmZpZ3VyYXRpb25faAorI2RlZmluZSBQYWdlQ29uZmlndXJhdGlvbl9o
CisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Owor
Y2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CitjbGFzcyBDaHJvbWVDbGllbnQ7CisjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCitjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKKyNlbmRpZgorY2xhc3Mg
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CitjbGFzcyBEcmFnQ2xpZW50OworY2xhc3MgRWRpdG9y
Q2xpZW50OworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7
CitjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CitjbGFz
cyBVc2VyQ29udGVudENvbnRyb2xsZXI7CitjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsK
K2NsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CisKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CisKKyAgICBBbHRl
cm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKKyAgICBDaHJvbWVDbGll
bnQqIGNocm9tZUNsaWVudDsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBDb250ZXh0
TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQ7CisjZW5kaWYKKyAgICBFZGl0b3JDbGllbnQq
IGVkaXRvckNsaWVudDsKKyAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50OworICAgIEluc3BlY3Rv
ckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OworICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50
OworICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworICAg
IFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGllbnQ7CisgICAgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OworICAgIEZyYW1lTG9h
ZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWU7CisgICAgRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworCisgICAgUmVmUHRyPFVzZXJDb250
ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyOworICAgIFJlZlB0cjxWaXNpdGVk
TGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDVjODhhNzRmZDJjMWZkYmIwNjcw
OWQxZjhkODk5MDIyNGQwMjZkOTUuLjQ5YjkwYmUzNzEyMjUxNDBkNjg2NTNjMDlkNjYxODcyOTBk
OTkxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24u
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
ICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgpAQCAtMzM5LDEwICszNDAsMTAgQEAgYm9vbCBTVkdJ
bWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgewotICAgICAgICBQYWdlOjpQYWdlQ2xp
ZW50cyBwYWdlQ2xpZW50czsKLSAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVu
dHMpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICAg
ICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOwogICAgICAgICBtX2No
cm9tZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHSW1hZ2VDaHJvbWVDbGllbnQ+KHRoaXMp
OwotICAgICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBtX2Nocm9tZUNsaWVudC5nZXQo
KTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbV9jaHJvbWVDbGll
bnQuZ2V0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgU1ZHIGVuZHMgdXAgbG9hZGlu
ZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdvcmxkLgogICAgICAgICAvLyBUaGUgQ2FjaGUg
Y29kZSBkb2VzIG5vdCBrbm93IGFib3V0IENhY2hlZEltYWdlcyBob2xkaW5nIEZyYW1lcyBhbmQK
QEAgLTM1MCw3ICszNTEsNyBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERh
dGFSZWNlaXZlZCkKICAgICAgICAgLy8gVGhpcyB3aWxsIGJlY29tZSBhbiBpc3N1ZSB3aGVuIFNW
R0ltYWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90aGVyCiAgICAgICAgIC8vIFNWR0ltYWdlIG9i
amVjdHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVjYXVzZSBTVkdJbWFnZSBjYW4gb25seSBiZQog
ICAgICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2ZWwgZG9jdW1lbnQuCi0gICAgICAgIG1fcGFn
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMpOworICAgICAgICBtX3BhZ2Ug
PSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0aW9uKTsKICAgICAgICAgbV9w
YWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0
aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA0ODQ4NzExOTRhNDg0YmUxNDUxZGQ5MGY4Y2QyNmFlYmJmOTQ3MTg5Li4x
Zjg0NDhjZmRmM2Y2NjRmMTIyOTcxNzU1ZGZlYmM5ZDNmZjZhMGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTUsNiArMTU1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uZmlndXJh
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFj
a2VyLmg+CkBAIC05MTgsMjMgKzkxOSwyMyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXpl
R2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBkaWRPbmVUaW1lSW5pdGlhbGl6
YXRpb24gPSB0cnVlOwogICAgIH0KIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRz
OworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOwogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250
ZXh0TWVudUNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQg
PSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRl
eHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHNlbGYpOwogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFn
Q2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2Vi
RHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKICNlbHNlCi0g
ICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxm
KTsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xp
ZW50KHNlbGYpOwotI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdl
YkVkaXRvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGll
bnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRz
LmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAg
ICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KHNlbGYpOwotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVu
dHMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVD
bGllbnRJT1Moc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0g
bmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKKyNlbmRpZgorICAgIHBhZ2VDb25maWd1cmF0
aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNv
bmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4
dENsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxm
KTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDb25maWd1cmF0aW9uKTsKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8o
X3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudChzZWxmKSk7CiAjZW5kaWYK
QEAgLTExNTUsMTYgKzExNTYsMTYgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICBbZnJhbWVWaWV3IHJlbGVhc2VdOwogCiAgICAg
Ci0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgcGFnZUNsaWVudHMuY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKKyAgICBQYWdlQ29uZmln
dXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVD
bGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNl
bGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVu
dChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJF
ZGl0b3JDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3
IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMu
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxm
KTsKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JD
bGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZy
YW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLnBy
b2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7
CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ29uZmlndXJhdGlvbik7CiAgICAg
CiAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzhhNjFkZTUwNDlhNzE2ZGQ5NDBjMzgzODI0ODkxZmFlMDlhOThlMC4uNjFmN2EzZGRiNDhhNjJk
ZTYzZTViODQ3OTA4ODYzMjUyZjdlYzFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU4Myw2ICsxNTgzLDggQEAKIAkJQzVG
QTFFRDQxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVGQTFFRDIxOEUxMDYyMjAw
QjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovOyB9OwogCQlDRDAwM0E1MjE5RDQ5
QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1MDE5RDQ5QjVEMDA1QUJD
RTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi87IH07CiAJCUNEMDAzQTUzMTlE
NDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJD
RTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovOyB9OworCQlDRDE5QTI2RDFBMTNF
ODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2
NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKKwkJQ0QxOUEyNkUx
QTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4
RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKIAkJQ0Q1QzY2QTAx
MzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUUx
MzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
ICovOyB9OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q2N0QzMEUxNUMwOEY5QTAwODQzQURGIC8qIElu
amVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjdEMzA4MTVDMDdCRTAwMDg0M0FE
RiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi87IH07
CkBAIC0zNjg3LDYgKzM2ODksOCBAQAogCQlDNUZBMUVEMjE4RTEwNjIyMDBCM0Y0MDIgLyogV0tB
aXJQbGF5Um91dGVQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0FpclBsYXlS
b3V0ZVBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTAxOUQ0
OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7
IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNjkx
QTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2
NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjdEMzA4MTVDMDdCRTAwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzQzLDYgKzU3NDcsOCBAQAogCQkJ
CUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKIAkJ
CQlDRURCQTg0NTE5RkRBMDBBMDA2ODY2QTUgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNw
cCAqLywKIAkJCQlDRURCQTg0NjE5RkRBMDBBMDA2ODY2QTUgLyogV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmggKi8sCisJCQkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCAqLywKKwkJCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyog
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViQ29y
ZVN1cHBvcnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzUwOCw2ICs3NTE0LDcg
QEAKIAkJCQkxQTY1MDlDRTE4QjQxNDYyMDA2MTQzMzIgLyogV0tQcm9jZXNzUG9vbFByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOTAxQTBBMkRCODAwNzhDMDZBIC8q
IE5ldHdvcmtDYWNoZUVuY29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMTlBMjZFMUExM0U4
MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NUU3NDlFQzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTI5MzVEODEy
ODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKQEAg
LTg4OTgsNiArODkwNSw3IEBACiAJCQkJMUExRTA5MzMxODg2MUQzODAwRDJEQzQ5IC8qIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTkwQzFGNTEyNjRG
RDcxMDAzRTQ0RDQgLyogRmluZENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5
MTAwNzIxMjY2NzVDNDAwMTg0MkY1IC8qIFRleHRJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTgxRDhDMTMxOUY3RUYwMDI0MTkxMCAvKiBG
b250SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUE0OTE4MjA4Q0Q2MDAzMTAwN0Eg
LyogV0tOU1N0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEI3MTkyNjlFNkQwMEI2
MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggNDE1NGQwM2VlYjZkOGVhYWRiNzlhZjM3Y2E3
NjVhNWE2MWYzNGU4MC4uYWI1YWNmYjUwMTc0OTdhY2VjMDM1YjA2MTU4MDFmZDQ4ZDkwMTBlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaApAQCAtMjgsNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2UuaD4KIAorZW51bSB7CisgICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzID0g
MCwKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwgPSAxLAorICAgIGtXS0RpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0Tm9vcCA9IDIsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0RpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZTsKKwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiBzdWNjZXNzLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0Rp
YWdub3N0aWNNZXNzYWdlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2Us
IFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSBy
ZXN1bHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0
cmluZ1JlZiB2YWx1ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0
IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwpAQCAtNDIsMTMgKzUyLDMwIEBAIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjAgewogICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2U7CiB9IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjA7CiAKLWVu
dW0geyBrV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRDdXJyZW50VmVyc2lvbiBX
S19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFk
IikgPSAwIH07Cit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudFYxIHsKKyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAg
V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQ7CisKKyAgICAvLyBWZXJz
aW9uIDEuCisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZTsKKyAgICBXS0J1bmRs
ZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAgICBXS0J1bmRsZVBhZ2VMb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOworfSBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudFYxOworCitlbnVtIHsga1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lv
biBudW1iZXIgaW5zdGVhZCIpID0gMSB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25z
dCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudEluZm87CiAKICAgICAvLyBWZXJzaW9uIDAuCi0gICAgV0tCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2dEaWFnbm9zdGljTWVzc2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdl
RGVwcmVjYXRlZDsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFn
bm9zdGljTWVzc2FnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlOworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdENhbGxiYWNrICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVz
dWx0OworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7CiB9IFdL
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IFdLX0RFUFJFQ0FURUQoIlVzZSBhbiBl
eHBsaWNpdCB2ZXJzaW9uZWQgc3RydWN0IGluc3RlYWQiKTsKIAogI2VuZGlmIC8vIFdLQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKaW5kZXggMTc2
Y2E2Njc3ZjQ2MTg0NDlkMjU3ZmYyNzJmYjdlNTBmYTc3MTA2NS4uOWFiODZmOTMzYTAyZGYxZjdj
OGMzMTcyYWZiNTNiYjU1MWM0Y2YwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTMxLDExICsz
MSwzMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSogcGFn
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25z
dCBTdHJpbmcmIHN1Y2Nlc3MpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBT
dHJpbmcmIHN1Y2Nlc3MpCit7CisgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2Fn
ZURlcHJlY2F0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGlj
TWVzc2FnZURlcHJlY2F0ZWQodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9B
UEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgdG9BUEkoc3VjY2Vzcy5pbXBsKCkpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKCFt
X2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwo
KSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHN1Y2Nlc3MuaW1wbCgpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2Fn
ZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5p
bXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodG9B
UEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgp
KSwgcmVzdWx0LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVk
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX2NsaWVu
dC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
Y2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRvQVBJKHBhZ2UpLCB0b0FQSSht
ZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHZhbHVlLmlt
cGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApp
bmRleCBkZGY4MzgwMzlhYjY4Y2QwMDQ3NmI0MWZkMmE3OGYyOWYwZTdmYTVkLi5iYjZlYWVmNWUw
Yjg5ZWM2NGNkNmIyYWQyN2JjNGViMzUyOGU3MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0zMyw3
ICszMyw3IEBACiAKIG5hbWVzcGFjZSBBUEkgewogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4gewotICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwPiBWZXJz
aW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRWMCwgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMT4gVmVyc2lv
bnM7CiB9OwogfQogCkBAIC00NSw3ICs0NSwxMCBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBJ
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1YmxpYyBBUEk6OkNs
aWVudDxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsKIHB1YmxpYzoK
LSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vzcyk7
CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQoV2ViUGFnZSosIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5n
JiBzdWNjZXNzKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1
bHRUeXBlKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgdmFsdWUpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggMmE0M2VkZTcwZTQyODYzMGQxNDRkZGE5Y2YwZTUyYWVkMDZmYzQ5
Mi4uNDZkZGU4Yzg5YTFjMDIxNzgzZjI4Y2FlYzVlMzkyMTRmNjBiOTYxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtOTg5LDE0ICs5ODksNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKICAgICBtX3BhZ2Ut
Pm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpCi17Ci0gICAgaWYg
KCFtX3BhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1fcGFnZSwgbWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHN1Y2Nlc3MpOwotfQotCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpwbHVn
SW5TdGFydExhYmVsVGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkucGx1Z0luU3RhcnRMYWJlbFRp
dGxlKG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE2NmM0ZWY5OWQ1Zjc4MWFl
Yjk2MmM0MzFmYzY3YzIzY2MxMGEwZmUuLmMzYzc3YTFjYmVlZTYwMGY2ODQzODNhYmJhYzM3NGIy
ZTRjN2U2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjg2LDggKzI4Niw2IEBAIHByaXZh
dGU6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
dW5zaWduZWQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29u
c3QgU3RyaW5nJiBzdWNjZXNzKSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJ
blN0YXJ0TGFiZWxUaXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0
cmFTdHlsZVNoZWV0KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlN2M5YjkzODFlN2ZmNzI5YjcxOTFjNDQz
NzI2NDM5ZTAxY2FiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtMCww
ICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdlYlBhZ2UmIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6On5XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3Jl
UGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsK
K30KKwordm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkxvZ1Jlc3VsdFR5cGUgcmVz
dWx0KQoreworICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3Rl
ZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpOworfQorCit2b2lk
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9w
YWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWIxMDE2MmFmZjIzYzdiNGE0ZmJmMDVhMDk1ZjE1NmY3
MTIzMjNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUg
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJs
aWM6CisgICAgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV2ViUGFnZSYpOworICAgIHZpcnR1
YWwgfldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIExvZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwor
CisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMmFhNDk3MDkwZDVjZGEw
N2RiNzVjMTJjMzBjNjk4MGYwNDAxM2JjLi4xMzRmMzZiMTMwYzcwNGZjOWFiMGYzMzg5OWVlMDY0
MDM2NDA4ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0NsaWVudC5o
IgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgpAQCAtMTMxLDYgKzEzMiw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlRXZlbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25m
aWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVGhyb3R0bGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
dWdpbkRvY3VtZW50Lmg+CkBAIC0zMzgsMzEgKzM0MCwzMiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKICAgICBTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1
ZSk7CiAjZW5kaWYKIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwotICAgIHBh
Z2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CisgICAg
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb247CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlzKTsKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBX
ZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0
TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKICNlbmRpZgotICAg
IHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7Cisg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudCh0
aGlzKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFn
Q2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50
cy5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhp
cyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQgPSBXZWJCYWNrRm9y
d2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
bV9pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpOwotICAgIHBh
Z2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OworICAgIHBhZ2VD
b25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OwogI2VuZGlm
CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQotICAgIHBhZ2VDbGllbnRzLmFsdGVybmF0
aXZlVGV4dENsaWVudCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQodGhpcyk7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0
aXZlVGV4dENsaWVudCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLnBsdWdJbkNsaWVu
dCA9IG5ldyBXZWJQbHVnSW5DbGllbnQodGhpcyk7Ci0gICAgcGFnZUNsaWVudHMubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDbGll
bnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQo
KnRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVn
SW5DbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9u
LnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoKnRo
aXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbmV3
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCp0aGlzKTsKIAotICAgIHBhZ2VDbGllbnRzLnVz
ZXJDb250ZW50Q29udHJvbGxlciA9IG1fdXNlckNvbnRlbnRDb250cm9sbGVyID8gJm1fdXNlckNv
bnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSA6IG51bGxwdHI7Ci0gICAg
cGFnZUNsaWVudHMudmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVy
OjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRCk7CisgICAgcGFnZUNv
bmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyID0gbV91c2VyQ29udGVudENvbnRyb2xs
ZXIgPyAmbV91c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpIDog
bnVsbHB0cjsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtU
YWJsZUlEKTsKIAotICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVu
dHMpOworICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRp
b24pOwogCiAgICAgbV9kcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVhOjpjcmVhdGUoKnRoaXMsIHBh
cmFtZXRlcnMpOwogICAgIG1fZHJhd2luZ0FyZWEtPnNldFBhaW50aW5nRW5hYmxlZChmYWxzZSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241634</attachid>
            <date>2014-11-14 15:38:31 -0800</date>
            <delta_ts>2014-11-17 11:24:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141114153839.patch</filename>
            <type>text/plain</type>
            <size>76338</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2ZTZjZTIzODg5Y2Nj
NjYzYmE0OWM3NDg1YjcxYzk0NTFmZWU4Zi4uY2YyMDVkOTkxMDU1ZjAzOTBlZDZkZGE5YmIwNDI1
OGZkMzg1ZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTExICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBUYWJsZSByb3dzIHJlcGFpbnQgZW50aXJlIHRhYmxlIHdoZW4gdGhlaXIg
YmFja2dyb3VuZCBjb2xvciBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGUxNGE2NzNiNmJl
NTQwNjY4MjBhOWIwMTlhMzZiMTMwMGUxYThmODEuLjllYTkwZDBjYjg3N2U0MTk5ZTVkMjI4N2Vj
MjJlYWFiYjlhMmZlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0x
MS0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0
IG11bHRpcGxlIHNpZ25hdHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgaGFz
IGJlZW4gcmVuYW1lZCBQYWdlQ29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERv
Y3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNC0x
MS0xNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgV0sxOiBXZWJw
YWdlIHByZXZpZXcgY2FuIGNvbWUgdXAgaW4gd3JvbmcgbG9jYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
NDY3MTE0NWVlOGE2NGU0MmY5YTI3MTc2ODZiOTZhZWQ0NzIzM2M4Li4xMzU2YjVjZjI2ZTA3YmFj
ODJmZjk1MDQwNDIzZjBkYTljNzA2NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIw
MTQtMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3Vw
cG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2luZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCB0aGUgZXhpc3Rp
bmcgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgaW50ZXJmYWNlIGJ5IGRlcHJl
Y2F0aW5nCisgICAgICAgIHRoZSBvcmlnaW5hbCBsb2dEaWFnbm9zdGljTWVzc2FnZSBjbGllbnQg
bWV0aG9kIGluIFYxIGFuZCBhZGRpbmcgdGhyZWUgbmV3LAorICAgICAgICBleHBsaWNpdCBjbGll
bnQgbWV0aG9kcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0
ZWQpOgorICAgICAgICAgICAgUmVuYW1lZCBmcm9tIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkuCisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhlIGNsaWVudC4KKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxlIGNvbnN0cnVjdG9yLgorICAg
ICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6fldlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50KTogU2ltcGxlIGRlc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhl
IGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6
IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQuCisKIDIwMTQtMTEtMDYgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV1bV0syXSBTaW1wbGlmeSB0aGUgTWVk
aWFLZXlzIG9yaWdpbiBkZWxldGlvbiBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMDEz
NGEwYTRkMGMxNmMzYWYxMDljZTgwNmIzNzcwMGJiYjM1MzQwLi5lNmJjMjcxYjQwNGJiN2M2ZDcw
OWY4ZTMxNzc0YjYwNWZkZmZkYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTkwOSw2ICsx
OTA5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnku
Y3BwCiAgICAgcGFnZS9QYWdlLmNwcAogICAgIHBhZ2UvUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9r
ZW4uY3BwCisgICAgcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKICAgICBwYWdlL1BhZ2VDb25z
b2xlQ2xpZW50LmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxZDM5NDRjOGNlYjFmMzg1
Y2E5Mzg4NjMzNTg2Y2E5NjEwMGE2MTI4Li5lYTE5ZGJhNzg3NDM4MTU1MDM0YjM5MjNjYzk5NWNj
YTUxNTFlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTEzMyw4ICsxMTMzLDYgQEAgX19a
TjdXZWJDb3JlNE5vZGUxOHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5
c2V0TmVlZHNTdHlsZVJlY2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKIF9fWk43V2ViQ29yZTRO
b2RlNnJlbW92ZUVSaQogX19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJp
bmdFaAotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgotX19aTjdXZWJDb3JlNFBh
Z2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYgogX19aTjdXZWJD
b3JlNFBhZ2UxMnNldFNlc3Npb25JREVOU185U2Vzc2lvbklERQpAQCAtMTE4MSw3ICsxMTc5LDcg
QEAgX19aTjdXZWJDb3JlNFBhZ2UzN3NldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1v
ZGVFYgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNG
cmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlNFBhZ2U4c2V0TXV0ZWRFYgogX19aTjdXZWJDb3Jl
NFBhZ2U5aW5pdEdyb3VwRXYKLV9fWk43V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRz
RQorX19aTjdXZWJDb3JlNFBhZ2VDMUVSTlNfMTdQYWdlQ29uZmlndXJhdGlvbkUKIF9fWk43V2Vi
Q29yZTRQYWdlRDFFdgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5kZWRSZWN0RVJLTlNfMTZG
bG9hdFJvdW5kZWRSZWN0RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRlZ3lFCiBfX1pON1dlYkNvcmU0
UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBf
MTlSb3VuZGVkUmVjdFN0cmF0ZWd5RQpAQCAtMjMwOCw2ICsyMzA2LDggQEAgX19aTjdXZWJDb3Jl
MTZKU1hNTEh0dHBSZXF1ZXN0OXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
MTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgogX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29r
aWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25FCiBfX1pON1dlYkNvcmUxNmVuY2xvc2lu
Z0ludFJlY3RFUks3X05TUmVjdAorX19aTjdXZWJDb3JlMTdQYWdlQ29uZmlndXJhdGlvbkMxRXYK
K19fWk43V2ViQ29yZTE3UGFnZUNvbmZpZ3VyYXRpb25EMUV2CiBfX1pON1dlYkNvcmUxN1Njcm9s
bGJhclRoZW1lTWFjMjNzZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2Vi
Q29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyNHJlbW92ZU92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5
ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyN3NldFVwT3ZlcmhhbmdBcmVhQmFj
a2dyb3VuZEVQN0NBTGF5ZXJSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZTdiZmFmOTlhMzJiODBhZGRlNDE4OWFm
NTExOGUzZWRmNWU4ODkuLmEzMDQxM2IwNzRjODE3OWFlOWU3M2U5NTdjZWQ2OWZiM2RjNjUzMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpA
QCAtNzE3Niw2ICs3MTc2LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3Jp
Z2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQ
YWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUFjdGl2aXR5
QXNzZXJ0aW9uVG9rZW4uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQ
YWdlQ29uZmlndXJhdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XFBhZ2VDb25zb2xlQ2xpZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOTMwOGJmOTMzNzZiYjMyYzQ2MmQwYjM0
NDQyYTg2NjBiZDA2NGM5Li40ZDEzZjU3MThlNTMxYzE3MDA0ZTFlZDNkY2I0ZGJhYTJhYjJiZDRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01NTg1LDYgKzU1ODUsNyBAQAogCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyog
QXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlv
bklPUy5jcHAgKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2Ny
ZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDE5QTI2
ODFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhE
NjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBN
ZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQTk4REMyMTYwMTRFRUUwMEZFQTNCMSAvKiBNZWRpYUtleU5lZWRlZEV2
ZW50LmNwcCAqLzsgfTsKIAkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHAgKi87IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpA
QCAtNTYyMSw2ICs1NjIyLDggQEAKIAkJQ0Q1NERFNEIxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlv
U2Vzc2lvbk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLzsg
fTsKIAkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY4RjE0
NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2
OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2OTAxNDc1QjY3ODAwMUQwQkQw
IC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovOyB9OworCQlDRDVFNUI1RjFBMTVDRTU0MDAwQzYw
OUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVFNUI2MDFBMTVGMTU2
MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQlDRDYwQzBDNjE5M0U4
N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFU
aW1lUVRLaXQubW0gKi87IH07CiAJCUNENjBDMEM3MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRp
bWVRVEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0LmggKi87IH07CiAJCUNE
NjFGRTY3MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkUxMTVCNUNFMjIw
MEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLzsgfTsKQEAgLTEzMDE0LDYgKzEz
MDE3LDcgQEAKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25J
T1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXVkaW9EZXN0aW5h
dGlvbklPUy5jcHA7IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEy
N0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2
NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUw
MTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJv
bGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgw
MDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMzA2MCw2ICsxMzA2NCw4IEBACiAJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIz
NiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBw
YXRoID0gaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9GaWxlUmVhZGVySU9TLmg7IHBh
dGggPSBpb3MvQXVkaW9GaWxlUmVhZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNv
bmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBD
NDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFUS2l0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZVFUS2l0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBN
ZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjYwOCw2
ICsxNjYxNCw4IEBACiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCAqLywK
IAkJCQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9r
ZW4uY3BwICovLAogCQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlB
c3NlcnRpb25Ub2tlbi5oICovLAorCQkJCUNENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdl
Q29uZmlndXJhdGlvbi5jcHAgKi8sCisJCQkJQ0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBh
Z2VDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlQ2xpZW50LmNwcCAqLywKIAkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyog
UGFnZUNvbnNvbGVDbGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4Mjk3MzQzMDBERTE3MjkgLyog
UGFnZURlYnVnZ2FibGUuY3BwICovLApAQCAtMTY3MDYsNiArMTY3MTQsNyBAQAogCQkJCUUxMjcx
QTEzMEVFRUM4MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuY3BwICovLAogCQkJCUUxMjcx
QTBBMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCAqLywKIAkJCQlFMTI3MUE1
MTBFRUVDRDFDMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlkbCAqLywKKwkJCQlDRDE5QTI2
NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzg0NCw2
ICsyMzg1Myw3IEBACiAJCQkJODU4QzM4MkMwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUQyOTBBQ0M3RDU1MDBERjAxRjEg
LyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUw
MzJERTEwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RUQwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8q
IERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5MjBBQzVENTM1MDA1
MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDM5
MCw2ICsyNDQwMCw3IEBACiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZLZXJu
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2RjcwMEMxQTM1OSAvKiBIUlRG
UGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEwOTE0NDk1MDAxMEQzNjEgLyog
SFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNENUU1QjVGMUExNUNFNTQw
MDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3
QUIwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODcxRDQ1RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTEFwcGxldEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4RUE3RDJFMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MQXJlYUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1ODgsNiArMjc1OTksNyBAQAogCQkJCTUyQjZDOUMy
MTVFM0Y0REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1MThERDc5MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NTNCRjREQzBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29u
ZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTUyNkMzODBBQjBBMTdFMDAwMzAy
RUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVBQ0FBOEUwQTlC
NzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDQTk2
RUIwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkNDdkNjRhZjg2MjMxYzk5
MTkyMWFmMjliY2Q1NGJjMzg2YjY1NzU1Li44ZTAyODMyZjg3N2JiODdhZWQwYWRjNTFmYzdmMmE5
YTY0NjM3OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmgiCiAjaW5jbHVkZSAiRGlzcGxheVNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgpAQCAtMTgyNSwyMCArMTgyNiwyMiBAQCBzdGF0aWMgdm9pZCBsb2dNZWRpYUxv
YWRSZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVkaWFFbmdpbmUsIGNvbnN0IFN0
cgogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVDbGll
bnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgIGNocm9tZUNsaWVu
dC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGlu
Z0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFpbEtl
eSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtl
eSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpGYWlsKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5KCksIG1lZGlhRW5naW5lLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFM
b2FkZWRLZXkoKSwgbWVkaWFFbmdpbmUpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuQW55TWVk
aWFFbmdpbmUoKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5
KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAg
ICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZU1lZGlhRW5naW5lS2V5KCks
IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNTZWVuTWVkaWFFbmdpbmUobWVk
aWFFbmdpbmUpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVu
Z2luZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBw
YWdlLT5zYXdNZWRpYUVuZ2luZShtZWRpYUVuZ2luZSk7CiB9CkBAIC01NzY2LDkgKzU3NjksMTIg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgp
IGNvbnN0CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dn
aW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisg
ICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBlbmdpbmUgPSBtX3BsYXllci0+ZW5naW5lRGVz
Y3JpcHRpb24oKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6bnVtYmVyKG1fcGxheWVy
LT5wbGF0Zm9ybUVycm9yQ29kZSgpKTsKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9h
ZEtleSgpLCBlbmdpbmUsIG1lc3NhZ2UpOworICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2lu
ZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0
Zm9ybUVycm9yQ29kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQmVo
YXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCAxZWQxZTk3NDc0OWJhMmQ5
YTNiMDQyNGUxNDBlYTUxZjY3ZTJkODJiLi5mMGNkNzVmYmU0ZDJjZGFhNjFiMzE2YzI3ZWRmNTJj
NDQwZDgwOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVk
ZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKQEAgLTgwOCw5ICs4MDksOSBA
QCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgpCiAgICAgaWYgKG1fb3Zlcmxh
eVBhZ2UpCiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdlLmdldCgpOwogCi0gICAgUGFnZTo6
UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNs
aWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VD
bGllbnRzKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBm
aWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CisgICAgbV9vdmVybGF5UGFn
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogCiAgICAgU2V0
dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLnNldHRpbmdzKCk7CiAgICAgU2V0dGluZ3MmIG92ZXJs
YXlTZXR0aW5ncyA9IG1fb3ZlcmxheVBhZ2UtPnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhlNzU0OTc2ZjAyZDM0ZmIyNzk5ZjY3MGNlZDZiY2U1
NDYyY2QwNWQuLjc2OWUwMjQwZjZiMTM5YjBiOWQzNTE4YmIxNjQzOTZjOWU3Yzg0YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQpAQCAtNDMsMzIgKzQ0LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCit2
b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJh
dGlvbikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1
bW15Q2hyb21lQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9ICZkdW1teUNo
cm9tZUNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSAm
ZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDb250ZXh0TWVudUNsaWVudD4gZHVtbXlDb250
ZXh0TWVudUNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9ICZkdW1t
eUNvbnRleHRNZW51Q2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRN
ZW51Q2xpZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0KCk7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RHJh
Z0NsaWVudD4gZHVtbXlEcmFnQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSAm
ZHVtbXlEcmFnQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQg
PSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8RW1wdHlFZGl0b3JDbGllbnQ+IGR1bW15RWRpdG9yQ2xpZW50OwotICAgIHBhZ2VDbGll
bnRzLmVkaXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29u
ZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSAmZHVtbXlFZGl0b3JDbGllbnQuZ2V0KCk7CiAKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlJbnNwZWN0b3JDbGllbnQ+IGR1bW15SW5zcGVj
dG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9ICZkdW1teUluc3Bl
Y3RvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQg
PSAmZHVtbXlJbnNwZWN0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRlckNsaWVudDsKLSAgICBw
YWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNs
aWVudC5nZXQoKTsKLSAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKwogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1
bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnBy
b2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dyZXNzVHJhY2tlckNsaWVudC5nZXQoKTsK
KworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
PiBkdW1teURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1bW15RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuZ2V0
KCk7CiB9CiAKIGNsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjMyMGM1OTk3Y2QzYzllMzE1MmRhYTJj
YjcxZTg0YzNiYWE4NjkwZC4uNDc0ZDE5YTdkZGVjYTFhNzU2Y2E0YmEzYmIxYzc1MGNjNGVjOTQ0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgpAQCAt
NjM0LDcgKzYzNSwxMyBAQCBjbGFzcyBFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudCA6IHB1Ymxp
YyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0Zpbmlz
aGVkKEZyYW1lJikgb3ZlcnJpZGUgeyB9CiB9OwogCi12b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRz
KFBhZ2U6OlBhZ2VDbGllbnRzJik7CitjbGFzcyBFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
IDogcHVibGljIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKKyAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2dSZXN1bHRUeXBlKSBvdmVycmlkZSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9Cit9OworCit2b2lk
IGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTE5NDA4YjU3ZjYyNjEzMmE5YWUzMmJk
NTA0NzU5OGQzYzVkMzdjOC4uODZkNzM3NGI4NDFjMzQ4OGM4YmE3NjMxNGZhZjNmNTg2ZjUwYmYz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBA
CiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCkBAIC0yMjY2LDcg
KzIyNjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJh
bWUoKQogICAgICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVs
bCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OmZhaWxLZXkoKSk7CisgICAgICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCog
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCgpOworICAgICAgICAgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OlBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6RmFp
bCk7CiAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggNWMzNzc4OTFiNjQyNmQ1YmI1ZTdlOTQzZjQ2MTg4
OGY2YjlhMTEyYy4uM2EyNjBkN2Q0MzI5YjljNjk4MTBhMDQ1NDIwY2U2ZTFkZGNiMTYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5Eb2N1
bWVudC5oIgpAQCAtMTkyLDE0ICsxOTQsMTcgQEAgc3RhdGljIHZvaWQgbG9nUGx1Z2luUmVxdWVz
dChQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHUKICAg
ICBTdHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2UtPnBsdWdpbkRhdGEoKS5wbHVnaW5GaWxlRm9yTWlt
ZVR5cGUobmV3TUlNRVR5cGUpOwogICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9ICFwbHVnaW5GaWxl
ID8gbmV3TUlNRVR5cGUgOiBwbHVnaW5GaWxlOwogCi0gICAgQ2hyb21lQ2xpZW50JiBjaHJvbWVD
bGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKLSAgICBjaHJvbWVDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9h
ZGVkS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXko
KSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5t
YWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9h
ZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbik7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5B
bnlQbHVnaW4oKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpLCBl
bXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7Ci0gICAgCisg
ICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc0F0TGVhc3RPbmVQbHVnaW5LZXkoKSwgZW1w
dHlTdHJpbmcoKSk7CisKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5QbHVnaW4oZGVzY3JpcHRpb24p
KQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRh
aW5zUGx1Z2luS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNj
cmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA4NzhkZWU1ODM4
NzJhMTU3Yjc3N2ZkMjg4NmE1NzRkOGY3MzA0ZjQ2Li4zYmJkNmMwZDc0OGVjYTBlYThiMjE3NWQ5
MzJkY2UwZjJmZjU4NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxNiw4
ICs0MTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0KLQogICAgIHZpcnR1YWwgRmxv
YXRTaXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1cm4gRmxvYXRTaXplKDEwMCwg
MTAwKTsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEzOTM0NTE5OWViYTVkMjg4MTNkMjk5MjM0OTY1YzYw
MTAwMDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRf
aAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNj
cmlwdGlvbik7IH0KKworICAgIGVudW0gTG9nUmVzdWx0VHlwZSB7CisgICAgICAgIFBhc3MsCisg
ICAgICAgIEZhaWwsCisgICAgICAgIE5vb3AsCisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgeyBVTlVTRURfUEFSQU0obWVzc2Fn
ZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IFVOVVNFRF9QQVJBTShtZXNz
YWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHZhbHVlKTsgfQor
Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0K
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5G
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXggNzgwM2Y4
ODdlNzczMjVhY2I2YTJmMjA2ZWE1OTA4ZTY1OTc0ZjlkOC4uYzgwYjljMzcxZWY2YWQ1ZTBmOTc5
Y2I3NDc1NzlkZDQxMmVkODViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWlu
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
CisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JvbGxMYXRjaGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAi
V2hlZWxFdmVudERlbHRhVHJhY2tlci5oIgpAQCAtMzYsOCArMzcsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFtZShQYWdlJiBwYWdlLCBGcmFt
ZUxvYWRlckNsaWVudCYgY2xpZW50KQotICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgY2xpZW50
KQoraW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDogRnJhbWUocGFnZSwgbnVsbHB0ciwgKmNvbmZpZ3Vy
YXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKQogICAgICwgbV9zZWxmT25seVJlZkNvdW50
KDApCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9sYXRjaGluZ1N0YXRlKHN0ZDo6bWFrZV91
bmlxdWU8U2Nyb2xsTGF0Y2hpbmdTdGF0ZT4oKSkKQEAgLTQ3LDYgKzQ4LDcgQEAgaW5saW5lIE1h
aW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQp
CiAjZW5kaWYKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcihzdGQ6Om1ha2Vf
dW5pcXVlPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCiAgICAgLCBtX3BhZ2VPdmVybGF5Q29u
dHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4oKnRoaXMpKQor
ICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1cmF0aW9uLmRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50KQogewogfQogCkBAIC01NCw5ICs1Niw5IEBAIE1haW5GcmFtZTo6fk1haW5G
cmFtZSgpCiB7CiB9CiAKLVJlZlB0cjxNYWluRnJhbWU+IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2Um
IHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCitSZWZQdHI8TWFpbkZyYW1lPiBNYWlu
RnJhbWU6OmNyZWF0ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjbGllbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdlLCBjb25maWd1cmF0aW9uKSk7
CiB9CiAKIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seVJlZigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUu
aAppbmRleCBiZDZjZTc5MDNjY2NlNmI3NjkwM2I2MWVkZTQ2NGEzYzE3NWQyYmNkLi5jMTA5OTQw
MjBiN2VhNTZlYzQ3ODc4N2M4MzM5YmJkNDc4MjgxMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01haW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmgKQEAgLTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFn
ZU92ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI7CkBAIC0zNyw3ICszOSw3IEBAIGNsYXNzIFdoZWVsRXZl
bnREZWx0YVRyYWNrZXI7CiAKIGNsYXNzIE1haW5GcmFtZSBmaW5hbCA6IHB1YmxpYyBGcmFtZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNYWluRnJhbWU+IGNyZWF0ZShQYWdlJiwgRnJh
bWVMb2FkZXJDbGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBh
Z2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdmlydHVhbCB+TWFpbkZyYW1lKCk7CiAK
QEAgLTU2LDggKzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0TGF0Y2hpbmdTdGF0ZSgp
OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7IH0KKwogcHJpdmF0ZToKLSAgICBNYWluRnJhbWUoUGFnZSYsIEZyYW1lTG9h
ZGVyQ2xpZW50Jik7CisgICAgTWFpbkZyYW1lKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwog
CiAgICAgdm9pZCBkcm9wQ2hpbGRyZW4oKTsKIApAQCAtNzEsNiArNzUsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVj
ZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZU92ZXJs
YXlDb250cm9sbGVyPiBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcjsKKyAgICBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIH07CiAKIGlubGluZSBib29s
IEZyYW1lOjppc01haW5GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjMTFiYjAw
ZjFjOWJkZWI0OWJlMzg1MGYwNjNmMzlkOWExM2IxYjRlLi4yNjM2MTY4MmJjMTI5NzVjZTBjNDlk
ODU3YTE4NTYxNmJhZmVhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAK
ICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0
eUFzc2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1
ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMjQsMzQg
KzEyNSwzNCBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUp
CiAKIHN0YXRpYyBjb25zdCBWaWV3U3RhdGU6OkZsYWdzIFBhZ2VJbml0aWFsVmlld1N0YXRlID0g
Vmlld1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CiAKLVBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQotICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3Vu
aXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50KSkKK1BhZ2U6OlBh
Z2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQorICAgIDogbV9jaHJvbWUo
c3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21l
Q2xpZW50KSkKICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERy
YWdDYXJldENvbnRyb2xsZXI+KCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAsIG1f
ZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpw
YWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKKyAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtl
X3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xp
ZW50KSkKICNlbmRpZgogICAgICwgbV9mb2N1c0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxG
b2N1c0NvbnRyb2xsZXI+KCp0aGlzLCBQYWdlSW5pdGlhbFZpZXdTdGF0ZSkpCiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2Vf
dW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5jb250ZXh0
TWVudUNsaWVudCkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5p
cXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5jb250
ZXh0TWVudUNsaWVudCkpCiAjZW5kaWYKICAgICAsIG1fdXNlcklucHV0QnJpZGdlKHN0ZDo6bWFr
ZV91bmlxdWU8VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkp
CiAgICAgLCBtX3JlcGxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxSZXBsYXlDb250cm9s
bGVyPigqdGhpcykpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNw
ZWN0b3JDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQ29udHJvbGxlcj4oKnRo
aXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCisgICAgLCBtX2luc3BlY3RvckNvbnRy
b2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFnZUNv
bmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBv
aW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKFNl
dHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlxdWU8
UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkKLSAg
ICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QmFja0ZvcndhcmRD
b250cm9sbGVyPigqdGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQpKQotICAgICwg
bV9tYWluRnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsICpwYWdlQ2xpZW50cy5sb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUpKQorICAgICwgbV9wcm9ncmVzcyhzdGQ6Om1ha2VfdW5pcXVlPFBy
b2dyZXNzVHJhY2tlcj4oKnBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCkp
CisgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEJhY2tGb3J3
YXJkQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50
KSkKKyAgICAsIG1fbWFpbkZyYW1lKE1haW5GcmFtZTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmln
dXJhdGlvbikpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UodGhpcykp
Ci0gICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQpCi0gICAgLCBt
X3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQpCi0gICAgLCBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50KHBhZ2VDbGllbnRzLnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KQorICAg
ICwgbV9lZGl0b3JDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KQorICAgICwg
bV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50KQorICAgICwgbV92
YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudCkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShm
YWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpCkBAIC0xOTIs
NyArMTkzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWZuZGVm
IE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX2FsdGVy
bmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCisgICAg
LCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRl
eHRDbGllbnQpCiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAg
ICAsIG1fcGFnZVRocm90dGxlcigqdGhpcywgbV92aWV3U3RhdGUpCiAgICAgLCBtX2NvbnNvbGVD
bGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUNsaWVudD4oKnRoaXMpKQpAQCAtMjAx
LDggKzIwMiw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlm
CiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RF
OiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3Rp
bmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKLSAgICAsIG1f
dXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ2xpZW50cy51c2VyQ29udGVudENv
bnRyb2xsZXIpKQotICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ2xpZW50
cy52aXNpdGVkTGlua1N0b3JlKSkKKyAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6
bW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIpKQorICAgICwgbV92
aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0
b3JlKSkKICAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQog
ICAgICwgbV9pc0Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2lzUGxheWluZ0F1ZGlvKGZhbHNlKQpA
QCAtMTY1NSwyNCArMTY1Niw0IEBAIHZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCiAgICAgICAgIHZpZXctPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChzZXNz
aW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKLVBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50
cygpCi0gICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKLSAgICAsIGNocm9tZUNs
aWVudChudWxscHRyKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgICwgY29udGV4dE1l
bnVDbGllbnQobnVsbHB0cikKLSNlbmRpZgotICAgICwgZWRpdG9yQ2xpZW50KG51bGxwdHIpCi0g
ICAgLCBkcmFnQ2xpZW50KG51bGxwdHIpCi0gICAgLCBpbnNwZWN0b3JDbGllbnQobnVsbHB0cikK
LSAgICAsIHBsdWdJbkNsaWVudChudWxscHRyKQotICAgICwgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
KG51bGxwdHIpCi0gICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudChudWxscHRyKQotICAgICwg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCi17Ci19Ci0KLVBhZ2U6OlBhZ2VDbGll
bnRzOjp+UGFnZUNsaWVudHMoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IGFmN2Y4YWNjNDM0MDdjMTZjYzZiMWFkYTQzYjA5YzE5MmY1OGY4ZTMuLjdm
NDI0YjM1YjU1OWUyYzIwNGI5ZjkxNWFiYjEwMWM3YjA4ODA0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBA
IC04MSw2ICs4MSw3IEBAIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNYWluRnJh
bWU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBQYWdlQWN0aXZpdHlBc3Nl
cnRpb25Ub2tlbjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZUNvbnNvbGVD
bGllbnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJsZTsKIGNsYXNzIFBhZ2VHcm91cDsKQEAgLTExOSwz
MyArMTIwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHVwZGF0
ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjbGVhclByZXZpb3VzSXRlbUZyb21BbGxQYWdlcyhI
aXN0b3J5SXRlbSopOwogCi0gICAgLy8gSXQgaXMgdXAgdG8gdGhlIHBsYXRmb3JtIHRvIGVuc3Vy
ZSB0aGF0IG5vbi1udWxsIGNsaWVudHMgYXJlIHByb3ZpZGVkIHdoZXJlIHJlcXVpcmVkLgotICAg
IC8vIEZJWE1FOiBSZW5hbWUgdGhpcyB0byBQYWdlQ29uZmlndXJhdGlvbiBhbmQgbW92ZSBpdCB0
byBpdHMgb3duIGNsYXNzLgotICAgIHN0cnVjdCBQYWdlQ2xpZW50cyB7Ci0gICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0g
ICAgcHVibGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ2xpZW50cygpOwotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNsaWVudHMoKTsKLQotICAgICAgICBBbHRlcm5hdGl2ZVRl
eHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKLSAgICAgICAgQ2hyb21lQ2xpZW50KiBj
aHJvbWVDbGllbnQ7Ci0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgICAgIENvbnRleHRN
ZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudDsKLSNlbmRpZgotICAgICAgICBFZGl0b3JDbGll
bnQqIGVkaXRvckNsaWVudDsKLSAgICAgICAgRHJhZ0NsaWVudCogZHJhZ0NsaWVudDsKLSAgICAg
ICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7Ci0gICAgICAgIFBsdWdJbkNsaWVu
dCogcGx1Z0luQ2xpZW50OwotICAgICAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNz
VHJhY2tlckNsaWVudDsKLSAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBiYWNrRm9y
d2FyZENsaWVudDsKLSAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwotICAgICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9y
TWFpbkZyYW1lOwotCi0gICAgICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJD
b250ZW50Q29udHJvbGxlcjsKLSAgICAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0
ZWRMaW5rU3RvcmU7Ci0gICAgfTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2Uo
UGFnZUNsaWVudHMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2UoKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4OWExODJjMzg1NWQ1OTdkNDc1
MjkzNWE1NDg3YjNiMjc4ODNkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCisKKyNpbmNs
dWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oKQorICAgIDogYWx0ZXJu
YXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCisgICAgLCBjaHJvbWVDbGllbnQobnVsbHB0cikKKyNp
ZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICAsIGNvbnRleHRNZW51Q2xpZW50KG51bGxwdHIp
CisjZW5kaWYKKyAgICAsIGVkaXRvckNsaWVudChudWxscHRyKQorICAgICwgZHJhZ0NsaWVudChu
dWxscHRyKQorICAgICwgaW5zcGVjdG9yQ2xpZW50KG51bGxwdHIpCisgICAgLCBwbHVnSW5DbGll
bnQobnVsbHB0cikKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChudWxscHRyKQorICAgICwg
dmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQobnVsbHB0cikKKyAgICAsIGxvYWRlckNsaWVudEZvck1h
aW5GcmFtZShudWxscHRyKQoreworfQorCitQYWdlQ29uZmlndXJhdGlvbjo6flBhZ2VDb25maWd1
cmF0aW9uKCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwOWI3MjNhZTZjZDQ2NGY5MjAzYmU2MzU1MTQwMTc0NjFmMWVjOWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
QEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFnZUNvbmZpZ3VyYXRpb25faAor
I2RlZmluZSBQYWdlQ29uZmlndXJhdGlvbl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OworY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CitjbGFz
cyBDaHJvbWVDbGllbnQ7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCitjbGFzcyBDb250ZXh0
TWVudUNsaWVudDsKKyNlbmRpZgorY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CitjbGFz
cyBEcmFnQ2xpZW50OworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ7CitjbGFzcyBVc2VyQ29udGVudENvbnRyb2xsZXI7CitjbGFz
cyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKK2NsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CisKK2Ns
YXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29u
ZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNP
UkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VD
b25maWd1cmF0aW9uKCk7CisKKyAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZl
VGV4dENsaWVudDsKKyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudDsKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQ7
CisjZW5kaWYKKyAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKKyAgICBEcmFnQ2xpZW50
KiBkcmFnQ2xpZW50OworICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OworICAg
IFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OworICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworICAgIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4gYmFj
a0ZvcndhcmRDbGllbnQ7CisgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWU7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50OworCisgICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250
cm9sbGVyOworICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CmluZGV4IDVjODhhNzRmZDJjMWZkYmIwNjcwOWQxZjhkODk5MDIyNGQwMjZkOTUuLjQ5YjkwYmUz
NzEyMjUxNDBkNjg2NTNjMDlkNjYxODcyOTBkOTkxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgpAQCAt
MzM5LDEwICszNDAsMTAgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRh
UmVjZWl2ZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZl
ZCkgewotICAgICAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICAgICAgZmls
bFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlv
biBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNv
bmZpZ3VyYXRpb24pOwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHSW1hZ2VDaHJvbWVDbGllbnQ+KHRoaXMpOwotICAgICAgICBwYWdlQ2xpZW50cy5jaHJvbWVD
bGllbnQgPSBtX2Nocm9tZUNsaWVudC5nZXQoKTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
Y2hyb21lQ2xpZW50ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CiAKICAgICAgICAgLy8gRklYTUU6
IElmIHRoaXMgU1ZHIGVuZHMgdXAgbG9hZGluZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdv
cmxkLgogICAgICAgICAvLyBUaGUgQ2FjaGUgY29kZSBkb2VzIG5vdCBrbm93IGFib3V0IENhY2hl
ZEltYWdlcyBob2xkaW5nIEZyYW1lcyBhbmQKQEAgLTM1MCw3ICszNTEsNyBAQCBib29sIFNWR0lt
YWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgLy8gVGhpcyB3
aWxsIGJlY29tZSBhbiBpc3N1ZSB3aGVuIFNWR0ltYWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90
aGVyCiAgICAgICAgIC8vIFNWR0ltYWdlIG9iamVjdHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVj
YXVzZSBTVkdJbWFnZSBjYW4gb25seSBiZQogICAgICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2
ZWwgZG9jdW1lbnQuCi0gICAgICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFn
ZUNsaWVudHMpOworICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VD
b25maWd1cmF0aW9uKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxl
ZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZh
bHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0ODQ4NzExOTRhNDg0YmUx
NDUxZGQ5MGY4Y2QyNmFlYmJmOTQ3MTg5Li4xZjg0NDhjZmRmM2Y2NjRmMTIyOTcxNzU1ZGZlYmM5
ZDNmZjZhMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTUsNiAr
MTU1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdl
R3JvdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CkBAIC05MTgsMjMgKzkxOSwyMyBAQCBz
dGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQog
ICAgICAgICBkaWRPbmVUaW1lSW5pdGlhbGl6YXRpb24gPSB0cnVlOwogICAgIH0KIAotICAgIFBh
Z2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VD
b25maWd1cmF0aW9uOwogI2lmICFQTEFURk9STShJT1MpCi0gICAgcGFnZUNsaWVudHMuY2hyb21l
Q2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5jb250
ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudChzZWxmKTsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRN
ZW51Q2xpZW50KHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVu
dHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAg
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2Vs
Zik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3Bl
Y3RvckNsaWVudChzZWxmKTsKICNlbHNlCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwotI2VuZGlmCi0gICAgcGFnZUNs
aWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKLSAgICBwYWdl
Q2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5l
dyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJD
bGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwotICAgIF9wcml2YXRl
LT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CisgICAgcGFnZUNvbmZp
Z3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsK
KyNlbmRpZgorICAgIHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0
b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmln
dXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGll
bnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdl
YlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxmKTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQ
YWdlKHBhZ2VDb25maWd1cmF0aW9uKTsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2Vi
Q29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJHZW9sb2Nh
dGlvbkNsaWVudChzZWxmKSk7CiAjZW5kaWYKQEAgLTExNTUsMTYgKzExNTYsMTYgQEAgc3RhdGlj
IHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICBb
ZnJhbWVWaWV3IHJlbGVhc2VdOwogCiAgICAgCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNs
aWVudHM7Ci0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dElPUyhzZWxmKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAg
ICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9T
KHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0Ns
aWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRy
YWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGll
bnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNs
aWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSAg
ICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdl
YlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxmKTsKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQ
YWdlKHBhZ2VDbGllbnRzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBu
ZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3Rv
ckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50
OworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFn
ZShwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgCiAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkOllFU107CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGRlMGI1ZWZkM2Ux
N2FkMDdiZDE1MjRkYjQyNGQ1NTM5NjFlZTkwYjkuLmFmOWJkY2ZmNmVmZjE4ODY5NDU4YTgyYWU2
MzMxMWJiNjU3OWQ5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC01MzAsNiArNTMwLDcgQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
YmFzZU1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VQ
cm94aW1pdHlDbGllbnQuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3OGE2MWRlNTA0OWE3MTZkZDk0MGMzODM4MjQ4OTFmYWUwOWE5OGUwLi42
MWY3YTNkZGI0OGE2MmRlNjNlNWI4NDc5MDg4NjMyNTJmN2VjMWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTgzLDYgKzE1
ODMsOCBAQAogCQlDNUZBMUVENDE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNr
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUZB
MUVEMjE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gKi87IH07CiAJ
CUNEMDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUw
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUx
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CisJ
CUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2
OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9
OworCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlB
MjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9
OwogCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlDRDY3RDMwRTE1QzA4RjlB
MDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2N0QzMDgx
NUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcCAqLzsgfTsKQEAgLTM2ODcsNiArMzY4OSw4IEBACiAJCUM1RkExRUQyMThFMTA2MjIw
MEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLQWlyUGxheVJvdXRlUGlja2VyLm1tOyBwYXRoID0gaW9zL2Zv
cm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3Jh
Z2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVB
QkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2Fj
aGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDE5QTI2
QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUxMzRCOUQzNjAwNEZFMkE4IC8q
IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlGMTM0QjlEMzcwMDRGRTJB
OCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8q
IEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3NDMsNiAr
NTc0Nyw4IEBACiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVw
TWVudS5oICovLAogCQkJCUNFREJBODQ1MTlGREEwMEEwMDY4NjZBNSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuY3BwICovLAogCQkJCUNFREJBODQ2MTlGREEwMEEwMDY4NjZBNSAvKiBXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKKwkJCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUg
LyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovLAorCQkJCUNEMTlBMjZBMUExM0U4
MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBXZWJDb3JlU3VwcG9ydDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03
NTA4LDYgKzc1MTQsNyBAQAogCQkJCTFBNjUwOUNFMThCNDE0NjIwMDYxNDMzMiAvKiBXS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2
MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI5MDFBMEEy
REI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4
dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1RTc0OUVDMTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBI
ZWFkZXJzICovLApAQCAtODg5OCw2ICs4OTA1LDcgQEAKIAkJCQkxQTFFMDkzMzE4ODYxRDM4MDBE
MkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBOTBDMUY1MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTkxMDA3MjEyNjY3NUM0MDAxODQyRjUgLyogVGV4dEluZGljYXRvci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFODFEOEMxMzE5RjdF
RjAwMjQxOTEwIC8qIEZvbnRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEUxQTQ5MTgy
MDhDRDYwMDMxMDA3QSAvKiBXS05TU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA4
QjcxOTI2OUU2RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA0MTU0ZDAzZWViNmQ4
ZWFhZGI3OWFmMzdjYTc2NWE1YTYxZjM0ZTgwLi5hYjVhY2ZiNTAxNzQ5N2FjZWMwMzViMDYxNTgw
MWZkNDhkOTAxMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0yOCw3ICsyOCwxNyBAQAogCiAjaW5j
bHVkZSA8V2ViS2l0L1dLQmFzZS5oPgogCitlbnVtIHsKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFBhc3MgPSAwLAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCA9IDEs
CisgICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wID0gMiwKK307Cit0eXBlZGVmIHVp
bnQzMl90IFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlOworCiB0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLU3RyaW5n
UmVmIHN1Y2Nlc3MsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRUeXBlIHJlc3VsdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVz
Y3JpcHRpb24sIFdLU3RyaW5nUmVmIHZhbHVlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAog
dHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlIHsK
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC00MiwxMyArNTIsMzAgQEAgdHlwZWRlZiBzdHJ1
Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMCB7CiAgICAgV0tCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2dEaWFnbm9zdGljTWVzc2FnZTsKIH0gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnRWMDsKIAotZW51bSB7IGtXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEN1
cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24g
bnVtYmVyIGluc3RlYWQiKSA9IDAgfTsKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50VjEgeworICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZl
cnNpb24gMC4KKyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZDsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2Fn
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdl
OworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0OworICAgIFdL
QnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7Cit9IFdLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50VjE7CisKK2VudW0geyBrV0tCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBl
eHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAxIH07CiB0eXBlZGVmIHN0cnVjdCBX
S0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz
aW9uOwogICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKIAogICAgIC8vIFZlcnNpb24gMC4KLSAg
ICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOworICAgIFdLQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlh
Z25vc3RpY01lc3NhZ2VEZXByZWNhdGVkOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLQnVu
ZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQ7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZTsKIH0gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgV0tfREVQUkVD
QVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb25lZCBzdHJ1Y3QgaW5zdGVhZCIpOwogCiAjZW5k
aWYgLy8gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcAppbmRleCAxNzZjYTY2NzdmNDYxODQ0OWQyNTdmZjI3MmZiN2U1MGZhNzcxMDY1Li45YWI4
NmY5MzNhMDJkZjFmN2M4YzMxNzJhZmI1M2JiNTUxYzRjZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cApAQCAtMzEsMTEgKzMxLDMyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEluamVj
dGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2VzcykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZChX
ZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2VzcykKK3sKKyAgICBpZiAoIW1fY2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50
LmxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZCh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2Fn
ZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSShzdWNjZXNzLmltcGwo
KSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2Uq
IHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikK
IHsKICAgICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodG9BUEkocGFnZSksIHRvQVBJ
KG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgdG9BUEkoc3VjY2Vz
cy5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJ
KGRlc2NyaXB0aW9uLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBl
IHJlc3VsdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdCh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNj
cmlwdGlvbi5pbXBsKCkpLCByZXN1bHQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodG9BUEko
cGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwg
dG9BUEkodmFsdWUuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCmluZGV4IGRkZjgzODAzOWFiNjhjZDAwNDc2YjQxZmQyYTc4ZjI5ZjBlN2Zh
NWQuLmJiNmVhZWY1ZTBiODllYzY0Y2Q2YjJhZDI3YmM0ZWIzNTI4ZTcyMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNl
PiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50VjA+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwLCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudFYxPiBWZXJzaW9uczsKIH07CiB9CiAKQEAgLTQ1LDcgKzQ1LDEwIEBAIGNsYXNzIFdlYlBh
Z2U7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDog
cHVibGljIEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFz
ZT4gewogcHVibGljOgotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3Ry
aW5nJiBzdWNjZXNzKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZChX
ZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2Uo
V2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
bik7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdFR5cGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAyYTQzZWRlNzBlNDI4NjMwZDE0NGRkYTlj
ZjBlNTJhZWQwNmZjNDkyLi40NmRkZThjODlhMWMwMjE3ODNmMjhjYWVjNWUzOTIxNGY2MGI5NjE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05ODksMTQgKzk4OSw2IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50
KQogICAgIG1fcGFnZS0+bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChjb3VudCk7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vz
cykKLXsKLSAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGlj
TG9nZ2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9w
YWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3VjY2Vzcyk7Ci19Ci0KIFN0cmluZyBXZWJDaHJv
bWVDbGllbnQ6OnBsdWdJblN0YXJ0TGFiZWxUaXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBj
b25zdAogewogICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5wbHVn
SW5TdGFydExhYmVsVGl0bGUobWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTY2
YzRlZjk5ZDVmNzgxYWViOTYyYzQzMWZjNjdjMjNjYzEwYTBmZS4uYzNjNzdhMWNiZWVlNjAwZjY4
NDM4M2FiYmFjMzc0YjJlNGM3ZTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yODYsOCAr
Mjg2LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpIG92ZXJyaWRlOwotCiAgICAgdmlydHVh
bCBTdHJpbmcgcGx1Z0luU3RhcnRMYWJlbFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxTdWJ0aXRs
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0
cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U3YzliOTM4MWU3
ZmY3MjliNzE5MWM0NDM3MjY0MzllMDFjYWI2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKKworI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkKK3sKK30KKwor
dm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGlm
ICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoJm1fcGFnZSwgbWVzc2FnZSwg
ZGVzY3JpcHRpb24pOworfQorCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6TG9n
UmVzdWx0VHlwZSByZXN1bHQpCit7CisgICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3Vs
dCk7Cit9CisKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3JlUGFn
ZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgp
LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0
aW9uLCB2YWx1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYjEwMTYyYWZmMjNjN2I0YTRm
YmYwNWEwOTVmMTU2ZjcxMjMyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAg
LTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnRfaAorI2RlZmluZSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXZWJQYWdl
Jik7CisgICAgdmlydHVhbCB+V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYy
YWE0OTcwOTBkNWNkYTA3ZGI3NWMxMmMzMGM2OTgwZjA0MDEzYmMuLjEzNGYzNmIxMzBjNzA0ZmM5
YWIwZjMzODk5ZWUwNjQwMzY0MDhlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJXZWJDb250
ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJX
ZWJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCkBAIC0xMzEsNiAr
MTMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VUaHJvdHRs
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KQEAgLTMzOCwzMSArMzQwLDMyIEBAIFdlYlBh
Z2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogICAgIFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Np
b25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNs
aWVudHM7Ci0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCh0aGlzKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBw
YWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMp
OwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51
Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMp
OwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNs
aWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2Vi
RWRpdG9yQ2xpZW50KHRoaXMpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNs
aWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICNlbmRpZgot
ICAgIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50ID0gV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVu
dCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBtX2luc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQo
dGhpcyk7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JDbGll
bnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JD
bGllbnQ7CiAjZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCi0gICAgcGFnZUNs
aWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVu
dCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBu
ZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHRoaXMpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVu
dHMucGx1Z0luQ2xpZW50ID0gbmV3IFdlYlBsdWdJbkNsaWVudCh0aGlzKTsKLSAgICBwYWdlQ2xp
ZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7
Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudCgqdGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50
ID0gbmV3IFdlYlBsdWdJbkNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFn
ZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudCgqdGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgPSBuZXcgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKnRoaXMpOwogCi0gICAg
cGFnZUNsaWVudHMudXNlckNvbnRlbnRDb250cm9sbGVyID0gbV91c2VyQ29udGVudENvbnRyb2xs
ZXIgPyAmbV91c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpIDog
bnVsbHB0cjsKLSAgICBwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtU
YWJsZUNvbnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlE
KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBtX3VzZXJD
b250ZW50Q29udHJvbGxlciA/ICZtX3VzZXJDb250ZW50Q29udHJvbGxlci0+dXNlckNvbnRlbnRD
b250cm9sbGVyKCkgOiBudWxscHRyOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5r
U3RvcmUgPSBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6Z2V0T3JDcmVhdGUocGFyYW1ldGVy
cy52aXNpdGVkTGlua1RhYmxlSUQpOwogCi0gICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQ
YWdlPihwYWdlQ2xpZW50cyk7CisgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihw
YWdlQ29uZmlndXJhdGlvbik7CiAKICAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0FyZWE6OmNy
ZWF0ZSgqdGhpcywgcGFyYW1ldGVycyk7CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0UGFpbnRpbmdF
bmFibGVkKGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241728</attachid>
            <date>2014-11-17 11:24:18 -0800</date>
            <delta_ts>2014-11-21 15:58:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141117112429.patch</filename>
            <type>text/plain</type>
            <size>78776</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2ZTZjZTIzODg5Y2Nj
NjYzYmE0OWM3NDg1YjcxYzk0NTFmZWU4Zi4uY2YyMDVkOTkxMDU1ZjAzOTBlZDZkZGE5YmIwNDI1
OGZkMzg1ZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTExICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBUYWJsZSByb3dzIHJlcGFpbnQgZW50aXJlIHRhYmxlIHdoZW4gdGhlaXIg
YmFja2dyb3VuZCBjb2xvciBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGUxNGE2NzNiNmJl
NTQwNjY4MjBhOWIwMTlhMzZiMTMwMGUxYThmODEuLjllYTkwZDBjYjg3N2U0MTk5ZTVkMjI4N2Vj
MjJlYWFiYjlhMmZlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0x
MS0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0
IG11bHRpcGxlIHNpZ25hdHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgaGFz
IGJlZW4gcmVuYW1lZCBQYWdlQ29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERv
Y3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNC0x
MS0xNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgV0sxOiBXZWJw
YWdlIHByZXZpZXcgY2FuIGNvbWUgdXAgaW4gd3JvbmcgbG9jYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpp
bmRleCA2MzFjZDlhMDJmMGY2ZWM4Yzg4YzljZDI2ZWRiMmFiYjI1OWZhZjJhLi44OWMxY2I1NDM1
ZmYzMmY5ZjQzYWFjNmU4YmJkM2VjYjQ0ODgzZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTQtMTEtMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2lu
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhZ2U6
OlBhZ2VDbGllbnRzIGhhcyBiZWVuIHJlbmFtZWQgUGFnZUNvbmZpZ3VyYXRpb24uCisKKyAgICAg
ICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgorCiAy
MDE0LTExLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSGF2
ZSBET01UaW1lciBkZWFsIHdpdGggbW9yZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHJlZmVyZW5j
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAxNDY3MTE0NWVlOGE2NGU0MmY5YTI3MTc2ODZiOTZhZWQ0NzIzM2M4
Li4xMzU2YjVjZjI2ZTA3YmFjODJmZjk1MDQwNDIzZjBkYTljNzA2NjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTQtMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMg
bG9nZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4dGVuZCB0aGUgZXhpc3RpbmcgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
aW50ZXJmYWNlIGJ5IGRlcHJlY2F0aW5nCisgICAgICAgIHRoZSBvcmlnaW5hbCBsb2dEaWFnbm9z
dGljTWVzc2FnZSBjbGllbnQgbWV0aG9kIGluIFYxIGFuZCBhZGRpbmcgdGhyZWUgbmV3LAorICAg
ICAgICBleHBsaWNpdCBjbGllbnQgbWV0aG9kcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZURlcHJlY2F0ZWQpOgorICAgICAgICAgICAgUmVuYW1lZCBmcm9tIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlKCkuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhlIGNs
aWVudC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxl
IGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxlIGRlc3RydWN0b3IuCisgICAg
ICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZSk6IFBhc3MgdG8gdGhlIGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAgKFdlYktpdDo6V2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQuCisKIDIwMTQtMTEt
MDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV1bV0sy
XSBTaW1wbGlmeSB0aGUgTWVkaWFLZXlzIG9yaWdpbiBkZWxldGlvbiBjb2RlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBmMDEzNGEwYTRkMGMxNmMzYWYxMDljZTgwNmIzNzcwMGJiYjM1MzQwLi5l
NmJjMjcxYjQwNGJiN2M2ZDcwOWY4ZTMxNzc0YjYwNWZkZmZkYmI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTkwOSw2ICsxOTA5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2Uv
T3JpZ2luQWNjZXNzRW50cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAogICAgIHBhZ2UvUGFnZUFj
dGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwCisgICAgcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
ICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAog
ICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCAxZDM5NDRjOGNlYjFmMzg1Y2E5Mzg4NjMzNTg2Y2E5NjEwMGE2MTI4Li5lYTE5ZGJhNzg3NDM4
MTU1MDM0YjM5MjNjYzk5NWNjYTUxNTFlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTEz
Myw4ICsxMTMzLDYgQEAgX19aTjdXZWJDb3JlNE5vZGUxOHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBf
X1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJlY2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlw
ZUUKIF9fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQogX19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRT
dHJpbmdFUktOM1dURjZTdHJpbmdFaAotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFF
dgotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2Ux
MnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zp
c2libGVFYgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFNlc3Npb25JREVOU185U2Vzc2lvbklERQpA
QCAtMTE4MSw3ICsxMTc5LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UzN3NldEluTG93UXVhbGl0eUlt
YWdlSW50ZXJwb2xhdGlvbk1vZGVFYgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzEx
SGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlNFBhZ2U4c2V0TXV0
ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2U5aW5pdEdyb3VwRXYKLV9fWk43V2ViQ29yZTRQYWdlQzFF
Uk5TMF8xMVBhZ2VDbGllbnRzRQorX19aTjdXZWJDb3JlNFBhZ2VDMUVSTlNfMTdQYWdlQ29uZmln
dXJhdGlvbkUKIF9fWk43V2ViQ29yZTRQYWdlRDFFdgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJv
dW5kZWRSZWN0RVJLTlNfMTZGbG9hdFJvdW5kZWRSZWN0RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRl
Z3lFCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJL
TlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0cmF0ZWd5RQpAQCAtMjMwOCw2ICsyMzA2
LDggQEAgX19aTjdXZWJDb3JlMTZKU1hNTEh0dHBSZXF1ZXN0OXRvV3JhcHBlZEVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgogX19aTjdXZWJD
b3JlMTZkZWxldGVBbGxDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25FCiBfX1pO
N1dlYkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUks3X05TUmVjdAorX19aTjdXZWJDb3JlMTdQYWdl
Q29uZmlndXJhdGlvbkMxRXYKK19fWk43V2ViQ29yZTE3UGFnZUNvbmZpZ3VyYXRpb25EMUV2CiBf
X1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjNzZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQ
N0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyNHJlbW92ZU92ZXJoYW5n
QXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyN3Nl
dFVwT3ZlcmhhbmdBcmVhQmFja2dyb3VuZEVQN0NBTGF5ZXJSS05TXzVDb2xvckUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZTdiZmFm
OTlhMzJiODBhZGRlNDE4OWFmNTExOGUzZWRmNWU4ODkuLmEzMDQxM2IwNzRjODE3OWFlOWU3M2U5
NTdjZWQ2OWZiM2RjNjUzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtNzE3Niw2ICs3MTc2LDcgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwIiAvPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uZmlndXJhdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25zb2xlQ2xpZW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOTMwOGJm
OTMzNzZiYjMyYzQ2MmQwYjM0NDQyYTg2NjBiZDA2NGM5Li40ZDEzZjU3MThlNTMxYzE3MDA0ZTFl
ZDNkY2I0ZGJhYTJhYjJiZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTg1LDYgKzU1ODUsNyBAQAogCQlDRDBFRUUwRTE0
NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIg
LyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4
NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDRDE5QTI2ODFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMUI0QTY1MTYw
Nzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4REMyMTYwMTRFRUUwMEZFQTNCMSAv
KiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCAqLzsgfTsKIAkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4
ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi87IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRy
b2xsZXIuY3BwICovOyB9OwpAQCAtNTYyMSw2ICs1NjIyLDggQEAKIAkJQ0Q1NERFNEIxNzQ2OUM2
RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9T
ZXNzaW9uTWFjLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlv
RmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDU1OTY4RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNw
cCAqLzsgfTsKIAkJQ0Q1NTk2OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklP
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2
OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovOyB9OworCQlDRDVF
NUI1RjFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5
RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmln
dXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9
OwogCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3
MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi87IH07CiAJCUNENjBDMEM3MTkzRTg3Qzcw
MDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFU
S2l0LmggKi87IH07CiAJCUNENjFGRTY3MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLzsg
fTsKQEAgLTEzMDE0LDYgKzEzMDE3LDcgQEAKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlv
bklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5Nzkw
MEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
OUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA2MCw2ICsxMzA2NCw4IEBACiAJCUNENTRE
RTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJl
YWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0Zp
bGVSZWFkZXJJT1MuY3BwOyBwYXRoID0gaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9G
aWxlUmVhZGVySU9TLmg7IHBhdGggPSBpb3MvQXVkaW9GaWxlUmVhZGVySU9TLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29u
ZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uZmln
dXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDVFNUI2MDFBMTVGMTU2
MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZUNvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZC
IC8qIE1lZGlhVGltZVFUS2l0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhVGltZVFUS2l0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIxMTgx
OEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNjYwOCw2ICsxNjYxNCw4IEBACiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkw
NTBBIC8qIFBhZ2UuaCAqLywKIAkJCQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFj
dGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwICovLAogCQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZC
NyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbi5oICovLAorCQkJCUNENUU1QjYwMUExNUYx
NTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8sCisJCQkJQ0Q1RTVCNUUxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJREFBQ0IzRDkxNkYy
NDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlQ2xpZW50LmNwcCAqLywKIAkJCQlEQUFDQjNEQTE2
RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4
Mjk3MzQzMDBERTE3MjkgLyogUGFnZURlYnVnZ2FibGUuY3BwICovLApAQCAtMTY3MDYsNiArMTY3
MTQsNyBAQAogCQkJCUUxMjcxQTEzMEVFRUM4MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3Iu
Y3BwICovLAogCQkJCUUxMjcxQTBBMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3Iu
aCAqLywKIAkJCQlFMTI3MUE1MTBFRUVDRDFDMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlk
bCAqLywKKwkJCQlDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yMzg0NCw2ICsyMzg1Myw3IEBACiAJCQkJODU4QzM4MkMwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUQy
OTBBQ0M3RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODUwMzJERTEwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RUQwQURCMzJGQjAwOTI1
Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTMw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NUU3MTE5MjBBQzVENTM1MDA1MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNDM5MCw2ICsyNDQwMCw3IEBACiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAw
QzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2
RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEw
OTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNENUU1QjVGMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDRkY3QUIwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxRDQ1RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTEFw
cGxldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJFMEExOTM4NTUwMEE4RUY1
RiAvKiBIVE1MQXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1ODgsNiArMjc1OTks
NyBAQAogCQkJCTUyQjZDOUMyMTVFM0Y0REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MThERDc5MEE5Q0YzMUIwMDkxQjdBNiAvKiBE
T01OYW1lZE5vZGVNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTNCRjREQzBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENUU1QjYxMUExNUYxNTYw
MDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTUy
NkMzODBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVBQ0FBOEUwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVDQTk2RUIwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCBkNDdkNjRhZjg2MjMxYzk5MTkyMWFmMjliY2Q1NGJjMzg2YjY1NzU1Li44ZTAyODMyZjg3N2Ji
ODdhZWQwYWRjNTFmYzdmMmE5YTY0NjM3OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAiRGlzcGxheVNsZWVwRGlzYWJsZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMTgyNSwyMCArMTgyNiwyMiBAQCBzdGF0
aWMgdm9pZCBsb2dNZWRpYUxvYWRSZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVk
aWFFbmdpbmUsIGNvbnN0IFN0cgogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS5k
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hyb21l
Q2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKKyAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWlu
RnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc3VjY2VlZGVkKSB7Ci0g
ICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6ZmFpbEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQt
PmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1l
ZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50OjpGYWlsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNocm9tZUNsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5
KCksIG1lZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bWVkaWFMb2FkZWRLZXkoKSwgbWVkaWFFbmdpbmUpOwogCiAgICAgaWYgKCFw
YWdlLT5oYXNTZWVuQW55TWVkaWFFbmdpbmUoKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFz
dE9uZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9u
ZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCkpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNT
ZWVuTWVkaWFFbmdpbmUobWVkaWFFbmdpbmUpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVu
Z2luZUtleSgpLCBtZWRpYUVuZ2luZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkp
OworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2Uo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRp
YUVuZ2luZSk7CiAKICAgICBwYWdlLT5zYXdNZWRpYUVuZ2luZShtZWRpYUVuZ2luZSk7CiB9CkBA
IC01NzY2LDkgKzU3NjksMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckVu
Z2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5n
cygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5t
YWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBlbmdpbmUgPSBt
X3BsYXllci0+ZW5naW5lRGVzY3JpcHRpb24oKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmlu
Zzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIG1lc3NhZ2UpOworICAgIGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVt
YmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRl
eCAxZWQxZTk3NDc0OWJhMmQ5YTNiMDQyNGUxNDBlYTUxZjY3ZTJkODJiLi5mMGNkNzVmYmU0ZDJj
ZGFhNjFiMzE2YzI3ZWRmNTJjNDQwZDgwOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgogI2luY2x1
ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIK
QEAgLTgwOCw5ICs4MDksOSBAQCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgp
CiAgICAgaWYgKG1fb3ZlcmxheVBhZ2UpCiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdlLmdl
dCgpOwogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgZmlsbFdpdGhF
bXB0eUNsaWVudHMocGFnZUNsaWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFBhZ2U+KHBhZ2VDbGllbnRzKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbjsKKyAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7
CisgICAgbV9vdmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3Vy
YXRpb24pOwogCiAgICAgU2V0dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLnNldHRpbmdzKCk7CiAg
ICAgU2V0dGluZ3MmIG92ZXJsYXlTZXR0aW5ncyA9IG1fb3ZlcmxheVBhZ2UtPnNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhlNzU0OTc2ZjAyZDM0
ZmIyNzk5ZjY3MGNlZDZiY2U1NDYyY2QwNWQuLjc2OWUwMjQwZjZiMTM5YjBiOWQzNTE4YmIxNjQz
OTZjOWU3Yzg0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNDMsMzIgKzQ0LDM1IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50
cyYgcGFnZUNsaWVudHMpCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0
aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNocm9t
ZUNsaWVudCA9ICZkdW1teUNocm9tZUNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSAmZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDb250ZXh0TWVu
dUNsaWVudD4gZHVtbXlDb250ZXh0TWVudUNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0
TWVudUNsaWVudCA9ICZkdW1teUNvbnRleHRNZW51Q2xpZW50LmdldCgpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0
KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEVtcHR5RHJhZ0NsaWVudD4gZHVtbXlEcmFnQ2xpZW50OwotICAgIHBhZ2VDbGll
bnRzLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOwogI2VuZGlmCiAKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlFZGl0b3JDbGllbnQ+IGR1bW15RWRpdG9yQ2xp
ZW50OwotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5n
ZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSAmZHVtbXlFZGl0b3JD
bGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlJbnNwZWN0b3JD
bGllbnQ+IGR1bW15SW5zcGVjdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNs
aWVudCA9ICZkdW1teUluc3BlY3RvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5pbnNwZWN0b3JDbGllbnQgPSAmZHVtbXlJbnNwZWN0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxv
YWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAm
ZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKLSAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQo
KTsKKwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVu
dD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50ID0gJmR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dyZXNzVHJh
Y2tlckNsaWVudC5nZXQoKTsKKworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1teURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1bW15RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuZ2V0KCk7CiB9CiAKIGNsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGlj
IFBvcHVwTWVudSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjMyMGM1
OTk3Y2QzYzllMzE1MmRhYTJjYjcxZTg0YzNiYWE4NjkwZC4uNDc0ZDE5YTdkZGVjYTFhNzU2Y2E0
YmEzYmIxYzc1MGNjNGVjOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRy
YWdDbGllbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlckNsaWVudC5oIgpAQCAtNjM0LDcgKzYzNSwxMyBAQCBjbGFzcyBFbXB0eVByb2dyZXNzVHJh
Y2tlckNsaWVudCA6IHB1YmxpYyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewogICAgIHZpcnR1YWwg
dm9pZCBwcm9ncmVzc0ZpbmlzaGVkKEZyYW1lJikgb3ZlcnJpZGUgeyB9CiB9OwogCi12b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2U6OlBhZ2VDbGllbnRzJik7CitjbGFzcyBFbXB0eURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2dSZXN1bHRUeXBl
KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyB9Cit9OworCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9u
Jik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTE5NDA4
YjU3ZjYyNjEzMmE5YWUzMmJkNTA0NzU5OGQzYzVkMzdjOC4uODZkNzM3NGI4NDFjMzQ4OGM4YmE3
NjMxNGZhZjNmNTg2ZjUwYmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5n
S2V5cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGlt
aW5nLmgiCkBAIC0yMjY2LDcgKzIyNjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUoKQogICAgICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5z
ZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3Ry
aW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkg
OiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmZhaWxLZXkoKSk7CisgICAgICAgICAgICBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJh
bWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgICAgICAgICAgaWYgKCFkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVy
cm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OlBhc3MgOiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6RmFpbCk7CiAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggNWMzNzc4OTFiNjQy
NmQ1YmI1ZTdlOTQzZjQ2MTg4OGY2YjlhMTEyYy4uM2EyNjBkN2Q0MzI5YjljNjk4MTBhMDQ1NDIw
Y2U2ZTFkZGNiMTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC00
Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVj
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNp
bmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgpAQCAtMTkyLDE0ICsxOTQsMTcgQEAgc3RhdGljIHZv
aWQgbG9nUGx1Z2luUmVxdWVzdChQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIHUKICAgICBTdHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2UtPnBsdWdpbkRhdGEo
KS5wbHVnaW5GaWxlRm9yTWltZVR5cGUobmV3TUlNRVR5cGUpOwogICAgIFN0cmluZyBkZXNjcmlw
dGlvbiA9ICFwbHVnaW5GaWxlID8gbmV3TUlNRVR5cGUgOiBwbHVnaW5GaWxlOwogCi0gICAgQ2hy
b21lQ2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKLSAgICBj
aHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGx1Z2luTG9hZGVkS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdp
bkxvYWRpbmdGYWlsZWRLZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bm9vcEtleSgpKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwor
ICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbik7CiAKICAgICBp
ZiAoIXBhZ2UtPmhhc1NlZW5BbnlQbHVnaW4oKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFz
dE9uZVBsdWdpbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5v
b3BLZXkoKSk7Ci0gICAgCisgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFn
bm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc0F0TGVhc3RP
bmVQbHVnaW5LZXkoKSwgZW1wdHlTdHJpbmcoKSk7CisKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5Q
bHVnaW4oZGVzY3JpcHRpb24pKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkoKSwgZGVz
Y3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGFnZUNvbnRhaW5zUGx1Z2luS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIHBh
Z2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCA4NzhkZWU1ODM4NzJhMTU3Yjc3N2ZkMjg4NmE1NzRkOGY3MzA0ZjQ2Li4zYmJkNmMw
ZDc0OGVjYTBlYThiMjE3NWQ5MzJkY2UwZjJmZjU4NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTQxNiw4ICs0MTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNl
bFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNz
YWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0K
LQogICAgIHZpcnR1YWwgRmxvYXRTaXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1
cm4gRmxvYXRTaXplKDEwMCwgMTAwKTsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hy
b21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEzOTM0NTE5OWViYTVk
Mjg4MTNkMjk5MjM0OTY1YzYwMTAwMDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKworICAgIGVudW0gTG9nUmVzdWx0VHlwZSB7
CisgICAgICAgIFBhc3MsCisgICAgICAgIEZhaWwsCisgICAgICAgIE5vb3AsCisgICAgfTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgeyBV
TlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7
IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VE
X1BBUkFNKHZhbHVlKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFt
ZS5jcHAKaW5kZXggNzgwM2Y4ODdlNzczMjVhY2I2YTJmMjA2ZWE1OTA4ZTY1OTc0ZjlkOC4uYzgw
YjljMzcxZWY2YWQ1ZTBmOTc5Y2I3NDc1NzlkZDQxMmVkODViOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFp
bkZyYW1lLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk1haW5GcmFtZS5oIgogCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JvbGxMYXRjaGluZ1N0
YXRlLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhVHJhY2tlci5oIgpAQCAtMzYsOCArMzcs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFt
ZShQYWdlJiBwYWdlLCBGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KQotICAgIDogRnJhbWUocGFn
ZSwgbnVsbHB0ciwgY2xpZW50KQoraW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBh
Z2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDogRnJhbWUocGFnZSwg
bnVsbHB0ciwgKmNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKQogICAgICwg
bV9zZWxmT25seVJlZkNvdW50KDApCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9sYXRjaGlu
Z1N0YXRlKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsTGF0Y2hpbmdTdGF0ZT4oKSkKQEAgLTQ3LDYg
KzQ4LDcgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9h
ZGVyQ2xpZW50JiBjbGllbnQpCiAjZW5kaWYKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRh
VHJhY2tlcihzdGQ6Om1ha2VfdW5pcXVlPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCiAgICAg
LCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29u
dHJvbGxlcj4oKnRoaXMpKQorICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1
cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogfQogCkBAIC01NCw5ICs1Niw5IEBA
IE1haW5GcmFtZTo6fk1haW5GcmFtZSgpCiB7CiB9CiAKLVJlZlB0cjxNYWluRnJhbWU+IE1haW5G
cmFtZTo6Y3JlYXRlKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCitSZWZQ
dHI8TWFpbkZyYW1lPiBNYWluRnJhbWU6OmNyZWF0ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJh
dGlvbiYgY29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFt
ZShwYWdlLCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdl
LCBjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seVJlZigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9NYWluRnJhbWUuaAppbmRleCBiZDZjZTc5MDNjY2NlNmI3NjkwM2I2MWVkZTQ2NGEz
YzE3NWQyYmNkLi5jMTA5OTQwMjBiN2VhNTZlYzQ3ODc4N2M4MzM5YmJkNDc4MjgxMjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWFpbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK2NsYXNzIFBhZ2VDb25maWd1
cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2Nyb2xsTGF0Y2hp
bmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI7CkBAIC0zNyw3ICszOSw3
IEBAIGNsYXNzIFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7CiAKIGNsYXNzIE1haW5GcmFtZSBmaW5h
bCA6IHB1YmxpYyBGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNYWluRnJhbWU+
IGNyZWF0ZShQYWdlJiwgRnJhbWVMb2FkZXJDbGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1h
aW5GcmFtZT4gY3JlYXRlKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdmlydHVh
bCB+TWFpbkZyYW1lKCk7CiAKQEAgLTU2LDggKzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c2V0TGF0Y2hpbmdTdGF0ZSgpOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorICAgIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7IH0KKwogcHJpdmF0ZToKLSAgICBNYWluRnJh
bWUoUGFnZSYsIEZyYW1lTG9hZGVyQ2xpZW50Jik7CisgICAgTWFpbkZyYW1lKFBhZ2UmLCBQYWdl
Q29uZmlndXJhdGlvbiYpOwogCiAgICAgdm9pZCBkcm9wQ2hpbGRyZW4oKTsKIApAQCAtNzEsNiAr
NzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnRE
ZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UGFnZU92ZXJsYXlDb250cm9sbGVyPiBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcjsK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsK
IH07CiAKIGlubGluZSBib29sIEZyYW1lOjppc01haW5GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBjMTFiYjAwZjFjOWJkZWI0OWJlMzg1MGYwNjNmMzlkOWExM2IxYjRlLi4yNjM2
MTY4MmJjMTI5NzVjZTBjNDlkODU3YTE4NTYxNmJhZmVhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2lu
Y2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hl
LmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29s
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCkBAIC0xMjQsMzQgKzEyNSwzNCBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFu
Z2VkKGJvb2wgaXNPbkxpbmUpCiAKIHN0YXRpYyBjb25zdCBWaWV3U3RhdGU6OkZsYWdzIFBhZ2VJ
bml0aWFsVmlld1N0YXRlID0gVmlld1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OklzSW5X
aW5kb3c7CiAKLVBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQotICAgIDogbV9j
aHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNsaWVudHMuY2hyb21l
Q2xpZW50KSkKK1BhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9u
KQorICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNv
bmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50KSkKICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPERyYWdDYXJldENvbnRyb2xsZXI+KCkpCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKLSAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29u
dHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKKyAgICAsIG1fZHJhZ0Nv
bnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29u
ZmlndXJhdGlvbi5kcmFnQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9mb2N1c0NvbnRyb2xsZXIo
c3RkOjptYWtlX3VuaXF1ZTxGb2N1c0NvbnRyb2xsZXI+KCp0aGlzLCBQYWdlSW5pdGlhbFZpZXdT
dGF0ZSkpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29u
dHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpw
YWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdl
Q29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCkpCiAjZW5kaWYKICAgICAsIG1fdXNlcklu
cHV0QnJpZGdlKHN0ZDo6bWFrZV91bmlxdWU8VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgLCBtX3JlcGxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3Vu
aXF1ZTxSZXBsYXlDb250cm9sbGVyPigqdGhpcykpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVj
dG9yQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCisgICAg
LCBtX2luc3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9s
bGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KHN0ZDo6bWFrZV91bmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNsaWVudHMucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91
bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywgcGFnZUNsaWVudHMuYmFja0Zvcndh
cmRDbGllbnQpKQotICAgICwgbV9tYWluRnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsICpw
YWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQorICAgICwgbV9wcm9ncmVzcyhz
dGQ6Om1ha2VfdW5pcXVlPFByb2dyZXNzVHJhY2tlcj4oKnBhZ2VDb25maWd1cmF0aW9uLnByb2dy
ZXNzVHJhY2tlckNsaWVudCkpCisgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihzdGQ6Om1h
a2VfdW5pcXVlPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9u
LmJhY2tGb3J3YXJkQ2xpZW50KSkKKyAgICAsIG1fbWFpbkZyYW1lKE1haW5GcmFtZTo6Y3JlYXRl
KCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbikpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0
aGVtZUZvclBhZ2UodGhpcykpCi0gICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0
b3JDbGllbnQpCi0gICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQp
Ci0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KHBhZ2VDbGllbnRzLnZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50KQorICAgICwgbV9lZGl0b3JDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZWRp
dG9yQ2xpZW50KQorICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0lu
Q2xpZW50KQorICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlv
bi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAg
ICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1l
bnRzKHRydWUpCkBAIC0xOTIsNyArMTkzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFn
ZUNsaWVudHMpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQogI2Vu
ZGlmCi0gICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2
ZVRleHRDbGllbnQpCisgICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ29uZmlndXJh
dGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1
c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFnZVRocm90dGxlcigqdGhpcywgbV92aWV3U3RhdGUp
CiAgICAgLCBtX2NvbnNvbGVDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUNsaWVu
dD4oKnRoaXMpKQpAQCAtMjAxLDggKzIwMiw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBh
Z2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0
ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlh
bCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2Fk
RXZlbnQoMCkKLSAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ2xp
ZW50cy51c2VyQ29udGVudENvbnRyb2xsZXIpKQotICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdU
Rjo6bW92ZShwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlKSkKKyAgICAsIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRy
b2xsZXIpKQorICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ29uZmlndXJh
dGlvbi52aXNpdGVkTGlua1N0b3JlKSkKICAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9pc0Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2lzUGxh
eWluZ0F1ZGlvKGZhbHNlKQpAQCAtMTY1NSwyNCArMTY1Niw0IEBAIHZvaWQgUGFnZTo6c2V0U2Vz
c2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIHZpZXctPnByaXZhdGVCcm93c2lu
Z1N0YXRlQ2hhbmdlZChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKLVBhZ2U6OlBhZ2VD
bGllbnRzOjpQYWdlQ2xpZW50cygpCi0gICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0
cikKLSAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQotICAgICwgY29udGV4dE1lbnVDbGllbnQobnVsbHB0cikKLSNlbmRpZgotICAgICwgZWRpdG9y
Q2xpZW50KG51bGxwdHIpCi0gICAgLCBkcmFnQ2xpZW50KG51bGxwdHIpCi0gICAgLCBpbnNwZWN0
b3JDbGllbnQobnVsbHB0cikKLSAgICAsIHBsdWdJbkNsaWVudChudWxscHRyKQotICAgICwgcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIpCi0gICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dChudWxscHRyKQotICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCi17Ci19
Ci0KLVBhZ2U6OlBhZ2VDbGllbnRzOjp+UGFnZUNsaWVudHMoKQotewotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFmN2Y4YWNjNDM0MDdjMTZjYzZiMWFkYTQz
YjA5YzE5MmY1OGY4ZTMuLjdmNDI0YjM1YjU1OWUyYzIwNGI5ZjkxNWFiYjEwMWM3YjA4ODA0NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC04MSw2ICs4MSw3IEBAIGNsYXNzIEluc3BlY3RvckNvbnRyb2xs
ZXI7CiBjbGFzcyBNYWluRnJhbWU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFz
cyBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwog
Y2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJsZTsKIGNsYXNzIFBh
Z2VHcm91cDsKQEAgLTExOSwzMyArMTIwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52
aXJvbm1lbnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjbGVhclByZXZpb3Vz
SXRlbUZyb21BbGxQYWdlcyhIaXN0b3J5SXRlbSopOwogCi0gICAgLy8gSXQgaXMgdXAgdG8gdGhl
IHBsYXRmb3JtIHRvIGVuc3VyZSB0aGF0IG5vbi1udWxsIGNsaWVudHMgYXJlIHByb3ZpZGVkIHdo
ZXJlIHJlcXVpcmVkLgotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyB0byBQYWdlQ29uZmlndXJh
dGlvbiBhbmQgbW92ZSBpdCB0byBpdHMgb3duIGNsYXNzLgotICAgIHN0cnVjdCBQYWdlQ2xpZW50
cyB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRzKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBQYWdl
Q2xpZW50cygpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNsaWVudHMoKTsKLQotICAg
ICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKLSAgICAg
ICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQ7Ci0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgICAgIENvbnRleHRNZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudDsKLSNlbmRpZgot
ICAgICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKLSAgICAgICAgRHJhZ0NsaWVudCog
ZHJhZ0NsaWVudDsKLSAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7Ci0g
ICAgICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OwotICAgICAgICBQcm9ncmVzc1RyYWNr
ZXJDbGllbnQqIHByb2dyZXNzVHJhY2tlckNsaWVudDsKLSAgICAgICAgUmVmUHRyPEJhY2tGb3J3
YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVudDsKLSAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwotICAgICAgICBGcmFtZUxvYWRlckNsaWVu
dCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lOwotCi0gICAgICAgIFJlZlB0cjxVc2VyQ29udGVu
dENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29udHJvbGxlcjsKLSAgICAgICAgUmVmUHRyPFZpc2l0
ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7Ci0gICAgfTsKLQotICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IFBhZ2UoUGFnZUNsaWVudHMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBQYWdlKFBhZ2VDb25maWd1cmF0aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2Uo
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4
OWExODJjMzg1NWQ1OTdkNDc1MjkzNWE1NDg3YjNiMjc4ODNkMDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1
cmF0aW9uLmgiCisKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIlVz
ZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRp
b24oKQorICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCisgICAgLCBjaHJvbWVD
bGllbnQobnVsbHB0cikKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICAsIGNvbnRleHRN
ZW51Q2xpZW50KG51bGxwdHIpCisjZW5kaWYKKyAgICAsIGVkaXRvckNsaWVudChudWxscHRyKQor
ICAgICwgZHJhZ0NsaWVudChudWxscHRyKQorICAgICwgaW5zcGVjdG9yQ2xpZW50KG51bGxwdHIp
CisgICAgLCBwbHVnSW5DbGllbnQobnVsbHB0cikKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVu
dChudWxscHRyKQorICAgICwgdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQobnVsbHB0cikKKyAgICAs
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZShudWxscHRyKQoreworfQorCitQYWdlQ29uZmlndXJh
dGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWI3MjNhZTZjZDQ2NGY5MjAzYmU2MzU1
MTQwMTc0NjFmMWVjOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFn
ZUNvbmZpZ3VyYXRpb25faAorI2RlZmluZSBQYWdlQ29uZmlndXJhdGlvbl9oCisKKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OworY2xhc3MgQmFja0Zv
cndhcmRDbGllbnQ7CitjbGFzcyBDaHJvbWVDbGllbnQ7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCitjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKKyNlbmRpZgorY2xhc3MgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7CitjbGFzcyBEcmFnQ2xpZW50OworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xh
c3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBQbHVn
SW5DbGllbnQ7CitjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CitjbGFzcyBVc2VyQ29udGVu
dENvbnRyb2xsZXI7CitjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKK2NsYXNzIFZpc2l0
ZWRMaW5rU3RvcmU7CisKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CisKKyAgICBBbHRlcm5hdGl2ZVRleHRD
bGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKKyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNs
aWVudDsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBDb250ZXh0TWVudUNsaWVudCog
Y29udGV4dE1lbnVDbGllbnQ7CisjZW5kaWYKKyAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVu
dDsKKyAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50OworICAgIEluc3BlY3RvckNsaWVudCogaW5z
cGVjdG9yQ2xpZW50OworICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OworICAgIFByb2dy
ZXNzVHJhY2tlckNsaWVudCogcHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworICAgIFJlZlB0cjxCYWNr
Rm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGllbnQ7CisgICAgVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBs
b2FkZXJDbGllbnRGb3JNYWluRnJhbWU7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50OworCisgICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxl
cj4gdXNlckNvbnRlbnRDb250cm9sbGVyOworICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2
aXNpdGVkTGlua1N0b3JlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDVjODhhNzRmZDJjMWZkYmIwNjcwOWQxZjhkODk5MDIy
NGQwMjZkOTUuLjQ5YjkwYmUzNzEyMjUxNDBkNjg2NTNjMDlkNjYxODcyOTBkOTkxNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJT
VkdEb2N1bWVudC5oIgpAQCAtMzM5LDEwICszNDAsMTAgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNo
YW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
aWYgKGFsbERhdGFSZWNlaXZlZCkgewotICAgICAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xp
ZW50czsKLSAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOworICAgICAg
ICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICAgICAgZmlsbFdpdGhF
bXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHSW1hZ2VDaHJvbWVDbGllbnQ+KHRoaXMpOwotICAgICAgICBw
YWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBtX2Nocm9tZUNsaWVudC5nZXQoKTsKKyAgICAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CiAK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgU1ZHIGVuZHMgdXAgbG9hZGluZyBpdHNlbGYsIHdl
IG1pZ2h0IGxlYWsgdGhlIHdvcmxkLgogICAgICAgICAvLyBUaGUgQ2FjaGUgY29kZSBkb2VzIG5v
dCBrbm93IGFib3V0IENhY2hlZEltYWdlcyBob2xkaW5nIEZyYW1lcyBhbmQKQEAgLTM1MCw3ICsz
NTEsNyBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkK
ICAgICAgICAgLy8gVGhpcyB3aWxsIGJlY29tZSBhbiBpc3N1ZSB3aGVuIFNWR0ltYWdlIHdpbGwg
YmUgYWJsZSB0byBsb2FkIG90aGVyCiAgICAgICAgIC8vIFNWR0ltYWdlIG9iamVjdHMsIGJ1dCB3
ZSdyZSBzYWZlIG5vdywgYmVjYXVzZSBTVkdJbWFnZSBjYW4gb25seSBiZQogICAgICAgICAvLyBs
b2FkZWQgYnkgYSB0b3AtbGV2ZWwgZG9jdW1lbnQuCi0gICAgICAgIG1fcGFnZSA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMpOworICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0aW9uKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5n
cygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5z
ZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBs
dWdpbnNFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCA0ODQ4NzExOTRhNDg0YmUxNDUxZGQ5MGY4Y2QyNmFlYmJmOTQ3MTg5Li4xZjg0NDhjZmRmM2Y2
NjRmMTIyOTcxNzU1ZGZlYmM5ZDNmZjZhMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNTUsNiArMTU1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9u
Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BhZ2VDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CkBAIC05
MTgsMjMgKzkxOSwyMyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3Zp
ZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBkaWRPbmVUaW1lSW5pdGlhbGl6YXRpb24gPSB0cnVl
OwogICAgIH0KIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOworICAgIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOwogI2lmICFQTEFURk9STShJT1MpCi0gICAg
cGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKLSAg
ICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVu
dChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hy
b21lQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50
ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYp
OworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChz
ZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xp
ZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKICNlbHNlCi0gICAgcGFnZUNsaWVu
dHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKLSAgICBwYWdl
Q2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwot
I2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVu
dChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHNlbGYpOwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50
cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNl
bGYpOwotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2Vs
Zik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3Bl
Y3RvckNsaWVudChzZWxmKTsKKyNlbmRpZgorICAgIHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNs
aWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
YWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudChzZWxm
KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcg
V2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxmKTsKKyAgICBfcHJp
dmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDb25maWd1cmF0aW9uKTsKICNpZiBFTkFCTEUoR0VP
TE9DQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBh
Z2UsIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudChzZWxmKSk7CiAjZW5kaWYKQEAgLTExNTUsMTYg
KzExNTYsMTYgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklm
TmVjZXNzYXJ5KCkKICAgICBbZnJhbWVWaWV3IHJlbGVhc2VdOwogCiAgICAgCi0gICAgUGFnZTo6
UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdl
Q29uZmlndXJhdGlvbjsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcg
V2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
cGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNl
bmRpZgotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQo
c2VsZik7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3Rv
ckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxmKTsKLSAgICBfcHJp
dmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7
CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdl
YkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tl
ckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7CisgICAgX3ByaXZh
dGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgCiAgICAgW3NlbGYg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IDkwNGYzOWFhOWYyYmQ0ZTU1YjM1ZTQyYWI4NjMxODQ4NWJjODM5MGIuLmFjNGY2Zjhh
Y2QzYTRlYTYyN2U3NDY4MzZlMzMyMGFiNTk2ZjVjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBA
IC0yNzkxLDE4ICsyNzkxLDE4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6
aW5pdFdpdGhGcmFtZSgKICAgICBtX2luc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JD
bGllbnQodGhpcyk7CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIAotICAgIFBhZ2U6OlBh
Z2VDbGllbnRzIHBhZ2VDbGllbnRzOwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5l
dyBXZWJDaHJvbWVDbGllbnQodGhpcyk7Ci0gICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGll
bnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7Ci0gICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5k
cmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CisgICAgUGFnZUNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbjsKKyAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDaHJvbWVDbGllbnQodGhpcyk7CisgICAgY29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVu
dCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKKyAgICBjb25maWd1cmF0aW9uLmVk
aXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7CisgICAgY29uZmlndXJhdGlv
bi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVu
dDsKKyAgICBjb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50
OwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgcGFnZUNsaWVudHMubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDbGll
bnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Kj4ocGFnZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKTsKKyAgICBjb25maWd1
cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVu
dDsKKyAgICBjb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IHN0YXRpY19jYXN0
PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oY29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUpOwogCi0gICAgbV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAgIG1fcGFn
ZSA9IG5ldyBQYWdlKGNvbmZpZ3VyYXRpb24pOwogICAgIHByb3ZpZGVHZW9sb2NhdGlvblRvKG1f
cGFnZSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpKTsKIAogICAgIHVuc2lnbmVkIGxh
eW91dE1pbGVzdG9uZXMgPSBEaWRGaXJzdExheW91dCB8IERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZGUwYjVlZmQzZTE3YWQwN2JkMTUyNGRi
NDI0ZDU1Mzk2MWVlOTBiOS4uYWY5YmRjZmY2ZWZmMTg4Njk0NThhODJhZTYzMzExYmI2NTc5ZDk0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTUzMCw2ICs1MzAsNyBAQCBzZXQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZVByb3hpbWl0eUNsaWVu
dC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc4YTYxZGU1MDQ5YTcxNmRkOTQwYzM4MzgyNDg5MWZhZTA5YTk4ZTAuLjYxZjdhM2RkYjQ4YTYy
ZGU2M2U1Yjg0NzkwODg2MzI1MmY3ZWMxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1ODMsNiArMTU4Myw4IEBACiAJCUM1
RkExRUQ0MThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RkExRUQyMThFMTA2MjIw
MEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSAqLzsgfTsKIAkJQ0QwMDNBNTIxOUQ0
OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNBNTAxOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwICovOyB9OwogCQlDRDAwM0E1MzE5
RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKKwkJQ0QxOUEyNkQxQTEz
RTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY5MUExM0U4MjAwMDhE
NjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi87IH07CisJCUNEMTlBMjZF
MUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNkExQTEzRTgyMTAw
OEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CiAJCUNENUM2NkEw
MTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlF
MTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNw
cCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VG
dWxsU2NyZWVuQ2xpZW50LmggKi87IH07CiAJCUNENjdEMzBFMTVDMDhGOUEwMDg0M0FERiAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY3RDMwODE1QzA3QkUwMDA4NDNB
REYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9
OwpAQCAtMzY4Nyw2ICszNjg5LDggQEAKIAkJQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdL
QWlyUGxheVJvdXRlUGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tBaXJQbGF5Um91dGVQaWNrZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5
Um91dGVQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUwMTlE
NDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3Bw
OyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMTlBMjY5
MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMTlBMjZBMUExM0U4MjEwMDhE
NjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDY3RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc0Myw2ICs1NzQ3LDggQEAKIAkJ
CQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCiAJ
CQkJQ0VEQkE4NDUxOUZEQTAwQTAwNjg2NkE1IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5j
cHAgKi8sCiAJCQkJQ0VEQkE4NDYxOUZEQTAwQTAwNjg2NkE1IC8qIFdlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oICovLAorCQkJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgKi8sCisJCQkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8q
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNv
cmVTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc1MDgsNiArNzUxNCw3
IEBACiAJCQkJMUE2NTA5Q0UxOEI0MTQ2MjAwNjE0MzMyIC8qIFdLUHJvY2Vzc1Bvb2xQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjkwMUEwQTJEQjgwMDc4QzA2QSAv
KiBOZXR3b3JrQ2FjaGVFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDE5QTI2RTFBMTNF
ODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgx
Mjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCkBA
IC04ODk4LDYgKzg5MDUsNyBAQAogCQkJCTFBMUUwOTMzMTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5MEMxRjUxMjY0
RkQ3MTAwM0U0NEQ0IC8qIEZpbmRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
OTEwMDcyMTI2Njc1QzQwMDE4NDJGNSAvKiBUZXh0SW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0U4MUQ4QzEzMTlGN0VGMDAyNDE5MTAgLyog
Rm9udEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTFBNDkxODIwOENENjAwMzEwMDdB
IC8qIFdLTlNTdHJpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBC
NjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCmluZGV4IDQxNTRkMDNlZWI2ZDhlYWFkYjc5YWYzN2Nh
NzY1YTVhNjFmMzRlODAuLmFiNWFjZmI1MDE3NDk3YWNlYzAzNWIwNjE1ODAxZmQ0OGQ5MDEwZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTI4LDcgKzI4LDE3IEBACiAKICNpbmNsdWRlIDxXZWJLaXQv
V0tCYXNlLmg+CiAKK2VudW0geworICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA9
IDAsCisgICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsID0gMSwKKyAgICBrV0tEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdE5vb3AgPSAyLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGU7CisKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgc3VjY2Vzcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dE
aWFnbm9zdGljTWVzc2FnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdl
LCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUg
cmVzdWx0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tT
dHJpbmdSZWYgdmFsdWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVj
dCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgewogICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyc2lvbjsKQEAgLTQyLDEzICs1MiwzMCBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwIHsKICAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0
aWNNZXNzYWdlOwogfSBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwOwogCi1l
bnVtIHsga1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Q3VycmVudFZlcnNpb24g
V0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVh
ZCIpID0gMCB9OwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnRWMSB7CisgICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAg
IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkOworCisgICAgLy8gVmVy
c2lvbiAxLgorICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5k
bGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ7CisgICAgV0tCdW5kbGVQYWdlTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZTsKK30gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRWMTsKKworZW51bSB7IGtXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dEN1cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNp
b24gbnVtYmVyIGluc3RlYWQiKSA9IDEgfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29u
c3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGllbnRJbmZvOwogCiAgICAgLy8gVmVyc2lvbiAwLgotICAgIFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nRGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2Fn
ZURlcHJlY2F0ZWQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlTG9nRGlh
Z25vc3RpY01lc3NhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFn
bm9zdGljTWVzc2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHRDYWxsYmFjayAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdDsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOwogfSBX
S0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBXS19ERVBSRUNBVEVEKCJVc2UgYW4g
ZXhwbGljaXQgdmVyc2lvbmVkIHN0cnVjdCBpbnN0ZWFkIik7CiAKICNlbmRpZiAvLyBXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCmluZGV4IDE3
NmNhNjY3N2Y0NjE4NDQ5ZDI1N2ZmMjcyZmI3ZTUwZmE3NzEwNjUuLjlhYjg2ZjkzM2EwMmRmMWY3
YzhjMzE3MmFmYjUzYmI1NTFjNGNmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC0zMSwxMSAr
MzEsMzIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29u
c3QgU3RyaW5nJiBzdWNjZXNzKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3Qg
U3RyaW5nJiBzdWNjZXNzKQoreworICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2VEZXByZWNhdGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VEZXByZWNhdGVkKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRv
QVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHN1Y2Nlc3MuaW1wbCgpKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewogICAgIGlmICgh
bV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2Ns
aWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBs
KCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSShzdWNjZXNzLmltcGwoKSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2UodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24u
aW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0KQorewor
ICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KQorICAgICAg
ICByZXR1cm47CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHRv
QVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwo
KSksIHJlc3VsdCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9jbGll
bnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh0b0FQSShwYWdlKSwgdG9BUEko
bWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSSh2YWx1ZS5p
bXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
aW5kZXggZGRmODM4MDM5YWI2OGNkMDA0NzZiNDFmZDJhNzhmMjlmMGU3ZmE1ZC4uYmI2ZWFlZjVl
MGI4OWVjNjRjZDZiMmFkMjdiYzRlYjM1MjhlNzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMzMs
NyArMzMsNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsKLSAgICB0eXBl
ZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMD4gVmVy
c2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50VjAsIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjE+IFZlcnNp
b25zOwogfTsKIH0KIApAQCAtNDUsNyArNDUsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlPiB7CiBwdWJsaWM6
Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3Mp
OworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmlu
ZyYgc3VjY2Vzcyk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdl
KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IDJhNDNlZGU3MGU0Mjg2MzBkMTQ0ZGRhOWNmMGU1MmFlZDA2ZmM0
OTIuLjQ2ZGRlOGM4OWExYzAyMTc4M2YyOGNhZWM1ZTM5MjE0ZjYwYjk2MTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTk4OSwxNCArOTg5LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCiAgICAgbV9wYWdl
LT5udW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKQotewotICAgIGlm
ICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhZ2UsIG1lc3NhZ2Us
IGRlc2NyaXB0aW9uLCBzdWNjZXNzKTsKLX0KLQogU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6cGx1
Z0luU3RhcnRMYWJlbFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnBsdWdJblN0YXJ0TGFiZWxU
aXRsZShtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBhNjZjNGVmOTlkNWY3ODFh
ZWI5NjJjNDMxZmM2N2MyM2NjMTBhMGZlLi5jM2M3N2ExY2JlZWU2MDBmNjg0MzgzYWJiYWMzNzRi
MmU0YzdlNjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4Niw4ICsyODYsNiBAQCBwcml2
YXRlOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgc3VjY2Vzcykgb3ZlcnJpZGU7Ci0KICAgICB2aXJ0dWFsIFN0cmluZyBwbHVn
SW5TdGFydExhYmVsVGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luU3RhcnRMYWJlbFN1YnRpdGxlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJbkV4
dHJhU3R5bGVTaGVldCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTdjOWI5MzgxZTdmZjcyOWI3MTkxYzQ0
MzcyNjQzOWUwMWNhYjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXZWJQYWdlJiBw
YWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Ojp+V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKQoreworfQorCit2b2lkIFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFtX3BhZ2UuY29y
ZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbik7
Cit9CisKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpMb2dSZXN1bHRUeXBlIHJl
c3VsdCkKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0
ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdCgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KTsKK30KKwordm9p
ZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFiMTAxNjJhZmYyM2M3YjRhNGZiZjA1YTA5NWYxNTZm
NzEyMzIzYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMCwwICsxLDUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisjZGVmaW5l
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgeworcHVi
bGljOgorICAgIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB2aXJ0
dWFsIH5XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBMb2dSZXN1bHRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsK
KworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjJhYTQ5NzA5MGQ1Y2Rh
MDdkYjc1YzEyYzMwYzY5ODBmMDQwMTNiYy4uMTM0ZjM2YjEzMGM3MDRmYzlhYjBmMzM4OTllZTA2
NDAzNjQwOGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKQEAgLTEzMSw2ICsxMzIsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZUV2ZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29u
ZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZVRocm90dGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bHVnaW5Eb2N1bWVudC5oPgpAQCAtMzM4LDMxICszNDAsMzIgQEAgV2ViUGFnZTo6V2ViUGFnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiAgICAgU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRy
dWUpOwogI2VuZGlmCiAKLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBw
YWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOworICAg
IFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOworICAgIHBhZ2VDb25maWd1cmF0
aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCi0gICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcg
V2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY29udGV4
dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAg
ICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQo
dGhpcyk7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBwYWdlQ2xpZW50cy5kcmFnQ2xp
ZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJh
Z0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVu
dHMuYmFja0ZvcndhcmRDbGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRo
aXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50ID0gV2ViQmFja0Zv
cndhcmRMaXN0UHJveHk6OmNyZWF0ZSh0aGlzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IG1faW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKLSAgICBw
YWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKICNlbmRp
ZgogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKLSAgICBwYWdlQ2xpZW50cy5hbHRlcm5h
dGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHRoaXMpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFsdGVybmF0aXZlVGV4dENsaWVudCA9IG5ldyBXZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5wbHVnSW5DbGll
bnQgPSBuZXcgV2ViUGx1Z0luQ2xpZW50KHRoaXMpOwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNs
aWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xp
ZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
KCp0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnSW5DbGllbnQgPSBuZXcgV2ViUGx1
Z0luQ2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1h
aW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KCp0
aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IG5l
dyBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgqdGhpcyk7CiAKLSAgICBwYWdlQ2xpZW50cy51
c2VyQ29udGVudENvbnRyb2xsZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlciA/ICZtX3VzZXJD
b250ZW50Q29udHJvbGxlci0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkgOiBudWxscHRyOwotICAg
IHBhZ2VDbGllbnRzLnZpc2l0ZWRMaW5rU3RvcmUgPSBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxl
cjo6Z2V0T3JDcmVhdGUocGFyYW1ldGVycy52aXNpdGVkTGlua1RhYmxlSUQpOworICAgIHBhZ2VD
b25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciA9IG1fdXNlckNvbnRlbnRDb250cm9s
bGVyID8gJm1fdXNlckNvbnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSA6
IG51bGxwdHI7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5r
VGFibGVJRCk7CiAKLSAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDbGll
bnRzKTsKKyAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0
aW9uKTsKIAogICAgIG1fZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYTo6Y3JlYXRlKCp0aGlzLCBw
YXJhbWV0ZXJzKTsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXRQYWludGluZ0VuYWJsZWQoZmFsc2Up
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242091</attachid>
            <date>2014-11-21 15:58:23 -0800</date>
            <delta_ts>2014-11-21 16:02:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141121155840.patch</filename>
            <type>text/plain</type>
            <size>78822</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI5ODIwYzI2MWYxZjg3
YTlhMjJhOTk3OTFiNmM2ZDMzNWQ0N2EyMS4uNTEwMzgxMzUyZTI2NjViNjQxYzZmYTAyYmM1MWEw
NGRhNDFhNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTIxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW5kZXJFbGVtZW50OjpyZW1vdmVDaGlsZCgpIGRvZXNuJ3QgbmVl
ZCBhIHJldHVybiB2YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA3Yjg5ZmYyMjQxMzkxYWExNDEx
YjY0ODc3Mzk2MWM2YjE5ODNhOWY5Li5iZWMwODI3ODRhN2Y3MDI5OTFiYjAyOGYxNTRmOTVjYTNh
MjI1MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTEtMTQgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBs
ZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhZ2U6OlBhZ2VDbGllbnRzIGhhcyBiZWVuIHJl
bmFtZWQgUGFnZUNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpn
cm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdp
dGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMTQtMTEtMjEgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjE3NjM1MSk6IFBhcnRzIG9mIGFwcGxlLmNvbS9jb250YWN0IGFyZW4ndCBMb29rdXAtYWJs
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IGVkYzhjMDA5YmUzODI2ZmIxZjQ4YzE4OTkzNGZhMWQ2N2Y5
OWY0ZmMuLjQxNmI3YzNhZGIwM2M5NTg4MDhiYWYzZTVjZmY1Y2U4Y2VjNjhkMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMS0xNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIHNpZ25hdHVyZXMgb2Yg
ZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgaGFzIGJlZW4gcmVuYW1lZCBQYWdlQ29uZmln
dXJhdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5p
dFdpdGhGcmFtZSk6CisKIDIwMTQtMTEtMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBBbm90aGVyIFdpbmRvd3MgYnVpbGQgZml4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGVlMGY0YjZiMjViYTE0NDcyNjYxMmM0NDA1MTEwMzU1NjYxMWRiYTkuLjBjMTEzNDQ0N2Zl
NWZiOGVmMzRhYzZjYzlhZWQyMGI3ZjY2ODhkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBA
QAorMjAxNC0xMS0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBTdXBwb3J0IG11bHRpcGxlIHNpZ25hdHVyZXMgb2YgZGlhZ25vc3RpYyBsb2dnaW5nLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIHRoZSBl
eGlzdGluZyBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBpbnRlcmZhY2UgYnkg
ZGVwcmVjYXRpbmcKKyAgICAgICAgdGhlIG9yaWdpbmFsIGxvZ0RpYWdub3N0aWNNZXNzYWdlIGNs
aWVudCBtZXRob2QgaW4gVjEgYW5kIGFkZGluZyB0aHJlZSBuZXcsCisgICAgICAgIGV4cGxpY2l0
IGNsaWVudCBtZXRob2RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlRGVw
cmVjYXRlZCk6CisgICAgICAgICAgICBSZW5hbWVkIGZyb20gbG9nRGlhZ25vc3RpY01lc3NhZ2Uo
KS4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTogUGFzcyB0byB0aGUgY2xpZW50LgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpOiBTaW1wbGUgY29uc3RydWN0b3Iu
CisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+V2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQpOiBTaW1wbGUgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKFdlYktpdDo6
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTogUGFzcyB0
byB0aGUgaW5qZWN0ZWQgYnVuZGxlLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQ
YWdlKTogSW5pdGlhbGl6ZSB0aGUgbmV3IGNsaWVudC4KKwogMjAxNC0xMS0wNiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXVtXSzJdIFNpbXBsaWZ5IHRo
ZSBNZWRpYUtleXMgb3JpZ2luIGRlbGV0aW9uIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGUwNTYzYTQ4ZDg4N2E4NjRhOTA4ZjU5ZTUyZjRhMGFkYzM1MzQ3MmQuLmVmMjI5NDI2Y2ZiYTMx
Y2YxNWYxN2E4Y2ZjYTg1M2VjZTQxY2E1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTEy
LDYgKzE5MTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NF
bnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCiAgICAgcGFnZS9QYWdlQWN0aXZpdHlBc3NlcnRp
b25Ub2tlbi5jcHAKKyAgICBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAogICAgIHBhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRjMTMwNjg1Mzk0
ZGMzODJlN2MzZjZhZTVlODMyZDEwNzIyMzZmNGIuLmZhNmM5M2IwY2QwZmJiNTkwZjYzZDZmMTIx
NzQ2NDhiOTU0NmM1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMTMxLDggKzExMzEsNiBA
QCBfX1pON1dlYkNvcmU0Tm9kZTE4c3RhcnRJZ25vcmluZ0xlYWtzRXYKIF9fWk43V2ViQ29yZTRO
b2RlMTlzZXROZWVkc1N0eWxlUmVjYWxjRU5TXzE1U3R5bGVDaGFuZ2VUeXBlRQogX19aTjdXZWJD
b3JlNE5vZGU2cmVtb3ZlRVJpCiBfX1pON1dlYkNvcmU0UGFnZTEwZmluZFN0cmluZ0VSS04zV1RG
NlN0cmluZ0VoCi1fX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNDMUV2Ci1fX1pON1dlYkNv
cmU0UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pON1dlYkNvcmU0UGFnZTEyc2V0R3JvdXBOYW1l
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldElzVmlzaWJsZUViCiBfX1pO
N1dlYkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5TXzlTZXNzaW9uSURFCkBAIC0xMTc5LDcgKzEx
NzcsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTM3c2V0SW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0
aW9uTW9kZUViCiBfX1pON1dlYkNvcmU0UGFnZThnb1RvSXRlbUVQTlNfMTFIaXN0b3J5SXRlbUVO
U18xM0ZyYW1lTG9hZFR5cGVFCiBfX1pON1dlYkNvcmU0UGFnZThzZXRNdXRlZEViCiBfX1pON1dl
YkNvcmU0UGFnZTlpbml0R3JvdXBFdgotX19aTjdXZWJDb3JlNFBhZ2VDMUVSTlMwXzExUGFnZUNs
aWVudHNFCitfX1pON1dlYkNvcmU0UGFnZUMxRVJOU18xN1BhZ2VDb25maWd1cmF0aW9uRQogX19a
TjdXZWJDb3JlNFBhZ2VEMUV2CiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktO
U18xNkZsb2F0Um91bmRlZFJlY3RFTlMwXzE5Um91bmRlZFJlY3RTdHJhdGVneUUKIF9fWk43V2Vi
Q29yZTRQYXRoMTRhZGRSb3VuZGVkUmVjdEVSS05TXzlGbG9hdFJlY3RFUktOU185RmxvYXRTaXpl
RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRlZ3lFCkBAIC0yMzA5LDYgKzIzMDcsOCBAQCBfX1pON1dl
YkNvcmUxNkpTWE1MSHR0cFJlcXVlc3Q5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0NvbG9yCiBfX1pON1dlYkNvcmUxNmRlbGV0ZUFs
bENvb2tpZXNFUktOU18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkUKIF9fWk43V2ViQ29yZTE2ZW5j
bG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CitfX1pON1dlYkNvcmUxN1BhZ2VDb25maWd1cmF0aW9u
QzFFdgorX19aTjdXZWJDb3JlMTdQYWdlQ29uZmlndXJhdGlvbkQxRXYKIF9fWk43V2ViQ29yZTE3
U2Nyb2xsYmFyVGhlbWVNYWMyM3NldFVwT3ZlcmhhbmdBcmVhU2hhZG93RVA3Q0FMYXllcgogX19a
TjdXZWJDb3JlMTdTY3JvbGxiYXJUaGVtZU1hYzI0cmVtb3ZlT3ZlcmhhbmdBcmVhU2hhZG93RVA3
Q0FMYXllcgogX19aTjdXZWJDb3JlMTdTY3JvbGxiYXJUaGVtZU1hYzI3c2V0VXBPdmVyaGFuZ0Fy
ZWFCYWNrZ3JvdW5kRVA3Q0FMYXllclJLTlNfNUNvbG9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNzUzNzBmZTJjZDllOGJjM2NlZTVm
NGE1ZjFkZmVjZjNjMDRjMGY0Zi4uOTBiZWFiZjc1MGY1NWExMzE5NWJiNjc2MWIyMTNmYmIyY2Mx
MmY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCkBAIC03MTkwLDYgKzcxOTAsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFn
ZVxPcmlnaW5BY2Nlc3NFbnRyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxw
YWdlXFBhZ2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQWN0
aXZpdHlBc3NlcnRpb25Ub2tlbi5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxw
YWdlXFBhZ2VDb25maWd1cmF0aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcUGFnZUNvbnNvbGVDbGllbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGFnZVxQYWdlR3JvdXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFn
ZVxQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzOGY4MGE1ZTNkNmZlMjMwYmYx
Y2IyOTU5MGJmZDJmODVlZGQzZDguLjg5ZmIzYzc3ODFmOGVjMWMwYTY3ODUwZDAyNjEwYzg3ODA1
NmZhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTU1OTksNiArNTU5OSw3IEBACiAJCUNEMEVFRTBFMTQ3NDNGMzkwMDNFQUZB
MiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMEVFRTBCMTQ3NDNFMzUwMDNFQUZBMiAvKiBBdWRpb0Rlc3Rp
bmF0aW9uSU9TLmNwcCAqLzsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNv
cmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNE
MTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcw
MDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxQjRBNjUxNjA3ODZBRTAwMjgyREY5
IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RBOThEQzIxNjAxNEVFRTAwRkVBM0IxIC8qIE1lZGlhS2V5TmVl
ZGVkRXZlbnQuY3BwICovOyB9OwogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87
IH07CkBAIC01NjM1LDYgKzU2MzYsOCBAQAogCQlDRDU0REU0QjE3NDY5QzZEMDA1RTVCMzYgLyog
QXVkaW9TZXNzaW9uTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3Bw
ICovOyB9OwogCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9T
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTU5
NjhGMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwICovOyB9OwogCQlD
RDU1OTY5MjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY5MDE0NzVCNjc4MDAx
RDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi87IH07CisJCUNENUU1QjVGMUExNUNFNTQw
MDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25m
aWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQ0Q1RTVCNjExQTE1RjE1NjAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUU1QjYwMUEx
NUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi87IH07CiAJCUNENjBDMEM2
MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjBDMEM0MTkzRTg3QzcwMDNDNjU2QiAvKiBN
ZWRpYVRpbWVRVEtpdC5tbSAqLzsgfTsKIAkJQ0Q2MEMwQzcxOTNFODdDNzAwM0M2NTZCIC8qIE1l
ZGlhVGltZVFUS2l0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDYwQzBDNTE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQuaCAqLzsgfTsK
IAkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTExNUI1
Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovOyB9OwpAQCAtMTMwNTgs
NiArMTMwNjEsNyBAQAogCQlDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5h
dGlvbklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0Rl
c3RpbmF0aW9uSU9TLmNwcDsgcGF0aCA9IGlvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDE5QTI2NzFBMTNFNzAw
MDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJl
c2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Qy
N0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFD
b250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTIxNDU3
Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEzMTA0LDYgKzEzMTA4LDggQEAKIAkJQ0Q1NERFNDkxNzQ2OUM2RDAw
NUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDU1OTY4RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEF1ZGlvRmlsZVJlYWRlcklPUy5j
cHA7IHBhdGggPSBpb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q1NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklP
Uy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdWRpb0ZpbGVSZWFkZXJJT1Mu
aDsgcGF0aCA9IGlvcy9BdWRpb0ZpbGVSZWFkZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q1RTVCNUUxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUU1QjYwMUExNUYxNTYwMDBDNjA5RSAvKiBQ
YWdlQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYWdlQ29uZmlndXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NjBDMEM0MTkzRTg3QzcwMDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhVGltZVFUS2l0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBDNTE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1l
UVRLaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lUVRLaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQx
IC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVNvdXJjZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
NjczLDYgKzE2Njc5LDggQEAKIAkJCQk2NUEyMTQ2NzA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5o
ICovLAogCQkJCUNEMDgyODVBMTc1NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRp
b25Ub2tlbi5jcHAgKi8sCiAJCQkJQ0QwODI4NUIxNzU3MjUwODAwRUM1RkI3IC8qIFBhZ2VBY3Rp
dml0eUFzc2VydGlvblRva2VuLmggKi8sCisJCQkJQ0Q1RTVCNjAxQTE1RjE1NjAwMEM2MDlFIC8q
IFBhZ2VDb25maWd1cmF0aW9uLmNwcCAqLywKKwkJCQlDRDVFNUI1RTFBMTVDRTU0MDAwQzYwOUUg
LyogUGFnZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUg
LyogUGFnZUNvbnNvbGVDbGllbnQuY3BwICovLAogCQkJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEz
NSAvKiBQYWdlQ29uc29sZUNsaWVudC5oICovLAogCQkJCUE1QTJBRjA5MTgyOTczNDMwMERFMTcy
OSAvKiBQYWdlRGVidWdnYWJsZS5jcHAgKi8sCkBAIC0xNjc3Myw2ICsxNjc4MSw3IEBACiAJCQkJ
RTEyNzFBMTMwRUVFQzgwNDAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5jcHAgKi8sCiAJCQkJ
RTEyNzFBMEEwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oICovLAogCQkJCUUx
MjcxQTUxMEVFRUNEMUMwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaWRsICovLAorCQkJCUNE
MTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBwYWdlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIz
OTM3LDYgKzIzOTQ2LDcgQEAKIAkJCQk4NThDMzgyQzBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NT
UHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1OTA5RDI5MEFDQzdENTUwMERG
MDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NTAzMkRFMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0QxOUEyNjgxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NT
UnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMkRFMzBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMTkyMEFDNUQ1
MzUwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAg
LTI0NDg2LDYgKzI0NDk2LDcgQEAKIAkJCQlGRDMxNjA5RjEyQjAyNkY3MDBDMUEzNTkgLyogSFJU
Rktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTExMkIwMjZGNzAwQzFBMzU5IC8q
IEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdFMjNBMTA5MTQ0OTUwMDEwRDM2
MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q1RTVCNUYxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OENGRjdBQjBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hvckVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4NzFENDVEMEExMjdDQkMwMEIxMkE2OCAvKiBIVE1MQXBwbGV0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkUwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxBcmVh
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY5OCw2ICsyNzcwOSw3IEBACiAJCQkJNTJC
NkM5QzIxNUUzRjRERjAwNjkwQjA1IC8qIERPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODUxOERENzkwQTlDRjMxQjAwOTFCN0E2IC8qIERPTU5hbWVkTm9kZU1h
cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1M0JGNERDMEFCQjZCNTUwMDg2NDdCQiAvKiBET01O
b2RlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1RTVCNjExQTE1RjE1NjAwMEM2MDlFIC8qIFBh
Z2VDb25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NTI2QzM4MEFCMEExN0Uw
MDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUFDQUE4
RTBBOUI3NTlDMDA2NzFFOTAgLyogRE9NTm9kZUxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NUNBOTZFQjBBOTYyNEU5MDA2OTBDQ0YgLyogRE9NTm90YXRpb24ubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDg3ZGZiMWQ3MjZk
NzMzNjU5ZTUyYjNmMTEwNjU2MGRjOWNiNTZlMzUuLjFlNzVlNWI1NWQ0OGVmYTQ5ZTcxODk2NDY2
YzUwNWE1YWQ0ZjM1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgog
I2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVk
ZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2lu
Z0tleXMuaCIKICNpbmNsdWRlICJEaXNwbGF5U2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCkBAIC0xODI1LDIwICsxODI2LDIyIEBAIHN0YXRpYyB2b2lkIGxvZ01l
ZGlhTG9hZFJlcXVlc3QoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZWRpYUVuZ2luZSwgY29u
c3QgU3RyCiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dn
aW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBDaHJvbWVDbGllbnQmIGNocm9t
ZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpOworICAgIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFzdWNjZWVkZWQpIHsKLSAgICAgICAgY2hyb21l
Q2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFM
b2FkaW5nRmFpbGVkS2V5KCksIGVycm9yTWVzc2FnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpm
YWlsS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkaW5nRmFp
bGVkS2V5KCksIGVycm9yTWVzc2FnZSwgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkZhaWwpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2hyb21lQ2xpZW50LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkZWRLZXkoKSwgbWVkaWFFbmdp
bmUsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICBkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpt
ZWRpYUxvYWRlZEtleSgpLCBtZWRpYUVuZ2luZSk7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5B
bnlNZWRpYUVuZ2luZSgpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lTWVkaWFFbmdp
bmVLZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkp
OworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2Uo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lTWVkaWFFbmdpbmVL
ZXkoKSwgZW1wdHlTdHJpbmcoKSk7CiAKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5NZWRpYUVuZ2lu
ZShtZWRpYUVuZ2luZSkpCi0gICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc01lZGlhRW5naW5lS2V5KCksIG1l
ZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAgICAgIGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnBhZ2VDb250YWluc01lZGlhRW5naW5lS2V5KCksIG1lZGlhRW5naW5lKTsKIAog
ICAgIHBhZ2UtPnNhd01lZGlhRW5naW5lKG1lZGlhRW5naW5lKTsKIH0KQEAgLTU3NjcsOSArNTc3
MCwxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9M
b2FkKCkgY29uc3QKICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPnNldHRpbmdzKCkuZGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIGVuZ2luZSA9IG1fcGxheWVyLT5lbmdp
bmVEZXNjcmlwdGlvbigpOwotICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpudW1iZXIobV9w
bGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpOwotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVk
VG9Mb2FkS2V5KCksIGVuZ2luZSwgbWVzc2FnZSk7CisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6
ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIGVuZ2luZSwgU3RyaW5nOjpudW1iZXIobV9wbGF5ZXIt
PnBsYXRmb3JtRXJyb3JDb2RlKCkpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1v
dmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDcyNWY2OThiOWVk
NDc2MzFiOGJkYzIxOWEwNmI0NWU1YjhmNzU0ODIuLmM4NDc0NWMyZGY1MWRhM2VjMDk5NjJlMGUz
YWJmYTY1NDIwYTI2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNp
bmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1
cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCiAjaW5jbHVkZSAiUmVjdGFuZ2xl
U2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5oIgpAQCAtODA4LDkgKzgw
OSw5IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBpZiAobV9v
dmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3ZlcmxheVBhZ2UuZ2V0KCk7CiAKLSAgICBQ
YWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhw
YWdlQ2xpZW50cyk7Ci0gICAgbV9vdmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4o
cGFnZUNsaWVudHMpOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOwor
ICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDb25maWd1cmF0aW9uKTsKKyAgICBtX292ZXJs
YXlQYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ29uZmlndXJhdGlvbik7CiAKICAg
ICBTZXR0aW5ncyYgc2V0dGluZ3MgPSBtX3BhZ2Uuc2V0dGluZ3MoKTsKICAgICBTZXR0aW5ncyYg
b3ZlcmxheVNldHRpbmdzID0gbV9vdmVybGF5UGFnZS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggOGU3NTQ5NzZmMDJkMzRmYjI3OTlmNjcwY2Vk
NmJjZTU0NjJjZDA1ZC4uNzY5ZTAyNDBmNmIxMzliMGI5ZDM1MThiYjE2NDM5NmM5ZTdjODRjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCkBAIC00MywzMiArNDQsMzUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci12b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2U6OlBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50
cykKK3ZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25m
aWd1cmF0aW9uKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVu
dD4gZHVtbXlDaHJvbWVDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gJmR1
bW15Q2hyb21lQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVu
dCA9ICZkdW1teUNocm9tZUNsaWVudC5nZXQoKTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNvbnRleHRNZW51Q2xpZW50PiBkdW1t
eUNvbnRleHRNZW51Q2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0g
JmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY29u
dGV4dE1lbnVDbGllbnQgPSAmZHVtbXlDb250ZXh0TWVudUNsaWVudC5nZXQoKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlEcmFnQ2xpZW50PiBkdW1teURyYWdDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVu
dCA9ICZkdW1teURyYWdDbGllbnQuZ2V0KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0Ns
aWVudCA9ICZkdW1teURyYWdDbGllbnQuZ2V0KCk7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxFbXB0eUVkaXRvckNsaWVudD4gZHVtbXlFZGl0b3JDbGllbnQ7Ci0gICAgcGFn
ZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gJmR1bW15RWRpdG9yQ2xpZW50LmdldCgpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5nZXQoKTsK
IAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUluc3BlY3RvckNsaWVudD4gZHVtbXlJ
bnNwZWN0b3JDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gJmR1bW15
SW5zcGVjdG9yQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNs
aWVudCA9ICZkdW1teUluc3BlY3RvckNsaWVudC5nZXQoKTsKIAogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PiBkdW1teUZyYW1lTG9hZGVyQ2xpZW50Owot
ICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9ICZkdW1teUZyYW1lTG9h
ZGVyQ2xpZW50LmdldCgpOwotICAgIAorICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSA9ICZkdW1teUZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOworCiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiBkdW1teVByb2dy
ZXNzVHJhY2tlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQg
PSAmZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQuZ2V0KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmdl
dCgpOworCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+IGR1bW15RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSAmZHVtbXlEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5nZXQoKTsKIH0KIAogY2xhc3MgRW1wdHlQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBmMzIwYzU5OTdjZDNjOWUzMTUy
ZGFhMmNiNzFlODRjM2JhYTg2OTBkLi40NzRkMTlhN2RkZWNhMWE3NTZjYTRiYTNiYjFjNzUwY2M0
ZWM5NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50Lmgi
CkBAIC02MzQsNyArNjM1LDEzIEBAIGNsYXNzIEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IDog
cHVibGljIFByb2dyZXNzVHJhY2tlckNsaWVudCB7CiAgICAgdmlydHVhbCB2b2lkIHByb2dyZXNz
RmluaXNoZWQoRnJhbWUmKSBvdmVycmlkZSB7IH0KIH07CiAKLXZvaWQgZmlsbFdpdGhFbXB0eUNs
aWVudHMoUGFnZTo6UGFnZUNsaWVudHMmKTsKK2NsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQgOiBwdWJsaWMgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgeworICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIExvZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KK307CisK
K3ZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mKTsKIAogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4ZTRkYWE3MjAzNjc2MmZlMzll
YWViMmJhYWQyMTBiNTAyNGI2N2RjLi5jNWRiNThmMTgxNDY1MWQ0Mzc1NDQzM2JlZGQwMDEyOWJh
OGExOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ3LDYgKzQ3
LDcgQEAKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKQEAgLTIy
NjYsNyArMjI2NywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRo
aXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPnNldHRpbmdzKCkuZGlh
Z25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3Iu
aXNOdWxsKCkgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhc3NLZXkoKSA6IERpYWdub3N0aWNM
b2dnaW5nS2V5czo6ZmFpbEtleSgpKTsKKyAgICAgICAgICAgIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgICAgICAgICBpZiAoIWRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkg
PyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
OjpGYWlsKTsKIAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA1YzM3Nzg5MWI2NDI2ZDViYjVlN2U5NDNm
NDYxODg4ZjZiOWExMTJjLi4zYTI2MGQ3ZDQzMjliOWM2OTgxMGEwNDU0MjBjZTZlMWRkY2IxNjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgog
I2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1ZGUgIlBsdWdp
bkRvY3VtZW50LmgiCkBAIC0xOTIsMTQgKzE5NCwxNyBAQCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5S
ZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYg
dQogICAgIFN0cmluZyBwbHVnaW5GaWxlID0gcGFnZS0+cGx1Z2luRGF0YSgpLnBsdWdpbkZpbGVG
b3JNaW1lVHlwZShuZXdNSU1FVHlwZSk7CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIXBsdWdp
bkZpbGUgPyBuZXdNSU1FVHlwZSA6IHBsdWdpbkZpbGU7CiAKLSAgICBDaHJvbWVDbGllbnQmIGNo
cm9tZUNsaWVudCA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpOwotICAgIGNocm9tZUNsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVn
aW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxl
ZEtleSgpLCBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOwor
ICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBh
Z2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgaWYgKCFkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnBsdWdpbkxvYWRlZEtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVn
aW5Mb2FkaW5nRmFpbGVkS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIGlmICghcGFnZS0+aGFz
U2VlbkFueVBsdWdpbigpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5
KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKLSAg
ICAKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgp
LCBlbXB0eVN0cmluZygpKTsKKwogICAgIGlmICghcGFnZS0+aGFzU2VlblBsdWdpbihkZXNjcmlw
dGlvbikpCi0gICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc1BsdWdpbktleSgpLCBkZXNjcmlwdGlvbiwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkpOworICAgICAgICBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdl
Q29udGFpbnNQbHVnaW5LZXkoKSwgZGVzY3JpcHRpb24pOwogCiAgICAgcGFnZS0+c2F3UGx1Z2lu
KGRlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDg3OGRl
ZTU4Mzg3MmExNTdiNzc3ZmQyODg2YTU3NGQ4ZjczMDRmNDYuLjNiYmQ2YzBkNzQ4ZWNhMGVhOGIy
MTc1ZDkzMmRjZTBmMmZmNTg0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
NDE2LDggKzQxNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0
aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgU3RyaW5nJiBzdGF0dXMpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURf
UEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0oc3RhdHVzKTsgfQotCiAgICAgdmlydHVh
bCBGbG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUo
MTAwLCAxMDApOyB9OwogCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MTM5MzQ1MTk5ZWJhNWQyODgxM2QyOTkyMzQ5
NjVjNjAxMDAwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsgfQorCisgICAgZW51bSBMb2dSZXN1bHRUeXBlIHsKKyAgICAgICAgUGFz
cywKKyAgICAgICAgRmFpbCwKKyAgICAgICAgTm9vcCwKKyAgICB9OworICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBMb2dSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTSht
ZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgVU5VU0VEX1BBUkFN
KG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0odmFsdWUp
OyB9CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgp
IHsgfQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAppbmRleCA3
ODAzZjg4N2U3NzMyNWFjYjZhMmYyMDZlYTU5MDhlNjU5NzRmOWQ4Li5jODBiOWMzNzFlZjZhZDVl
MGY5NzljYjc0NzU3OWRkNDEyZWQ4NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1l
LmgiCiAKKyNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VPdmVy
bGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNs
dWRlICJXaGVlbEV2ZW50RGVsdGFUcmFja2VyLmgiCkBAIC0zNiw4ICszNyw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2Us
IEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCi0gICAgOiBGcmFtZShwYWdlLCBudWxscHRyLCBj
bGllbnQpCitpbmxpbmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFnZSYgcGFnZSwgUGFnZUNvbmZp
Z3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgOiBGcmFtZShwYWdlLCBudWxscHRyLCAqY29u
ZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpCiAgICAgLCBtX3NlbGZPbmx5UmVm
Q291bnQoMCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX2xhdGNoaW5nU3RhdGUoc3RkOjpt
YWtlX3VuaXF1ZTxTY3JvbGxMYXRjaGluZ1N0YXRlPigpKQpAQCAtNDcsNiArNDgsNyBAQCBpbmxp
bmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFnZSYgcGFnZSwgRnJhbWVMb2FkZXJDbGllbnQmIGNs
aWVudCkKICNlbmRpZgogICAgICwgbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFUcmFja2VyKHN0ZDo6
bWFrZV91bmlxdWU8V2hlZWxFdmVudERlbHRhVHJhY2tlcj4oKSkKICAgICAsIG1fcGFnZU92ZXJs
YXlDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8UGFnZU92ZXJsYXlDb250cm9sbGVyPigqdGhp
cykpCisgICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KGNvbmZpZ3VyYXRpb24uZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQpCiB7CiB9CiAKQEAgLTU0LDkgKzU2LDkgQEAgTWFpbkZyYW1lOjp+
TWFpbkZyYW1lKCkKIHsKIH0KIAotUmVmUHRyPE1haW5GcmFtZT4gTWFpbkZyYW1lOjpjcmVhdGUo
UGFnZSYgcGFnZSwgRnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCkKK1JlZlB0cjxNYWluRnJhbWU+
IE1haW5GcmFtZTo6Y3JlYXRlKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWFpbkZyYW1lKHBhZ2UsIGNsaWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWFpbkZyYW1lKHBhZ2UsIGNvbmZpZ3VyYXRp
b24pKTsKIH0KIAogdm9pZCBNYWluRnJhbWU6OnNlbGZPbmx5UmVmKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5G
cmFtZS5oCmluZGV4IGJkNmNlNzkwM2NjY2U2Yjc2OTAzYjYxZWRlNDY0YTNjMTc1ZDJiY2QuLmMx
MDk5NDAyMGI3ZWE1NmVjNDc4Nzg3YzgzMzliYmQ0NzgyODEyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWlu
RnJhbWUuaApAQCAtMzAsNiArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFz
cyBQYWdlT3ZlcmxheUNvbnRyb2xsZXI7CiBjbGFzcyBTY3JvbGxMYXRjaGluZ1N0YXRlOwogY2xh
c3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjsKQEAgLTM3LDcgKzM5LDcgQEAgY2xhc3MgV2hl
ZWxFdmVudERlbHRhVHJhY2tlcjsKIAogY2xhc3MgTWFpbkZyYW1lIGZpbmFsIDogcHVibGljIEZy
YW1lIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1haW5GcmFtZT4gY3JlYXRlKFBhZ2Um
LCBGcmFtZUxvYWRlckNsaWVudCYpOworICAgIHN0YXRpYyBSZWZQdHI8TWFpbkZyYW1lPiBjcmVh
dGUoUGFnZSYsIFBhZ2VDb25maWd1cmF0aW9uJik7CiAKICAgICB2aXJ0dWFsIH5NYWluRnJhbWUo
KTsKIApAQCAtNTYsOCArNTgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRMYXRjaGluZ1N0
YXRlKCk7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCisgICAgRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDsgfQorCiBwcml2YXRlOgotICAgIE1haW5GcmFtZShQYWdlJiwgRnJh
bWVMb2FkZXJDbGllbnQmKTsKKyAgICBNYWluRnJhbWUoUGFnZSYsIFBhZ2VDb25maWd1cmF0aW9u
Jik7CiAKICAgICB2b2lkIGRyb3BDaGlsZHJlbigpOwogCkBAIC03MSw2ICs3NSw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2hlZWxFdmVudERlbHRhVHJhY2tlcj4g
bV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFUcmFja2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdl
T3ZlcmxheUNvbnRyb2xsZXI+IG1fcGFnZU92ZXJsYXlDb250cm9sbGVyOworICAgIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KiBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogfTsKIAogaW5saW5l
IGJvb2wgRnJhbWU6OmlzTWFpbkZyYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGMx
MWJiMDBmMWM5YmRlYjQ5YmUzODUwZjA2M2YzOWQ5YTEzYjFiNGUuLjI2MzYxNjgyYmMxMjk3NWNl
MGM0OWQ4NTdhMTg1NjE2YmFmZWFmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTcsNiArNTcs
NyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUFj
dGl2aXR5QXNzZXJ0aW9uVG9rZW4uaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUGFnZURlYnVnZ2FibGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTEy
NCwzNCArMTI1LDM0IEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09u
TGluZSkKIAogc3RhdGljIGNvbnN0IFZpZXdTdGF0ZTo6RmxhZ3MgUGFnZUluaXRpYWxWaWV3U3Rh
dGUgPSBWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKIAotUGFn
ZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCi0gICAgOiBtX2Nocm9tZShzdGQ6Om1h
a2VfdW5pcXVlPENocm9tZT4oKnRoaXMsICpwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQorUGFn
ZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24pCisgICAgOiBtX2No
cm9tZShzdGQ6Om1ha2VfdW5pcXVlPENocm9tZT4oKnRoaXMsICpwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlx
dWU8RHJhZ0NhcmV0Q29udHJvbGxlcj4oKSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
ICwgbV9kcmFnQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPERyYWdDb250cm9sbGVyPigqdGhp
cywgKnBhZ2VDbGllbnRzLmRyYWdDbGllbnQpKQorICAgICwgbV9kcmFnQ29udHJvbGxlcihzdGQ6
Om1ha2VfdW5pcXVlPERyYWdDb250cm9sbGVyPigqdGhpcywgKnBhZ2VDb25maWd1cmF0aW9uLmRy
YWdDbGllbnQpKQogI2VuZGlmCiAgICAgLCBtX2ZvY3VzQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5p
cXVlPEZvY3VzQ29udHJvbGxlcj4oKnRoaXMsIFBhZ2VJbml0aWFsVmlld1N0YXRlKSkKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICAsIG1fY29udGV4dE1lbnVDb250cm9sbGVyKHN0ZDo6
bWFrZV91bmlxdWU8Q29udGV4dE1lbnVDb250cm9sbGVyPigqdGhpcywgKnBhZ2VDbGllbnRzLmNv
bnRleHRNZW51Q2xpZW50KSkKKyAgICAsIG1fY29udGV4dE1lbnVDb250cm9sbGVyKHN0ZDo6bWFr
ZV91bmlxdWU8Q29udGV4dE1lbnVDb250cm9sbGVyPigqdGhpcywgKnBhZ2VDb25maWd1cmF0aW9u
LmNvbnRleHRNZW51Q2xpZW50KSkKICNlbmRpZgogICAgICwgbV91c2VySW5wdXRCcmlkZ2Uoc3Rk
OjptYWtlX3VuaXF1ZTxVc2VySW5wdXRCcmlkZ2U+KCp0aGlzKSkKICNpZiBFTkFCTEUoV0VCX1JF
UExBWSkKICAgICAsIG1fcmVwbGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFJlcGxheUNv
bnRyb2xsZXI+KCp0aGlzKSkKICNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgLCBt
X2luc3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVy
PigqdGhpcywgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkKKyAgICAsIG1faW5zcGVjdG9y
Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckNvbnRyb2xsZXI+KCp0aGlzLCBw
YWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0b3JDbGllbnQpKQogI2VuZGlmCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAsIG1fcG9pbnRlckxvY2tDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlx
dWU8UG9pbnRlckxvY2tDb250cm9sbGVyPigqdGhpcykpCiAjZW5kaWYKICAgICAsIG1fc2V0dGlu
Z3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKLSAgICAsIG1fcHJvZ3Jlc3Moc3RkOjptYWtlX3Vu
aXF1ZTxQcm9ncmVzc1RyYWNrZXI+KCpwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQp
KQotICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9y
d2FyZENvbnRyb2xsZXI+KCp0aGlzLCBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCkpCi0g
ICAgLCBtX21haW5GcmFtZShNYWluRnJhbWU6OmNyZWF0ZSgqdGhpcywgKnBhZ2VDbGllbnRzLmxv
YWRlckNsaWVudEZvck1haW5GcmFtZSkpCisgICAgLCBtX3Byb2dyZXNzKHN0ZDo6bWFrZV91bmlx
dWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50KSkKKyAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QmFj
a0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRD
bGllbnQpKQorICAgICwgbV9tYWluRnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsIHBhZ2VD
b25maWd1cmF0aW9uKSkKICAgICAsIG1fdGhlbWUoUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSh0
aGlzKSkKLSAgICAsIG1fZWRpdG9yQ2xpZW50KHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCkKLSAg
ICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDbGllbnRzLnBsdWdJbkNsaWVudCkKLSAgICAsIG1fdmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQocGFnZUNsaWVudHMudmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQp
CisgICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQpCisg
ICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ29uZmlndXJhdGlvbi5wbHVnSW5DbGllbnQpCisgICAg
LCBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KHBhZ2VDb25maWd1cmF0aW9uLnZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50KQogICAgICwgbV9zdWJmcmFtZUNvdW50KDApCiAgICAgLCBtX29wZW5lZEJ5
RE9NKGZhbHNlKQogICAgICwgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSkKQEAg
LTE5Miw3ICsxOTMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNp
Zm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzUGFpbnRpbmcoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1f
YWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkK
KyAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDb25maWd1cmF0aW9uLmFsdGVybmF0
aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNl
KQogICAgICwgbV9wYWdlVGhyb3R0bGVyKCp0aGlzLCBtX3ZpZXdTdGF0ZSkKICAgICAsIG1fY29u
c29sZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQ2xpZW50PigqdGhpcykpCkBA
IC0yMDEsOCArMjAyLDggQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAj
ZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50KDApIC8v
IE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciBTcGF0aWFsIE5hdmlnYXRpb24g
dGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudCgwKQotICAg
ICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIoV1RGOjptb3ZlKHBhZ2VDbGllbnRzLnVzZXJDb250
ZW50Q29udHJvbGxlcikpCi0gICAgLCBtX3Zpc2l0ZWRMaW5rU3RvcmUoV1RGOjptb3ZlKHBhZ2VD
bGllbnRzLnZpc2l0ZWRMaW5rU3RvcmUpKQorICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIo
V1RGOjptb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlcikpCisgICAg
LCBtX3Zpc2l0ZWRMaW5rU3RvcmUoV1RGOjptb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRM
aW5rU3RvcmUpKQogICAgICwgbV9zZXNzaW9uSUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpCiAgICAgLCBtX2lzQ2xvc2luZyhmYWxzZSkKICAgICAsIG1faXNQbGF5aW5nQXVkaW8oZmFs
c2UpCkBAIC0xNjU1LDI0ICsxNjU2LDQgQEAgdm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoU2Vzc2lv
bklEIHNlc3Npb25JRCkKICAgICAgICAgdmlldy0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2Vk
KHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKIH0KIAotUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VD
bGllbnRzKCkKLSAgICA6IGFsdGVybmF0aXZlVGV4dENsaWVudChudWxscHRyKQotICAgICwgY2hy
b21lQ2xpZW50KG51bGxwdHIpCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBjb250
ZXh0TWVudUNsaWVudChudWxscHRyKQotI2VuZGlmCi0gICAgLCBlZGl0b3JDbGllbnQobnVsbHB0
cikKLSAgICAsIGRyYWdDbGllbnQobnVsbHB0cikKLSAgICAsIGluc3BlY3RvckNsaWVudChudWxs
cHRyKQotICAgICwgcGx1Z0luQ2xpZW50KG51bGxwdHIpCi0gICAgLCBwcm9ncmVzc1RyYWNrZXJD
bGllbnQobnVsbHB0cikKLSAgICAsIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KG51bGxwdHIpCi0g
ICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUobnVsbHB0cikKLXsKLX0KLQotUGFnZTo6UGFn
ZUNsaWVudHM6On5QYWdlQ2xpZW50cygpCi17Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggYWY3ZjhhY2M0MzQwN2MxNmNjNmIxYWRhNDNiMDljMTkyZjU4Zjhl
My4uN2Y0MjRiMzViNTU5ZTJjMjA0YjlmOTE1YWJiMTAxYzdiMDg4MDQ2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTgxLDYgKzgxLDcgQEAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIE1h
aW5GcmFtZTsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIFBhZ2VBY3Rpdml0
eUFzc2VydGlvblRva2VuOworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29u
c29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1Z2dhYmxlOwogY2xhc3MgUGFnZUdyb3VwOwpAQCAt
MTE5LDMzICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBh
Z2VzKEhpc3RvcnlJdGVtKik7CiAKLSAgICAvLyBJdCBpcyB1cCB0byB0aGUgcGxhdGZvcm0gdG8g
ZW5zdXJlIHRoYXQgbm9uLW51bGwgY2xpZW50cyBhcmUgcHJvdmlkZWQgd2hlcmUgcmVxdWlyZWQu
Ci0gICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIHRvIFBhZ2VDb25maWd1cmF0aW9uIGFuZCBtb3Zl
IGl0IHRvIGl0cyBvd24gY2xhc3MuCi0gICAgc3RydWN0IFBhZ2VDbGllbnRzIHsKLSAgICAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNsaWVudHMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDbGllbnRzKCk7Ci0g
ICAgICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ2xpZW50cygpOwotCi0gICAgICAgIEFsdGVybmF0
aXZlVGV4dENsaWVudCogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwotICAgICAgICBDaHJvbWVDbGll
bnQqIGNocm9tZUNsaWVudDsKLSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICAgICAgQ29u
dGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50OwotI2VuZGlmCi0gICAgICAgIEVkaXRv
ckNsaWVudCogZWRpdG9yQ2xpZW50OwotICAgICAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50Owot
ICAgICAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudDsKLSAgICAgICAgUGx1Z0lu
Q2xpZW50KiBwbHVnSW5DbGllbnQ7Ci0gICAgICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50OwotICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+IGJh
Y2tGb3J3YXJkQ2xpZW50OwotICAgICAgICBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudCogdmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7Ci0gICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGll
bnRGb3JNYWluRnJhbWU7Ci0KLSAgICAgICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4g
dXNlckNvbnRlbnRDb250cm9sbGVyOwotICAgICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4g
dmlzaXRlZExpbmtTdG9yZTsKLSAgICB9OwotCi0gICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQg
UGFnZShQYWdlQ2xpZW50cyYpOworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBhZ2UoUGFn
ZUNvbmZpZ3VyYXRpb24mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZSgpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdWludDY0X3QgcmVuZGVyVHJlZVNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI3MGI3ZWEzYTZiNzRl
OTljZGY4MmNiZTk4MjdkZTk5NTZmMGM0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKKwor
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2xpZW50LmgiCisjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbigpCisgICAgOiBh
bHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKKyAgICAsIGNocm9tZUNsaWVudChudWxscHRy
KQorI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgICwgY29udGV4dE1lbnVDbGllbnQobnVs
bHB0cikKKyNlbmRpZgorICAgICwgZWRpdG9yQ2xpZW50KG51bGxwdHIpCisgICAgLCBkcmFnQ2xp
ZW50KG51bGxwdHIpCisgICAgLCBpbnNwZWN0b3JDbGllbnQobnVsbHB0cikKKyAgICAsIHBsdWdJ
bkNsaWVudChudWxscHRyKQorICAgICwgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIpCisg
ICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudChudWxscHRyKQorICAgICwgbG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lKG51bGxwdHIpCisgICAgLCBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudChudWxs
cHRyKQoreworfQorCitQYWdlQ29uZmlndXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkKK3sK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkwOWI3MjNhZTZjZDQ2NGY5MjAzYmU2MzU1MTQwMTc0NjFmMWVjOWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFnZUNvbmZpZ3VyYXRpb25faAorI2RlZmluZSBQYWdl
Q29uZmlndXJhdGlvbl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50OworY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CitjbGFzcyBDaHJvbWVDbGll
bnQ7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCitjbGFzcyBDb250ZXh0TWVudUNsaWVudDsK
KyNlbmRpZgorY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CitjbGFzcyBEcmFnQ2xpZW50
OworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBJ
bnNwZWN0b3JDbGllbnQ7CitjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ7CitjbGFzcyBVc2VyQ29udGVudENvbnRyb2xsZXI7CitjbGFzcyBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKK2NsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CisKK2NsYXNzIFBhZ2VDb25m
aWd1cmF0aW9uIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2VDb25maWd1cmF0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9u
KCk7CisKKyAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsK
KyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudDsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKKyAgICBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQ7CisjZW5kaWYKKyAg
ICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKKyAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50
OworICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OworICAgIFBsdWdJbkNsaWVu
dCogcGx1Z0luQ2xpZW50OworICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCogcHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50OworICAgIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGll
bnQ7CisgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
OworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWU7CisgICAg
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworCisgICAg
UmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyOworICAg
IFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDVjODhh
NzRmZDJjMWZkYmIwNjcwOWQxZjhkODk5MDIyNGQwMjZkOTUuLjQ5YjkwYmUzNzEyMjUxNDBkNjg2
NTNjMDlkNjYxODcyOTBkOTkxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgpAQCAtMzM5LDEwICszNDAs
MTAgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgewotICAgICAg
ICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICAgICAgZmlsbFdpdGhFbXB0eUNs
aWVudHMocGFnZUNsaWVudHMpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbjsKKyAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24p
OwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHSW1hZ2VDaHJv
bWVDbGllbnQ+KHRoaXMpOwotICAgICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBtX2No
cm9tZUNsaWVudC5nZXQoKTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50
ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgU1ZH
IGVuZHMgdXAgbG9hZGluZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdvcmxkLgogICAgICAg
ICAvLyBUaGUgQ2FjaGUgY29kZSBkb2VzIG5vdCBrbm93IGFib3V0IENhY2hlZEltYWdlcyBob2xk
aW5nIEZyYW1lcyBhbmQKQEAgLTM1MCw3ICszNTEsNyBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hh
bmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgLy8gVGhpcyB3aWxsIGJlY29tZSBh
biBpc3N1ZSB3aGVuIFNWR0ltYWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90aGVyCiAgICAgICAg
IC8vIFNWR0ltYWdlIG9iamVjdHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVjYXVzZSBTVkdJbWFn
ZSBjYW4gb25seSBiZQogICAgICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2ZWwgZG9jdW1lbnQu
Ci0gICAgICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMpOwor
ICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0aW9u
KTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAg
ICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKICAgICAg
ICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAyOTBjMTExY2JlNzFkOGUzYmY0ZWQwYmU5ZDkx
MTc3YjBmYjVkZWJlLi5mMGM0OGJlYzQwMmFkNTUyYjVhZWQ2NDlmYzlkODNlMWI5OGE2YjcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTYsNiArMTU2LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUHJvZ3Jlc3NUcmFja2VyLmg+CkBAIC05MTgsMjMgKzkxOSwyMyBAQCBzdGF0aWMgdm9pZCBX
ZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBkaWRP
bmVUaW1lSW5pdGlhbGl6YXRpb24gPSB0cnVlOwogICAgIH0KIAotICAgIFBhZ2U6OlBhZ2VDbGll
bnRzIHBhZ2VDbGllbnRzOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9u
OwogI2lmICFQTEFURk9STShJT1MpCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3
IFdlYkNocm9tZUNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVu
dCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHNl
bGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVu
dCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdD
bGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRz
Lmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChz
ZWxmKTsKICNlbHNlCi0gICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9t
ZUNsaWVudElPUyhzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcg
V2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwotI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZWRpdG9y
Q2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5hbHRl
cm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHNlbGYpOwot
ICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxv
YWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcg
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3
IFBhZ2UocGFnZUNsaWVudHMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9
IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5z
cGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKKyNlbmRpZgorICAg
IHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2Vs
Zik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdl
YkFsdGVybmF0aXZlVGV4dENsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFn
ZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudChzZWxmKTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDb25m
aWd1cmF0aW9uKTsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlk
ZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudChz
ZWxmKSk7CiAjZW5kaWYKQEAgLTExNTUsMTYgKzExNTYsMTYgQEAgc3RhdGljIHZvaWQgV2ViS2l0
SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICBbZnJhbWVWaWV3IHJl
bGVhc2VdOwogCiAgICAgCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAg
cGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsK
KyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbjsKKyAgICBwYWdlQ29uZmln
dXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBX
ZWJEcmFnQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBu
ZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNs
aWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVj
dG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50
cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0g
ICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudChzZWxmKTsKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGll
bnRzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9y
Q2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5l
dyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VD
b25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQoc2VsZik7CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ29uZmln
dXJhdGlvbik7CiAgICAgCiAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllF
U107CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDc1ZjllZDIwNWUzM2RjM2VhZWJhNDJk
NzdjZTBjZDQ2ZWVkYzA3ZjguLjZmNWMyYTVjYTJiMzk0ZTE0M2VlYWE4OWY2ODEwZjFiZTE1Yzg1
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0yNzkxLDE4ICsyNzkxLDE4IEBAIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6aW5pdFdpdGhGcmFtZSgKICAgICBtX2luc3BlY3Rv
ckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQodGhpcyk7CiAjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwotICAgIHBh
Z2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7Ci0gICAg
cGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQo
dGhpcyk7Ci0gICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVu
dCh0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQo
dGhpcyk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBjb25maWd1
cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CisgICAgY29u
ZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0
aGlzKTsKKyAgICBjb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGll
bnQodGhpcyk7CisgICAgY29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGll
bnQodGhpcyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0
b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKKyAgICBjb25maWd1cmF0aW9uLmluc3BlY3Rv
ckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
Ci0gICAgcGFnZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IHN0
YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4ocGFnZUNsaWVudHMubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lKTsKKyAgICBjb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFt
ZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKKyAgICBjb25maWd1cmF0aW9uLnByb2dyZXNz
VHJhY2tlckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oY29uZmln
dXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpOwogCi0gICAgbV9wYWdlID0gbmV3IFBh
Z2UocGFnZUNsaWVudHMpOworICAgIG1fcGFnZSA9IG5ldyBQYWdlKGNvbmZpZ3VyYXRpb24pOwog
ICAgIHByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50
KHRoaXMpKTsKIAogICAgIHVuc2lnbmVkIGxheW91dE1pbGVzdG9uZXMgPSBEaWRGaXJzdExheW91
dCB8IERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZmRlZjQ2ZTgyYzkxNmFhMTlmYTEwZWY0ZThmOTEyNWNhOWVmZWU3OC4uNzQyNzA4NDYyY2Qz
NTcwNTQ2MTVhZGE4YTMwY2VmNWE1ZmFiZGJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTUy
OSw2ICs1MjksNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRldmljZVByb3hpbWl0eUNsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY3MTNlMmUyYTYyNDZmYzJkZTBjNGUwNmIyZGIx
YmFmNjViZDQyMzkuLmIxZjA0MmFlNmRkMGRhODg1OTE2MjY5ZWZmNDc2Zjg4NTFhMjE0N2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1ODAsNiArMTU4MCw4IEBACiAJCUM1RkExRUQ0MThFMTA2MjIwMEIzRjQwMiAvKiBXS0Fp
clBsYXlSb3V0ZVBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM1RkExRUQyMThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tl
ci5tbSAqLzsgfTsKIAkJQ0QwMDNBNTIxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QwMDNBNTAxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuY3BwICovOyB9OwogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAgKi87IH07CisJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggKi87IH07CiAJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRG
RTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07CiAJCUNE
NjdEMzBFMTVDMDhGOUEwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDY3RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9OwpAQCAtMzY4MSw2ICszNjgzLDggQEAKIAkJQzVG
QTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tBaXJQbGF5Um91dGVQaWNrZXIubW07
IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEMDAzQTUwMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
Yk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNB
NTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBw
YXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5
RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYx
MzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY3RDMwODE1QzA3
QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTczNiw2ICs1NzQwLDggQEAKIAkJCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyog
V2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCiAJCQkJQ0VEQkE4NDUxOUZEQTAwQTAwNjg2NkE1IC8q
IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8sCiAJCQkJQ0VEQkE4NDYxOUZEQTAwQTAw
Njg2NkE1IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oICovLAorCQkJCUNEMTlBMjY5MUEx
M0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8sCisJCQkJ
Q0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmVTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTc0OTcsNiArNzUwMyw3IEBACiAJCQkJMUE2NTA5Q0UxOEI0MTQ2MjAwNjE0
MzMyIC8qIFdLUHJvY2Vzc1Bvb2xQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg3MUI1
QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0ODlEMjkwMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVFbmNvZGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1
QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzVFNzQ5RUMx
ODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRN
ZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODg2LDYgKzg4OTMsNyBAQAogCQkJCTFBQTU3
NjAyMTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRTA5MzMxODg2MUQzODAwRDJEQzQ5IC8qIFdlYlByb2dy
ZXNzVHJhY2tlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTkwQzFGNTEyNjRGRDcx
MDAzRTQ0RDQgLyogRmluZENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QxOUEy
NkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDRTgxRDhDMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUE0OTE4MjA4Q0Q2MDAzMTAwN0EgLyogV0tOU1N0cmlu
Zy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEI3MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKaW5kZXggNDE1NGQwM2VlYjZkOGVhYWRiNzlhZjM3Y2E3NjVhNWE2MWYzNGU4
MC4uYWI1YWNmYjUwMTc0OTdhY2VjMDM1YjA2MTU4MDFmZDQ4ZDkwMTBlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaApAQCAtMjgsNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KIAor
ZW51bSB7CisgICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzID0gMCwKKyAgICBrV0tE
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwgPSAxLAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0Tm9vcCA9IDIsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZTsKKwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdL
U3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiBzdWNjZXNzLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNz
YWdlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVm
IGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlTG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiB2YWx1
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpA
QCAtNDIsMTMgKzUyLDMwIEBAIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50VjAgewogICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CiB9
IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjA7CiAKLWVudW0geyBrV0tCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJF
Q0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAwIH07Cit0
eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxIHsKKyAg
ICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAg
V0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFjayAgICAgICAgICAgICAgICAgIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlOworfSBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxOwor
CitlbnVtIHsga1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Q3VycmVudFZlcnNp
b24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5z
dGVhZCIpID0gMSB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CiAKICAgICAvLyBWZXJzaW9uIDAuCi0gICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGlj
TWVzc2FnZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZDsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2Fn
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdl
OworICAgIFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0OworICAgIFdL
QnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7CiB9IFdLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50IFdLX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJz
aW9uZWQgc3RydWN0IGluc3RlYWQiKTsKIAogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKaW5kZXggMTc2Y2E2Njc3ZjQ2MTg0
NDlkMjU3ZmYyNzJmYjdlNTBmYTc3MTA2NS4uOWFiODZmOTMzYTAyZGYxZjdjOGMzMTcyYWZiNTNi
YjU1MWM0Y2YwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTMxLDExICszMSwzMiBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1
Y2Nlc3MpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nl
c3MpCit7CisgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZURlcHJl
Y2F0ZWQodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRp
b24uaW1wbCgpKSwgdG9BUEkoc3VjY2Vzcy5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC5sb2dE
aWFnbm9zdGljTWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRl
c2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHN1Y2Nlc3MuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZSh0b0FQSShwYWdl
KSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFn
ZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpCit7CisgICAgaWYgKCFtX2Ns
aWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodG9BUEkocGFnZSksIHRv
QVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgcmVzdWx0LCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQ
YWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX2NsaWVudC5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwo
KSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKHZhbHVlLmltcGwoKSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCBkZGY4Mzgw
MzlhYjY4Y2QwMDQ3NmI0MWZkMmE3OGYyOWYwZTdmYTVkLi5iYjZlYWVmNWUwYjg5ZWM2NGNkNmIy
YWQyN2JjNGViMzUyOGU3MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0zMyw3ICszMyw3IEBACiAK
IG5hbWVzcGFjZSBBUEkgewogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBs
ZTxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwPiBWZXJzaW9uczsKKyAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMCwg
V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMT4gVmVyc2lvbnM7CiB9OwogfQog
CkBAIC00NSw3ICs0NSwxMCBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsKIHB1YmxpYzoKLSAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vzcyk7CisgICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKTsK
KyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKTsKKyAg
ICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2UqLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFs
dWUpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggMmE0M2VkZTcwZTQyODYzMGQxNDRkZGE5Y2YwZTUyYWVkMDZmYzQ5Mi4uNDZkZGU4Yzg5
YTFjMDIxNzgzZjI4Y2FlYzVlMzkyMTRmNjBiOTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtOTg5LDE0ICs5ODksNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKICAgICBtX3BhZ2UtPm51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpCi17Ci0gICAgaWYgKCFtX3BhZ2UtPmNv
cmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24s
IHN1Y2Nlc3MpOwotfQotCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpwbHVnSW5TdGFydExhYmVs
VGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkucGx1Z0luU3RhcnRMYWJlbFRpdGxlKG1pbWVUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE2NmM0ZWY5OWQ1Zjc4MWFlYjk2MmM0MzFmYzY3
YzIzY2MxMGEwZmUuLmMzYzc3YTFjYmVlZTYwMGY2ODQzODNhYmJhYzM3NGIyZTRjN2U2ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjg2LDggKzI4Niw2IEBAIHByaXZhdGU6CiAgICAgCiAg
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBz
dWNjZXNzKSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxU
aXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlN2M5YjkzODFlN2ZmNzI5YjcxOTFjNDQzNzI2NDM5ZTAxY2Fi
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKworV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6On5XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkxvZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAg
IGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFi
bGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KCZtX3Bh
Z2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpOworfQorCit2b2lkIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFs
dWUpCit7CisgICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGlj
TG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLmluamVjdGVk
QnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYWIxMDE2MmFmZjIzYzdiNGE0ZmJmMDVhMDk1ZjE1NmY3MTIzMjNhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6CisgICAgV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV2ViUGFnZSYpOworICAgIHZpcnR1YWwgfldlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIExvZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOworCisgICAgV2ViUGFn
ZSYgbV9wYWdlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyOGFmYTA5NGFlYjA0NDMyODhhMDIwNGIyMmZk
OGJhOWQ2ZDE0MTBiLi5lMzNmZWM5NzcyODUxYjJkZTJiNDMyZTUzMWYwNTEzMTc5ZjJhODg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02
NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldl
YkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUg
IldlYkVkaXRvckNsaWVudC5oIgpAQCAtMTMxLDYgKzEzMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVGhyb3R0bGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50
Lmg+CkBAIC0zMzksMzEgKzM0MSwzMiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBTZXR0
aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYK
IAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwotICAgIHBhZ2VDbGllbnRzLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CisgICAgUGFnZUNvbmZpZ3Vy
YXRpb24gcGFnZUNvbmZpZ3VyYXRpb247CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xp
ZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVu
dUNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9
IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRz
LmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZp
Z3VyYXRpb24uZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2Vi
RHJhZ0NsaWVudCh0aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3
IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2Fy
ZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94
eTo6Y3JlYXRlKHRoaXMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgbV9pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpOwotICAgIHBhZ2VDbGllbnRzLmlu
c3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9u
Lmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OwogI2VuZGlmCiAjaWYgVVNFKEFV
VE9DT1JSRUNUSU9OX1BBTkVMKQotICAgIHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVu
dCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVu
dCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQ
bHVnSW5DbGllbnQoKnRoaXMpOwotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5G
cmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KCp0aGlzKTsKKyAg
ICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnSW5DbGllbnQgPSBuZXcgV2ViUGx1Z0luQ2xpZW50KCp0
aGlzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBu
ZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBuZXcgV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKnRoaXMpOwogCi0gICAgcGFnZUNsaWVudHMudXNlckNvbnRlbnRD
b250cm9sbGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXIgPyAmbV91c2VyQ29udGVudENvbnRy
b2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpIDogbnVsbHB0cjsKLSAgICBwYWdlQ2xpZW50
cy52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmdldE9yQ3Jl
YXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlciA/ICZtX3Vz
ZXJDb250ZW50Q29udHJvbGxlci0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkgOiBudWxscHRyOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSBWaXNpdGVkTGlua1RhYmxl
Q29udHJvbGxlcjo6Z2V0T3JDcmVhdGUocGFyYW1ldGVycy52aXNpdGVkTGlua1RhYmxlSUQpOwog
Ci0gICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ2xpZW50cyk7CisgICAg
bV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ29uZmlndXJhdGlvbik7CiAKICAg
ICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0FyZWE6OmNyZWF0ZSgqdGhpcywgcGFyYW1ldGVycyk7
CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0UGFpbnRpbmdFbmFibGVkKGZhbHNlKTsK
</data>
<flag name="review"
          id="266974"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242093</attachid>
            <date>2014-11-21 16:43:00 -0800</date>
            <delta_ts>2014-11-21 16:43:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138690-20141121164317.patch</filename>
            <type>text/plain</type>
            <size>79165</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JiZDkyODljMjg3NmY5
OWY4NmY4ZGQ0NTAxYjExODhjOWQxMzBiNC4uMDg3ZTdlYzhiZjQ0MTEwOWIzN2Y2NTIzOTkyODMx
YTc3YmZjYWYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
c2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIGxvZ0RpYWdub3N0aWNNZXNzYWdlKCkgb3V0
IG9mIENocm9tZUNsaWVudCBhbmQgbWFrZSBhIG5ldyBjbGllbnQgaW50ZXJmYWNlLAorICAgICAg
ICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUga2luZHMg
b2YgZGlhZ25vc3RpYyBsb2dnaW5nLAorICAgICAgICBuYW1lbHk6IHNpbXBsZSBsb2dnaW5nIHdp
dGhvdXQgYSBwYXJhbWV0ZXIsIGxvZ2dpbmcgd2l0aCBhIHN1Y2Nlc3MgcGFyYW1ldGVyLCBhbmQK
KyAgICAgICAgbG9nZ2luZyB3aXRoIGEgZ2VuZXJpYyBzdHJpbmcgdmFsdWUgcGFyYW1ldGVyLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogVXNlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nUGx1Z2luUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IAorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBFbXB0eSBkZXN0cnVjdG9yLgorCisgICAgICAgIFJlbmFt
ZSBQYWdlOjpQYWdlQ2xpZW50IHRvIFBhZ2VDb25maWd1cmF0aW9uLCBhbmQgcGFzcyB0aGF0IGNv
bmZpZ3VyYXRpb24gZnJvbQorICAgICAgICBQYWdlIGludG8gTWFpbkZyYW1lIHVwb24gY29uc3Ry
dWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UpOiBVc2UgUGFnZUNv
bmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBQYWdlQ2xpZW50cy4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGl0dG8uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKTog
UGFzcyBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgdGhyb3VnaCB0byB0aGUKKyAgICAgICAgICAg
IEZyYW1lIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6TWFpbkZyYW1lOjpjcmVhdGUp
OiBUYWtlcyBhIFBhZ2VDb25maWd1cmF0aW9uLgorICAgICAgICAqIHBhZ2UvTWFpbkZyYW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTog
U2ltcGxlIGFjY2Vzc29yLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQ
YWdlQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50
czo6flBhZ2VDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gUGFn
ZUNsaWVudHMoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjp+UGFnZUNv
bmZpZ3VyYXRpb24pOiBSZW5hbWVkIGZyb20gflBhZ2VDbGllbnRzKCkuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogVXNl
IFBhZ2VDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgUGFnZUNsaWVudHMuCisKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyBhbmQgc3ltYm9scyB0byB0aGUgcHJvamVjdC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE0LTExLTIxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+CiAKICAgICAgICAgQVg6IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBjcmFz
aGVkIGF0IFdlYkNvcmU6IFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggN2I4OWZm
MjI0MTM5MWFhMTQxMWI2NDg3NzM5NjFjNmIxOTgzYTlmOS4uYmVjMDgyNzg0YTdmNzAyOTkxYmIw
MjhmMTU0Zjk1Y2EzYTIyNTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE0LTExLTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgc2lnbmF0dXJlcyBvZiBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2OTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYWdlOjpQYWdlQ2xpZW50
cyBoYXMgYmVlbiByZW5hbWVkIFBhZ2VDb25maWd1cmF0aW9uLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldp
dGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVI
VE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAy
MDE0LTExLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxNzYzNTEpOiBQYXJ0cyBvZiBhcHBsZS5jb20vY29udGFjdCBhcmVu
J3QgTG9va3VwLWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBlZGM4YzAwOWJlMzgyNmZiMWY0OGMx
ODk5MzRmYTFkNjdmOTlmNGZjLi40MTZiN2MzYWRiMDNjOTU4ODA4YmFmM2U1Y2ZmNWNlOGNlYzY4
ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMTEtMTcgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBz
aWduYXR1cmVzIG9mIGRpYWdub3N0aWMgbG9nZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhZ2U6OlBhZ2VDbGllbnRzIGhhcyBiZWVuIHJlbmFt
ZWQgUGFnZUNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgorCiAyMDE0LTExLTIxICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBXaW5kb3dzIGJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCBhMDg5MjU5MWYyYjJjNjc5MjcxN2E3MDA1NTE2MzI5Njg4ODhkNTQ0
Li5iZGU3YzAwOGY0MTU5NzRhNzEyMDFlOWU0ZWQ1NTZlZmM3MWFhY2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTQtMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBzaWduYXR1cmVzIG9mIGRpYWdub3N0aWMg
bG9nZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4dGVuZCB0aGUgZXhpc3RpbmcgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
aW50ZXJmYWNlIGJ5IGRlcHJlY2F0aW5nCisgICAgICAgIHRoZSBvcmlnaW5hbCBsb2dEaWFnbm9z
dGljTWVzc2FnZSBjbGllbnQgbWV0aG9kIGluIFYxIGFuZCBhZGRpbmcgdGhyZWUgbmV3LAorICAg
ICAgICBleHBsaWNpdCBjbGllbnQgbWV0aG9kcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZURlcHJlY2F0ZWQpOgorICAgICAgICAgICAgUmVuYW1lZCBmcm9tIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlKCkuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6IFBhc3MgdG8gdGhlIGNs
aWVudC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxl
IGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KTogU2ltcGxlIGRlc3RydWN0b3IuCisgICAg
ICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZSk6IFBhc3MgdG8gdGhlIGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAgKFdlYktpdDo6V2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgdGhlIG5ldyBjbGllbnQuCisKIDIwMTQtMTEt
MDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV1bV0sy
XSBTaW1wbGlmeSB0aGUgTWVkaWFLZXlzIG9yaWdpbiBkZWxldGlvbiBjb2RlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBlMDU2M2E0OGQ4ODdhODY0YTkwOGY1OWU1MmY0YTBhZGMzNTM0NzJkLi5l
ZjIyOTQyNmNmYmEzMWNmMTVmMTdhOGNmY2E4NTNlY2U0MWNhNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTkxMiw2ICsxOTEyLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2Uv
T3JpZ2luQWNjZXNzRW50cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAogICAgIHBhZ2UvUGFnZUFj
dGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwCisgICAgcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
ICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAog
ICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBkYzEzMDY4NTM5NGRjMzgyZTdjM2Y2YWU1ZTgzMmQxMDcyMjM2ZjRiLi5mYTZjOTNiMGNkMGZi
YjU5MGY2M2Q2ZjEyMTc0NjQ4Yjk1NDZjNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTEz
MSw4ICsxMTMxLDYgQEAgX19aTjdXZWJDb3JlNE5vZGUxOHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBf
X1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJlY2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlw
ZUUKIF9fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQogX19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRT
dHJpbmdFUktOM1dURjZTdHJpbmdFaAotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFF
dgotX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2Ux
MnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zp
c2libGVFYgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFNlc3Npb25JREVOU185U2Vzc2lvbklERQpA
QCAtMTE3OSw3ICsxMTc3LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UzN3NldEluTG93UXVhbGl0eUlt
YWdlSW50ZXJwb2xhdGlvbk1vZGVFYgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzEx
SGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlNFBhZ2U4c2V0TXV0
ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2U5aW5pdEdyb3VwRXYKLV9fWk43V2ViQ29yZTRQYWdlQzFF
Uk5TMF8xMVBhZ2VDbGllbnRzRQorX19aTjdXZWJDb3JlNFBhZ2VDMUVSTlNfMTdQYWdlQ29uZmln
dXJhdGlvbkUKIF9fWk43V2ViQ29yZTRQYWdlRDFFdgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJv
dW5kZWRSZWN0RVJLTlNfMTZGbG9hdFJvdW5kZWRSZWN0RU5TMF8xOVJvdW5kZWRSZWN0U3RyYXRl
Z3lFCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJL
TlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0cmF0ZWd5RQpAQCAtMjMwOSw2ICsyMzA3
LDggQEAgX19aTjdXZWJDb3JlMTZKU1hNTEh0dHBSZXF1ZXN0OXRvV3JhcHBlZEVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgogX19aTjdXZWJD
b3JlMTZkZWxldGVBbGxDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25FCiBfX1pO
N1dlYkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUks3X05TUmVjdAorX19aTjdXZWJDb3JlMTdQYWdl
Q29uZmlndXJhdGlvbkMxRXYKK19fWk43V2ViQ29yZTE3UGFnZUNvbmZpZ3VyYXRpb25EMUV2CiBf
X1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjNzZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQ
N0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyNHJlbW92ZU92ZXJoYW5n
QXJlYVNoYWRvd0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyN3Nl
dFVwT3ZlcmhhbmdBcmVhQmFja2dyb3VuZEVQN0NBTGF5ZXJSS05TXzVDb2xvckUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDc1MzcwZmUy
Y2Q5ZThiYzNjZWU1ZjRhNWYxZGZlY2YzYzA0YzBmNGYuLjkwYmVhYmY3NTBmNTVhMTMxOTViYjY3
NjFiMjEzZmJiMmNjMTJmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtNzE5MCw2ICs3MTkwLDcgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwIiAvPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uZmlndXJhdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25zb2xlQ2xpZW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MzhmODBh
NWUzZDZmZTIzMGJmMWNiMjk1OTBiZmQyZjg1ZWRkM2Q4Li44OWZiM2M3NzgxZjhlYzFjMGE2Nzg1
MGQwMjYxMGM4NzgwNTZmYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTk5LDYgKzU1OTksNyBAQAogCQlDRDBFRUUwRTE0
NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIg
LyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4
NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDRDE5QTI2ODFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMUI0QTY1MTYw
Nzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4REMyMTYwMTRFRUUwMEZFQTNCMSAv
KiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCAqLzsgfTsKIAkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4
ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi87IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRy
b2xsZXIuY3BwICovOyB9OwpAQCAtNTYzNSw2ICs1NjM2LDggQEAKIAkJQ0Q1NERFNEIxNzQ2OUM2
RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9T
ZXNzaW9uTWFjLmNwcCAqLzsgfTsKIAkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlv
RmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDU1OTY4RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNw
cCAqLzsgfTsKIAkJQ0Q1NTk2OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklP
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2
OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovOyB9OworCQlDRDVF
NUI1RjFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5
RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUNENUU1QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmln
dXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9
OwogCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3
MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi87IH07CiAJCUNENjBDMEM3MTkzRTg3Qzcw
MDNDNjU2QiAvKiBNZWRpYVRpbWVRVEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZCIC8qIE1lZGlhVGltZVFU
S2l0LmggKi87IH07CiAJCUNENjFGRTY3MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLzsg
fTsKQEAgLTEzMDU4LDYgKzEzMDYxLDcgQEAKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHBhdGggPSBpb3MvQXVkaW9EZXN0aW5hdGlv
bklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5Nzkw
MEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
OUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzEwNCw2ICsxMzEwOCw4IEBACiAJCUNENTRE
RTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJl
YWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdWRpb0Zp
bGVSZWFkZXJJT1MuY3BwOyBwYXRoID0gaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9G
aWxlUmVhZGVySU9TLmg7IHBhdGggPSBpb3MvQXVkaW9GaWxlUmVhZGVySU9TLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29u
ZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uZmln
dXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDVFNUI2MDFBMTVGMTU2
MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZUNvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2MEMwQzUxOTNFODdDNzAwM0M2NTZC
IC8qIE1lZGlhVGltZVFUS2l0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhVGltZVFUS2l0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIxMTgx
OEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNjY3Myw2ICsxNjY3OSw4IEBACiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkw
NTBBIC8qIFBhZ2UuaCAqLywKIAkJCQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFj
dGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwICovLAogCQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZC
NyAvKiBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbi5oICovLAorCQkJCUNENUU1QjYwMUExNUYx
NTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8sCisJCQkJQ0Q1RTVCNUUxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJREFBQ0IzRDkxNkYy
NDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlQ2xpZW50LmNwcCAqLywKIAkJCQlEQUFDQjNEQTE2
RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4
Mjk3MzQzMDBERTE3MjkgLyogUGFnZURlYnVnZ2FibGUuY3BwICovLApAQCAtMTY3NzMsNiArMTY3
ODEsNyBAQAogCQkJCUUxMjcxQTEzMEVFRUM4MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3Iu
Y3BwICovLAogCQkJCUUxMjcxQTBBMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3Iu
aCAqLywKIAkJCQlFMTI3MUE1MTBFRUVDRDFDMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlk
bCAqLywKKwkJCQlDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yMzkzNyw2ICsyMzk0Niw3IEBACiAJCQkJODU4QzM4MkMwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUQy
OTBBQ0M3RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODUwMzJERTEwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RUQwQURCMzJGQjAwOTI1
Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzJERTMw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NUU3MTE5MjBBQzVENTM1MDA1MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNDQ4Niw2ICsyNDQ5Niw3IEBACiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAw
QzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2
RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEw
OTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNENUU1QjVGMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDRkY3QUIwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxRDQ1RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTEFw
cGxldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJFMEExOTM4NTUwMEE4RUY1
RiAvKiBIVE1MQXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTgsNiArMjc3MDks
NyBAQAogCQkJCTUyQjZDOUMyMTVFM0Y0REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MThERDc5MEE5Q0YzMUIwMDkxQjdBNiAvKiBE
T01OYW1lZE5vZGVNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTNCRjREQzBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENUU1QjYxMUExNUYxNTYw
MDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTUy
NkMzODBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVBQ0FBOEUwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVDQTk2RUIwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCA4N2RmYjFkNzI2ZDczMzY1OWU1MmIzZjExMDY1NjBkYzljYjU2ZTM1Li4xZTc1ZTViNTVkNDhl
ZmE0OWU3MTg5NjQ2NmM1MDVhNWFkNGYzNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAiRGlzcGxheVNsZWVwRGlzYWJsZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMTgyNSwyMCArMTgyNiwyMiBAQCBzdGF0
aWMgdm9pZCBsb2dNZWRpYUxvYWRSZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVk
aWFFbmdpbmUsIGNvbnN0IFN0cgogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS5k
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hyb21l
Q2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKKyAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWlu
RnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc3VjY2VlZGVkKSB7Ci0g
ICAgICAgIGNocm9tZUNsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6ZmFpbEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQt
PmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1l
ZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJvck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50OjpGYWlsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNocm9tZUNsaWVudC5s
b2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5
KCksIG1lZGlhRW5naW5lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vb3BLZXkoKSk7CisgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bWVkaWFMb2FkZWRLZXkoKSwgbWVkaWFFbmdpbmUpOwogCiAgICAgaWYgKCFw
YWdlLT5oYXNTZWVuQW55TWVkaWFFbmdpbmUoKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFz
dE9uZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFzdE9u
ZU1lZGlhRW5naW5lS2V5KCksIGVtcHR5U3RyaW5nKCkpOwogCiAgICAgaWYgKCFwYWdlLT5oYXNT
ZWVuTWVkaWFFbmdpbmUobWVkaWFFbmdpbmUpKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVu
Z2luZUtleSgpLCBtZWRpYUVuZ2luZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkp
OworICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2Uo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNNZWRpYUVuZ2luZUtleSgpLCBtZWRp
YUVuZ2luZSk7CiAKICAgICBwYWdlLT5zYXdNZWRpYUVuZ2luZShtZWRpYUVuZ2luZSk7CiB9CkBA
IC01NzY3LDkgKzU3NzAsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckVu
Z2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5n
cygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5t
YWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGlmICghZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBlbmdpbmUgPSBt
X3BsYXllci0+ZW5naW5lRGVzY3JpcHRpb24oKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmlu
Zzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIG1lc3NhZ2UpOworICAgIGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVt
YmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRl
eCA3MjVmNjk4YjllZDQ3NjMxYjhiZGMyMTlhMDZiNDVlNWI4Zjc1NDgyLi5jODQ3NDVjMmRmNTFk
YTNlYzA5OTYyZTBlM2FiZmE2NTQyMGEyNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgogI2luY2x1
ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIK
QEAgLTgwOCw5ICs4MDksOSBAQCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgp
CiAgICAgaWYgKG1fb3ZlcmxheVBhZ2UpCiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdlLmdl
dCgpOwogCi0gICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgZmlsbFdpdGhF
bXB0eUNsaWVudHMocGFnZUNsaWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFBhZ2U+KHBhZ2VDbGllbnRzKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbjsKKyAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7
CisgICAgbV9vdmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3Vy
YXRpb24pOwogCiAgICAgU2V0dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLnNldHRpbmdzKCk7CiAg
ICAgU2V0dGluZ3MmIG92ZXJsYXlTZXR0aW5ncyA9IG1fb3ZlcmxheVBhZ2UtPnNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhlNzU0OTc2ZjAyZDM0
ZmIyNzk5ZjY3MGNlZDZiY2U1NDYyY2QwNWQuLjc2OWUwMjQwZjZiMTM5YjBiOWQzNTE4YmIxNjQz
OTZjOWU3Yzg0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNDMsMzIgKzQ0LDM1IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50
cyYgcGFnZUNsaWVudHMpCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0
aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmNocm9t
ZUNsaWVudCA9ICZkdW1teUNocm9tZUNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSAmZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDb250ZXh0TWVu
dUNsaWVudD4gZHVtbXlDb250ZXh0TWVudUNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5jb250ZXh0
TWVudUNsaWVudCA9ICZkdW1teUNvbnRleHRNZW51Q2xpZW50LmdldCgpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gJmR1bW15Q29udGV4dE1lbnVDbGllbnQuZ2V0
KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEVtcHR5RHJhZ0NsaWVudD4gZHVtbXlEcmFnQ2xpZW50OwotICAgIHBhZ2VDbGll
bnRzLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRyYWdDbGllbnQgPSAmZHVtbXlEcmFnQ2xpZW50LmdldCgpOwogI2VuZGlmCiAKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlFZGl0b3JDbGllbnQ+IGR1bW15RWRpdG9yQ2xp
ZW50OwotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9ICZkdW1teUVkaXRvckNsaWVudC5n
ZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSAmZHVtbXlFZGl0b3JD
bGllbnQuZ2V0KCk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlJbnNwZWN0b3JD
bGllbnQ+IGR1bW15SW5zcGVjdG9yQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNs
aWVudCA9ICZkdW1teUluc3BlY3RvckNsaWVudC5nZXQoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5pbnNwZWN0b3JDbGllbnQgPSAmZHVtbXlJbnNwZWN0b3JDbGllbnQuZ2V0KCk7CiAKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxv
YWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAm
ZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKLSAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQo
KTsKKwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVu
dD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50ID0gJmR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dyZXNzVHJh
Y2tlckNsaWVudC5nZXQoKTsKKworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1teURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1bW15RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuZ2V0KCk7CiB9CiAKIGNsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGlj
IFBvcHVwTWVudSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjMyMGM1
OTk3Y2QzYzllMzE1MmRhYTJjYjcxZTg0YzNiYWE4NjkwZC4uNDc0ZDE5YTdkZGVjYTFhNzU2Y2E0
YmEzYmIxYzc1MGNjNGVjOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRy
YWdDbGllbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlckNsaWVudC5oIgpAQCAtNjM0LDcgKzYzNSwxMyBAQCBjbGFzcyBFbXB0eVByb2dyZXNzVHJh
Y2tlckNsaWVudCA6IHB1YmxpYyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewogICAgIHZpcnR1YWwg
dm9pZCBwcm9ncmVzc0ZpbmlzaGVkKEZyYW1lJikgb3ZlcnJpZGUgeyB9CiB9OwogCi12b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2U6OlBhZ2VDbGllbnRzJik7CitjbGFzcyBFbXB0eURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2dSZXN1bHRUeXBl
KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyB9Cit9OworCit2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9u
Jik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOGU0ZGFh
NzIwMzY3NjJmZTM5ZWFlYjJiYWFkMjEwYjUwMjRiNjdkYy4uYzVkYjU4ZjE4MTQ2NTFkNDM3NTQ0
MzNiZWRkMDAxMjliYThhMThjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5n
S2V5cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGlt
aW5nLmgiCkBAIC0yMjY2LDcgKzIyNjcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUoKQogICAgICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5z
ZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3Ry
aW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkg
OiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmZhaWxLZXkoKSk7CisgICAgICAgICAgICBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLT5tYWluRnJh
bWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgICAgICAgICAgaWYgKCFkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVy
cm9yLmlzTnVsbCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OlBhc3MgOiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6RmFpbCk7CiAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggNWMzNzc4OTFiNjQy
NmQ1YmI1ZTdlOTQzZjQ2MTg4OGY2YjlhMTEyYy4uM2EyNjBkN2Q0MzI5YjljNjk4MTBhMDQ1NDIw
Y2U2ZTFkZGNiMTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC00
Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVj
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNp
bmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgpAQCAtMTkyLDE0ICsxOTQsMTcgQEAgc3RhdGljIHZv
aWQgbG9nUGx1Z2luUmVxdWVzdChQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIHUKICAgICBTdHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2UtPnBsdWdpbkRhdGEo
KS5wbHVnaW5GaWxlRm9yTWltZVR5cGUobmV3TUlNRVR5cGUpOwogICAgIFN0cmluZyBkZXNjcmlw
dGlvbiA9ICFwbHVnaW5GaWxlID8gbmV3TUlNRVR5cGUgOiBwbHVnaW5GaWxlOwogCi0gICAgQ2hy
b21lQ2xpZW50JiBjaHJvbWVDbGllbnQgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKTsKLSAgICBj
aHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGx1Z2luTG9hZGVkS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdp
bkxvYWRpbmdGYWlsZWRLZXkoKSwgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bm9vcEtleSgpKTsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwor
ICAgIGlmICghZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGx1Z2luTG9hZGluZ0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbik7CiAKICAgICBp
ZiAoIXBhZ2UtPmhhc1NlZW5BbnlQbHVnaW4oKSkKLSAgICAgICAgY2hyb21lQ2xpZW50LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zQXRMZWFz
dE9uZVBsdWdpbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5v
b3BLZXkoKSk7Ci0gICAgCisgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFn
bm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc0F0TGVhc3RP
bmVQbHVnaW5LZXkoKSwgZW1wdHlTdHJpbmcoKSk7CisKICAgICBpZiAoIXBhZ2UtPmhhc1NlZW5Q
bHVnaW4oZGVzY3JpcHRpb24pKQotICAgICAgICBjaHJvbWVDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkoKSwgZGVz
Y3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpKTsKKyAgICAgICAgZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cGFnZUNvbnRhaW5zUGx1Z2luS2V5KCksIGRlc2NyaXB0aW9uKTsKIAogICAgIHBh
Z2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCA4NzhkZWU1ODM4NzJhMTU3Yjc3N2ZkMjg4NmE1NzRkOGY3MzA0ZjQ2Li4zYmJkNmMw
ZDc0OGVjYTBlYThiMjE3NWQ5MzJkY2UwZjJmZjU4NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTQxNiw4ICs0MTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNl
bFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNz
YWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0K
LQogICAgIHZpcnR1YWwgRmxvYXRTaXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1
cm4gRmxvYXRTaXplKDEwMCwgMTAwKTsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hy
b21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEzOTM0NTE5OWViYTVk
Mjg4MTNkMjk5MjM0OTY1YzYwMTAwMDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKworICAgIGVudW0gTG9nUmVzdWx0VHlwZSB7
CisgICAgICAgIFBhc3MsCisgICAgICAgIEZhaWwsCisgICAgICAgIE5vb3AsCisgICAgfTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTG9nUmVzdWx0VHlwZSkgeyBV
TlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7
IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VE
X1BBUkFNKHZhbHVlKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFt
ZS5jcHAKaW5kZXggNzgwM2Y4ODdlNzczMjVhY2I2YTJmMjA2ZWE1OTA4ZTY1OTc0ZjlkOC4uYzgw
YjljMzcxZWY2YWQ1ZTBmOTc5Y2I3NDc1NzlkZDQxMmVkODViOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFp
bkZyYW1lLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk1haW5GcmFtZS5oIgogCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JvbGxMYXRjaGluZ1N0
YXRlLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhVHJhY2tlci5oIgpAQCAtMzYsOCArMzcs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFt
ZShQYWdlJiBwYWdlLCBGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KQotICAgIDogRnJhbWUocGFn
ZSwgbnVsbHB0ciwgY2xpZW50KQoraW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBh
Z2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDogRnJhbWUocGFnZSwg
bnVsbHB0ciwgKmNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKQogICAgICwg
bV9zZWxmT25seVJlZkNvdW50KDApCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9sYXRjaGlu
Z1N0YXRlKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsTGF0Y2hpbmdTdGF0ZT4oKSkKQEAgLTQ3LDYg
KzQ4LDcgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIEZyYW1lTG9h
ZGVyQ2xpZW50JiBjbGllbnQpCiAjZW5kaWYKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRh
VHJhY2tlcihzdGQ6Om1ha2VfdW5pcXVlPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCiAgICAg
LCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29u
dHJvbGxlcj4oKnRoaXMpKQorICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1
cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogfQogCkBAIC01NCw5ICs1Niw5IEBA
IE1haW5GcmFtZTo6fk1haW5GcmFtZSgpCiB7CiB9CiAKLVJlZlB0cjxNYWluRnJhbWU+IE1haW5G
cmFtZTo6Y3JlYXRlKFBhZ2UmIHBhZ2UsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCitSZWZQ
dHI8TWFpbkZyYW1lPiBNYWluRnJhbWU6OmNyZWF0ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJh
dGlvbiYgY29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFt
ZShwYWdlLCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5GcmFtZShwYWdl
LCBjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seVJlZigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9NYWluRnJhbWUuaAppbmRleCBiZDZjZTc5MDNjY2NlNmI3NjkwM2I2MWVkZTQ2NGEz
YzE3NWQyYmNkLi5jMTA5OTQwMjBiN2VhNTZlYzQ3ODc4N2M4MzM5YmJkNDc4MjgxMjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWFpbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK2NsYXNzIFBhZ2VDb25maWd1
cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2Nyb2xsTGF0Y2hp
bmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI7CkBAIC0zNyw3ICszOSw3
IEBAIGNsYXNzIFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7CiAKIGNsYXNzIE1haW5GcmFtZSBmaW5h
bCA6IHB1YmxpYyBGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNYWluRnJhbWU+
IGNyZWF0ZShQYWdlJiwgRnJhbWVMb2FkZXJDbGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1h
aW5GcmFtZT4gY3JlYXRlKFBhZ2UmLCBQYWdlQ29uZmlndXJhdGlvbiYpOwogCiAgICAgdmlydHVh
bCB+TWFpbkZyYW1lKCk7CiAKQEAgLTU2LDggKzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c2V0TGF0Y2hpbmdTdGF0ZSgpOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorICAgIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7IH0KKwogcHJpdmF0ZToKLSAgICBNYWluRnJh
bWUoUGFnZSYsIEZyYW1lTG9hZGVyQ2xpZW50Jik7CisgICAgTWFpbkZyYW1lKFBhZ2UmLCBQYWdl
Q29uZmlndXJhdGlvbiYpOwogCiAgICAgdm9pZCBkcm9wQ2hpbGRyZW4oKTsKIApAQCAtNzEsNiAr
NzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnRE
ZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UGFnZU92ZXJsYXlDb250cm9sbGVyPiBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcjsK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsK
IH07CiAKIGlubGluZSBib29sIEZyYW1lOjppc01haW5GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBjMTFiYjAwZjFjOWJkZWI0OWJlMzg1MGYwNjNmMzlkOWExM2IxYjRlLi4yNjM2
MTY4MmJjMTI5NzVjZTBjNDlkODU3YTE4NTYxNmJhZmVhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2lu
Y2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hl
LmgiCisjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29s
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCkBAIC0xMjQsMzQgKzEyNSwzNCBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFu
Z2VkKGJvb2wgaXNPbkxpbmUpCiAKIHN0YXRpYyBjb25zdCBWaWV3U3RhdGU6OkZsYWdzIFBhZ2VJ
bml0aWFsVmlld1N0YXRlID0gVmlld1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OklzSW5X
aW5kb3c7CiAKLVBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQotICAgIDogbV9j
aHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNsaWVudHMuY2hyb21l
Q2xpZW50KSkKK1BhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9u
KQorICAgIDogbV9jaHJvbWUoc3RkOjptYWtlX3VuaXF1ZTxDaHJvbWU+KCp0aGlzLCAqcGFnZUNv
bmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50KSkKICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPERyYWdDYXJldENvbnRyb2xsZXI+KCkpCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKLSAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29u
dHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKKyAgICAsIG1fZHJhZ0Nv
bnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxEcmFnQ29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ29u
ZmlndXJhdGlvbi5kcmFnQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9mb2N1c0NvbnRyb2xsZXIo
c3RkOjptYWtlX3VuaXF1ZTxGb2N1c0NvbnRyb2xsZXI+KCp0aGlzLCBQYWdlSW5pdGlhbFZpZXdT
dGF0ZSkpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29u
dHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpw
YWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdl
Q29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCkpCiAjZW5kaWYKICAgICAsIG1fdXNlcklu
cHV0QnJpZGdlKHN0ZDo6bWFrZV91bmlxdWU8VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgLCBtX3JlcGxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3Vu
aXF1ZTxSZXBsYXlDb250cm9sbGVyPigqdGhpcykpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVj
dG9yQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCisgICAg
LCBtX2luc3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9s
bGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KHN0ZDo6bWFrZV91bmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNsaWVudHMucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91
bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywgcGFnZUNsaWVudHMuYmFja0Zvcndh
cmRDbGllbnQpKQotICAgICwgbV9tYWluRnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsICpw
YWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQorICAgICwgbV9wcm9ncmVzcyhz
dGQ6Om1ha2VfdW5pcXVlPFByb2dyZXNzVHJhY2tlcj4oKnBhZ2VDb25maWd1cmF0aW9uLnByb2dy
ZXNzVHJhY2tlckNsaWVudCkpCisgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihzdGQ6Om1h
a2VfdW5pcXVlPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4oKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9u
LmJhY2tGb3J3YXJkQ2xpZW50KSkKKyAgICAsIG1fbWFpbkZyYW1lKE1haW5GcmFtZTo6Y3JlYXRl
KCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbikpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0
aGVtZUZvclBhZ2UodGhpcykpCi0gICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0
b3JDbGllbnQpCi0gICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQp
Ci0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KHBhZ2VDbGllbnRzLnZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50KQorICAgICwgbV9lZGl0b3JDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZWRp
dG9yQ2xpZW50KQorICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0lu
Q2xpZW50KQorICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlv
bi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAg
ICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1l
bnRzKHRydWUpCkBAIC0xOTIsNyArMTkzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFn
ZUNsaWVudHMpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQogI2Vu
ZGlmCi0gICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2
ZVRleHRDbGllbnQpCisgICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ29uZmlndXJh
dGlvbi5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1
c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFnZVRocm90dGxlcigqdGhpcywgbV92aWV3U3RhdGUp
CiAgICAgLCBtX2NvbnNvbGVDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUNsaWVu
dD4oKnRoaXMpKQpAQCAtMjAxLDggKzIwMiw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBh
Z2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0
ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlh
bCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2Fk
RXZlbnQoMCkKLSAgICAsIG1fdXNlckNvbnRlbnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ2xp
ZW50cy51c2VyQ29udGVudENvbnRyb2xsZXIpKQotICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdU
Rjo6bW92ZShwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlKSkKKyAgICAsIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyKFdURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRy
b2xsZXIpKQorICAgICwgbV92aXNpdGVkTGlua1N0b3JlKFdURjo6bW92ZShwYWdlQ29uZmlndXJh
dGlvbi52aXNpdGVkTGlua1N0b3JlKSkKICAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9pc0Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2lzUGxh
eWluZ0F1ZGlvKGZhbHNlKQpAQCAtMTY1NSwyNCArMTY1Niw0IEBAIHZvaWQgUGFnZTo6c2V0U2Vz
c2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIHZpZXctPnByaXZhdGVCcm93c2lu
Z1N0YXRlQ2hhbmdlZChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKLVBhZ2U6OlBhZ2VD
bGllbnRzOjpQYWdlQ2xpZW50cygpCi0gICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0
cikKLSAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQotICAgICwgY29udGV4dE1lbnVDbGllbnQobnVsbHB0cikKLSNlbmRpZgotICAgICwgZWRpdG9y
Q2xpZW50KG51bGxwdHIpCi0gICAgLCBkcmFnQ2xpZW50KG51bGxwdHIpCi0gICAgLCBpbnNwZWN0
b3JDbGllbnQobnVsbHB0cikKLSAgICAsIHBsdWdJbkNsaWVudChudWxscHRyKQotICAgICwgcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50KG51bGxwdHIpCi0gICAgLCB2YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dChudWxscHRyKQotICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKG51bGxwdHIpCi17Ci19
Ci0KLVBhZ2U6OlBhZ2VDbGllbnRzOjp+UGFnZUNsaWVudHMoKQotewotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFmN2Y4YWNjNDM0MDdjMTZjYzZiMWFkYTQz
YjA5YzE5MmY1OGY4ZTMuLjdmNDI0YjM1YjU1OWUyYzIwNGI5ZjkxNWFiYjEwMWM3YjA4ODA0NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC04MSw2ICs4MSw3IEBAIGNsYXNzIEluc3BlY3RvckNvbnRyb2xs
ZXI7CiBjbGFzcyBNYWluRnJhbWU7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFz
cyBQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwog
Y2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJsZTsKIGNsYXNzIFBh
Z2VHcm91cDsKQEAgLTExOSwzMyArMTIwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52
aXJvbm1lbnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjbGVhclByZXZpb3Vz
SXRlbUZyb21BbGxQYWdlcyhIaXN0b3J5SXRlbSopOwogCi0gICAgLy8gSXQgaXMgdXAgdG8gdGhl
IHBsYXRmb3JtIHRvIGVuc3VyZSB0aGF0IG5vbi1udWxsIGNsaWVudHMgYXJlIHByb3ZpZGVkIHdo
ZXJlIHJlcXVpcmVkLgotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyB0byBQYWdlQ29uZmlndXJh
dGlvbiBhbmQgbW92ZSBpdCB0byBpdHMgb3duIGNsYXNzLgotICAgIHN0cnVjdCBQYWdlQ2xpZW50
cyB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRzKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBQYWdl
Q2xpZW50cygpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNsaWVudHMoKTsKLQotICAg
ICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIGFsdGVybmF0aXZlVGV4dENsaWVudDsKLSAgICAg
ICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQ7Ci0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgICAgIENvbnRleHRNZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudDsKLSNlbmRpZgot
ICAgICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudDsKLSAgICAgICAgRHJhZ0NsaWVudCog
ZHJhZ0NsaWVudDsKLSAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7Ci0g
ICAgICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50OwotICAgICAgICBQcm9ncmVzc1RyYWNr
ZXJDbGllbnQqIHByb2dyZXNzVHJhY2tlckNsaWVudDsKLSAgICAgICAgUmVmUHRyPEJhY2tGb3J3
YXJkQ2xpZW50PiBiYWNrRm9yd2FyZENsaWVudDsKLSAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwotICAgICAgICBGcmFtZUxvYWRlckNsaWVu
dCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lOwotCi0gICAgICAgIFJlZlB0cjxVc2VyQ29udGVu
dENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29udHJvbGxlcjsKLSAgICAgICAgUmVmUHRyPFZpc2l0
ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7Ci0gICAgfTsKLQotICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IFBhZ2UoUGFnZUNsaWVudHMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBQYWdlKFBhZ2VDb25maWd1cmF0aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2Uo
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcy
NzBiN2VhM2E2Yjc0ZTk5Y2RmODJjYmU5ODI3ZGU5OTU2ZjBjNGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25maWd1
cmF0aW9uLmgiCisKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIlVz
ZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRp
b24oKQorICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCisgICAgLCBjaHJvbWVD
bGllbnQobnVsbHB0cikKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICAsIGNvbnRleHRN
ZW51Q2xpZW50KG51bGxwdHIpCisjZW5kaWYKKyAgICAsIGVkaXRvckNsaWVudChudWxscHRyKQor
ICAgICwgZHJhZ0NsaWVudChudWxscHRyKQorICAgICwgaW5zcGVjdG9yQ2xpZW50KG51bGxwdHIp
CisgICAgLCBwbHVnSW5DbGllbnQobnVsbHB0cikKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVu
dChudWxscHRyKQorICAgICwgdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQobnVsbHB0cikKKyAgICAs
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZShudWxscHRyKQorICAgICwgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQobnVsbHB0cikKK3sKK30KKworUGFnZUNvbmZpZ3VyYXRpb246On5QYWdlQ29uZmln
dXJhdGlvbigpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MDliNzIzYWU2Y2Q0NjRmOTIwM2JlNjM1NTE0MDE3NDYxZjFlYzliCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhZ2VDb25maWd1cmF0aW9uX2gK
KyNkZWZpbmUgUGFnZUNvbmZpZ3VyYXRpb25faAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEFsdGVybmF0aXZlVGV4dENsaWVudDsKK2NsYXNzIEJhY2tGb3J3YXJkQ2xpZW50OworY2xh
c3MgQ2hyb21lQ2xpZW50OworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorY2xhc3MgQ29udGV4
dE1lbnVDbGllbnQ7CisjZW5kaWYKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworY2xh
c3MgRHJhZ0NsaWVudDsKK2NsYXNzIEVkaXRvckNsaWVudDsKK2NsYXNzIEZyYW1lTG9hZGVyQ2xp
ZW50OworY2xhc3MgSW5zcGVjdG9yQ2xpZW50OworY2xhc3MgUGx1Z0luQ2xpZW50OworY2xhc3Mg
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgVXNlckNvbnRlbnRDb250cm9sbGVyOworY2xh
c3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CitjbGFzcyBWaXNpdGVkTGlua1N0b3JlOworCitj
bGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNv
bmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXRUJD
T1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdl
Q29uZmlndXJhdGlvbigpOworCisgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBhbHRlcm5hdGl2
ZVRleHRDbGllbnQ7CisgICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQ7CisjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCisgICAgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50
OworI2VuZGlmCisgICAgRWRpdG9yQ2xpZW50KiBlZGl0b3JDbGllbnQ7CisgICAgRHJhZ0NsaWVu
dCogZHJhZ0NsaWVudDsKKyAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudDsKKyAg
ICBQbHVnSW5DbGllbnQqIHBsdWdJbkNsaWVudDsKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQq
IHByb2dyZXNzVHJhY2tlckNsaWVudDsKKyAgICBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+IGJh
Y2tGb3J3YXJkQ2xpZW50OworICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiB2YWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKKyAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lOworICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDsKKworICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29u
dHJvbGxlcjsKKyAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cAppbmRleCA1Yzg4YTc0ZmQyYzFmZGJiMDY3MDlkMWY4ZDg5OTAyMjRkMDI2ZDk1Li40OWI5MGJl
MzcxMjI1MTQwZDY4NjUzYzA5ZDY2MTg3MjkwZDk5MTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJJbWFnZU9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgor
I2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKQEAg
LTMzOSwxMCArMzQwLDEwIEBAIGJvb2wgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0
YVJlY2VpdmVkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChhbGxEYXRhUmVjZWl2
ZWQpIHsKLSAgICAgICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7Ci0gICAgICAgIGZp
bGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDbGllbnRzKTsKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRp
b24gcGFnZUNvbmZpZ3VyYXRpb247CisgICAgICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VD
b25maWd1cmF0aW9uKTsKICAgICAgICAgbV9jaHJvbWVDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0ltYWdlQ2hyb21lQ2xpZW50Pih0aGlzKTsKLSAgICAgICAgcGFnZUNsaWVudHMuY2hyb21l
Q2xpZW50ID0gbV9jaHJvbWVDbGllbnQuZ2V0KCk7CisgICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LmNocm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50LmdldCgpOwogCiAgICAgICAgIC8vIEZJWE1F
OiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRpbmcgaXRzZWxmLCB3ZSBtaWdodCBsZWFrIHRoZSB3
b3JsZC4KICAgICAgICAgLy8gVGhlIENhY2hlIGNvZGUgZG9lcyBub3Qga25vdyBhYm91dCBDYWNo
ZWRJbWFnZXMgaG9sZGluZyBGcmFtZXMgYW5kCkBAIC0zNTAsNyArMzUxLDcgQEAgYm9vbCBTVkdJ
bWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIC8vIFRoaXMg
d2lsbCBiZWNvbWUgYW4gaXNzdWUgd2hlbiBTVkdJbWFnZSB3aWxsIGJlIGFibGUgdG8gbG9hZCBv
dGhlcgogICAgICAgICAvLyBTVkdJbWFnZSBvYmplY3RzLCBidXQgd2UncmUgc2FmZSBub3csIGJl
Y2F1c2UgU1ZHSW1hZ2UgY2FuIG9ubHkgYmUKICAgICAgICAgLy8gbG9hZGVkIGJ5IGEgdG9wLWxl
dmVsIGRvY3VtZW50LgotICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KHBh
Z2VDbGllbnRzKTsKKyAgICAgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdl
Q29uZmlndXJhdGlvbik7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRNZWRpYUVuYWJs
ZWQoZmFsc2UpOwogICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0U2NyaXB0RW5hYmxlZChm
YWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRQbHVnaW5zRW5hYmxlZChmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMjkwYzExMWNiZTcxZDhl
M2JmNGVkMGJlOWQ5MTE3N2IwZmI1ZGViZS4uZjBjNDhiZWM0MDJhZDU1MmI1YWVkNjQ5ZmM5ZDgz
ZTFiOThhNmI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTU2LDYg
KzE1Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFn
ZUdyb3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1Byb2dyZXNzVHJhY2tlci5oPgpAQCAtOTE4LDIzICs5MTksMjMgQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
ICAgICAgICAgZGlkT25lVGltZUluaXRpYWxpemF0aW9uID0gdHJ1ZTsKICAgICB9CiAKLSAgICBQ
YWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdl
Q29uZmlndXJhdGlvbjsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHBhZ2VDbGllbnRzLmNocm9t
ZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7Ci0gICAgcGFnZUNsaWVudHMuY29u
dGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQoc2VsZik7CisgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsK
KyAgICBwYWdlQ29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0
TWVudUNsaWVudChzZWxmKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBhZ2VDbGll
bnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmln
dXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQoc2VsZik7CiAjZW5kaWYKLSAg
ICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNl
bGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNw
ZWN0b3JDbGllbnQoc2VsZik7CiAjZWxzZQotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9
IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9y
Q2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSNlbmRpZgotICAgIHBhZ2VD
bGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7Ci0gICAgcGFn
ZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudChzZWxmKTsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBu
ZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChzZWxmKTsKLSAgICBfcHJpdmF0
ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7
CisjZW5kaWYKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRp
dG9yQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmFsdGVybmF0aXZlVGV4dENs
aWVudCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoc2VsZik7CisgICAgcGFnZUNvbmZp
Z3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcg
UGFnZShwYWdlQ29uZmlndXJhdGlvbik7CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFdl
YkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKF9wcml2YXRlLT5wYWdlLCBuZXcgV2ViR2VvbG9j
YXRpb25DbGllbnQoc2VsZikpOwogI2VuZGlmCkBAIC0xMTU1LDE2ICsxMTU2LDE2IEBAIHN0YXRp
YyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAg
W2ZyYW1lVmlldyByZWxlYXNlXTsKIAogICAgIAotICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VD
bGllbnRzOwotICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGll
bnRJT1Moc2VsZik7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb247Cisg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElP
UyhzZWxmKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBhZ2VDbGllbnRzLmRyYWdD
bGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5k
cmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQoc2VsZik7CiAjZW5kaWYKLSAgICBwYWdlQ2xp
ZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOwotICAgIHBhZ2VD
bGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7Ci0g
ICAgcGFnZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7Ci0gICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcg
UGFnZShwYWdlQ2xpZW50cyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50ID0g
bmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5pbnNwZWN0
b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVu
dDsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOworICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBh
Z2UocGFnZUNvbmZpZ3VyYXRpb24pOwogICAgIAogICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZDpZRVNdOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3NWY5ZWQyMDVl
MzNkYzNlYWViYTQyZDc3Y2UwY2Q0NmVlZGMwN2Y4Li5hNzgxZWRiMjlkOTg1NzEyNTg5MzM4MWZm
NTg0OGUwMzA3Yjc4YTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTE4LDYgKzExOCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgpAQCAtMjc5MSwxOCArMjc5MiwxOCBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoCiAgICAgbV9pbnNwZWN0
b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpOwogI2VuZGlmIC8vIEVOQUJM
RShJTlNQRUNUT1IpCiAKLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBw
YWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwotICAg
IHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50
KHRoaXMpOwotICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGll
bnQodGhpcyk7Ci0gICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50
KHRoaXMpOworICAgIFBhZ2VDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAgY29uZmln
dXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOworICAgIGNv
bmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQo
dGhpcyk7CisgICAgY29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xp
ZW50KHRoaXMpOworICAgIGNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xp
ZW50KHRoaXMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgcGFnZUNsaWVudHMuaW5zcGVj
dG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JDbGllbnQ7CisgICAgY29uZmlndXJhdGlvbi5pbnNwZWN0
b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJGcmFt
ZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ2xpZW50cy5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBz
dGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHBhZ2VDbGllbnRzLmxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSk7CisgICAgY29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJh
bWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CisgICAgY29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGNvbmZp
Z3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKTsKIAotICAgIG1fcGFnZSA9IG5ldyBQ
YWdlKHBhZ2VDbGllbnRzKTsKKyAgICBtX3BhZ2UgPSBuZXcgUGFnZShjb25maWd1cmF0aW9uKTsK
ICAgICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UsIG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVu
dCh0aGlzKSk7CiAKICAgICB1bnNpZ25lZCBsYXlvdXRNaWxlc3RvbmVzID0gRGlkRmlyc3RMYXlv
dXQgfCBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGZkZWY0NmU4MmM5MTZhYTE5ZmExMGVmNGU4ZjkxMjVjYTllZmVlNzguLjc0MjcwODQ2MmNk
MzU3MDU0NjE1YWRhOGEzMGNlZjVhNWZhYmRiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC01
MjksNiArNTI5LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXZpY2VQcm94aW1pdHlDbGllbnQuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NzEzZTJlMmE2MjQ2ZmMyZGUwYzRlMDZiMmRi
MWJhZjY1YmQ0MjM5Li5iMWYwNDJhZTZkZDBkYTg4NTkxNjI2OWVmZjQ3NmY4ODUxYTIxNDdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTgwLDYgKzE1ODAsOCBAQAogCQlDNUZBMUVENDE4RTEwNjIyMDBCM0Y0MDIgLyogV0tB
aXJQbGF5Um91dGVQaWNrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNUZBMUVEMjE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNr
ZXIubW0gKi87IH07CiAJCUNEMDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMDAzQTUwMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmNwcCAqLzsgfTsKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CisJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwICovOyB9OworCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oICovOyB9OwogCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgw
MDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0
RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlD
RDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM2ODEsNiArMzY4Myw4IEBACiAJCUM1
RkExRUQyMThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLQWlyUGxheVJvdXRlUGlja2VyLm1t
OyBwYXRoID0gaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAz
QTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsg
cGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUxMzRC
OUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlG
MTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2N0QzMDgxNUMw
N0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU3MzYsNiArNTc0MCw4IEBACiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAogCQkJCUNFREJBODQ1MTlGREEwMEEwMDY4NjZBNSAv
KiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAogCQkJCUNFREJBODQ2MTlGREEwMEEw
MDY4NjZBNSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKKwkJCQlDRDE5QTI2OTFB
MTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovLAorCQkJ
CUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb3JlU3VwcG9ydDsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC03NDk3LDYgKzc1MDMsNyBAQAogCQkJCTFBNjUwOUNFMThCNDE0NjIwMDYx
NDMzMiAvKiBXS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NzFC
NUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNDg5RDI5MDFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRW5jb2Rlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1RTc0OUVD
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0
TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLApAQCAtODg4Niw2ICs4ODkzLDcgQEAKIAkJCQkxQUE1
NzYwMjE0OTZCOTc5MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMUUwOTMzMTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5MEMxRjUxMjY0RkQ3
MTAwM0U0NEQ0IC8qIEZpbmRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMTlB
MjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0U4MUQ4QzEzMTlGN0VGMDAyNDE5MTAgLyogRm9udEluZm8uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTFBNDkxODIwOENENjAwMzEwMDdBIC8qIFdLTlNTdHJp
bmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCmluZGV4IDQxNTRkMDNlZWI2ZDhlYWFkYjc5YWYzN2NhNzY1YTVhNjFmMzRl
ODAuLmFiNWFjZmI1MDE3NDk3YWNlYzAzNWIwNjE1ODAxZmQ0OGQ5MDEwZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKQEAgLTI4LDcgKzI4LDE3IEBACiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAK
K2VudW0geworICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA9IDAsCisgICAga1dL
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsID0gMSwKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdE5vb3AgPSAyLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGU7CisKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgc3VjY2VzcywgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwg
V0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1Jl
ZiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgdmFs
dWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
QEAgLTQyLDEzICs1MiwzMCBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudFYwIHsKICAgICBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlOwog
fSBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwOwogCi1lbnVtIHsga1dLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBS
RUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMCB9Owor
dHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMSB7Cisg
ICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkOworCisgICAgLy8gVmVyc2lvbiAxLgorICAg
IFdLQnVuZGxlUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ7CisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZTsKK30gV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMTsK
KworZW51bSB7IGtXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEN1cnJlbnRWZXJz
aW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGlu
c3RlYWQiKSA9IDEgfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnRJbmZvOwogCiAgICAgLy8gVmVyc2lvbiAwLgotICAgIFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2U7CisgICAgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZURlcHJlY2F0ZWQ7
CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlTG9nRGlhZ25vc3RpY01lc3Nh
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dEaWFnbm9zdGljTWVzc2Fn
ZTsKKyAgICBXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAgICBX
S0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOwogfSBXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCBXS19ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVy
c2lvbmVkIHN0cnVjdCBpbnN0ZWFkIik7CiAKICNlbmRpZiAvLyBXS0J1bmRsZVBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCmluZGV4IDE3NmNhNjY3N2Y0NjE4
NDQ5ZDI1N2ZmMjcyZmI3ZTUwZmE3NzEwNjUuLjlhYjg2ZjkzM2EwMmRmMWY3YzhjMzE3MmFmYjUz
YmI1NTFjNGNmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC0zMSwxMSArMzEsMzIgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBz
dWNjZXNzKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNj
ZXNzKQoreworICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVk
KQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VEZXBy
ZWNhdGVkKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0
aW9uLmltcGwoKSksIHRvQVBJKHN1Y2Nlc3MuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghbV9jbGllbnQubG9n
RGlhZ25vc3RpY01lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NsaWVudC5sb2dEaWFn
bm9zdGljTWVzc2FnZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShk
ZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSShzdWNjZXNzLmltcGwoKSksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodG9BUEkocGFn
ZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoZGVzY3JpcHRpb24uaW1wbCgpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmICghbV9j
bGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KQorICAgICAgICByZXR1cm47Cisg
ICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHRvQVBJKHBhZ2UpLCB0
b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHJlc3VsdCwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2Vi
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBs
KCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCB0b0FQSSh2YWx1ZS5pbXBsKCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggZGRmODM4
MDM5YWI2OGNkMDA0NzZiNDFmZDJhNzhmMjlmMGU3ZmE1ZC4uYmI2ZWFlZjVlMGI4OWVjNjRjZDZi
MmFkMjdiYzRlYjM1MjhlNzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8V0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMD4gVmVyc2lvbnM7CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjAs
IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50VjE+IFZlcnNpb25zOwogfTsKIH0K
IApAQCAtNDUsNyArNDUsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpOworICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vzcyk7
CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSk7Cisg
ICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDJhNDNlZGU3MGU0Mjg2MzBkMTQ0ZGRhOWNmMGU1MmFlZDA2ZmM0OTIuLjQ2ZGRlOGM4
OWExYzAyMTc4M2YyOGNhZWM1ZTM5MjE0ZjYwYjk2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTk4OSwxNCArOTg5LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCiAgICAgbV9wYWdlLT5udW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKQotewotICAgIGlmICghbV9wYWdlLT5j
b3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9u
LCBzdWNjZXNzKTsKLX0KLQogU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6cGx1Z0luU3RhcnRMYWJl
bFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFn
ZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnBsdWdJblN0YXJ0TGFiZWxUaXRsZShtaW1lVHlw
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBhNjZjNGVmOTlkNWY3ODFhZWI5NjJjNDMxZmM2
N2MyM2NjMTBhMGZlLi5jM2M3N2ExY2JlZWU2MDBmNjg0MzgzYWJiYWMzNzRiMmU0YzdlNjg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4Niw4ICsyODYsNiBAQCBwcml2YXRlOgogICAgIAog
ICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
c3VjY2Vzcykgb3ZlcnJpZGU7Ci0KICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5TdGFydExhYmVs
VGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBTdHJpbmcgcGx1Z0luU3RhcnRMYWJlbFN1YnRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVl
dCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZTdjOWI5MzgxZTdmZjcyOWI3MTkxYzQ0MzcyNjQzOWUwMWNh
YjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXZWJQYWdlJiBwYWdlKQorICAgIDog
bV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+V2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQoKQoreworfQorCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbik7Cit9CisKK3ZvaWQg
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpMb2dSZXN1bHRUeXBlIHJlc3VsdCkKK3sKKyAg
ICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCgmbV9w
YWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZh
bHVlKQoreworICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5pbmplY3Rl
ZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWFiMTAxNjJhZmYyM2M3YjRhNGZiZjA1YTA5NWYxNTZmNzEyMzIzYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisjZGVmaW5lIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgeworcHVibGljOgorICAgIFdl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBMb2dSZXN1bHRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKKworICAgIFdlYlBh
Z2UmIG1fcGFnZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjhhZmEwOTRhZWIwNDQzMjg4YTAyMDRiMjJm
ZDhiYTlkNmQxNDEwYi4uZTMzZmVjOTc3Mjg1MWIyZGUyYjQzMmU1MzFmMDUxMzE3OWYyYTg4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJFZGl0b3JDbGllbnQuaCIKQEAgLTEzMSw2ICsxMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZVRocm90dGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVu
dC5oPgpAQCAtMzM5LDMxICszNDEsMzIgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgU2V0
dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlm
CiAKLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBwYWdlQ2xpZW50cy5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOworICAgIFBhZ2VDb25maWd1
cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNs
aWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCi0gICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1l
bnVDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQg
PSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50
cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7CiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdl
YkRyYWdDbGllbnQodGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5l
dyBXZWJEcmFnQ2xpZW50KHRoaXMpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuYmFja0Zvcndh
cmRDbGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50ID0gV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6OmNyZWF0ZSh0aGlzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIG1faW5zcGVjdG9y
Q2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5p
bnNwZWN0b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi5pbnNwZWN0b3JDbGllbnQgPSBtX2luc3BlY3RvckNsaWVudDsKICNlbmRpZgogI2lmIFVTRShB
VVRPQ09SUkVDVElPTl9QQU5FTCkKLSAgICBwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGll
bnQgPSBuZXcgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHRoaXMpOworICAgIHBhZ2VDb25maWd1
cmF0aW9uLmFsdGVybmF0aXZlVGV4dENsaWVudCA9IG5ldyBXZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQgPSBuZXcgV2Vi
UGx1Z0luQ2xpZW50KCp0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNsaWVudHMucHJvZ3Jl
c3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7Cisg
ICAgcGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50ID0gbmV3IFdlYlBsdWdJbkNsaWVudCgq
dGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0g
bmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNz
VHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoKnRoaXMpOworICAg
IHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbmV3IFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCp0aGlzKTsKIAotICAgIHBhZ2VDbGllbnRzLnVzZXJDb250ZW50
Q29udHJvbGxlciA9IG1fdXNlckNvbnRlbnRDb250cm9sbGVyID8gJm1fdXNlckNvbnRlbnRDb250
cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSA6IG51bGxwdHI7Ci0gICAgcGFnZUNsaWVu
dHMudmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpnZXRPckNy
ZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRCk7CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24udXNlckNvbnRlbnRDb250cm9sbGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXIgPyAmbV91
c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpIDogbnVsbHB0cjsK
KyAgICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsK
IAotICAgIG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNsaWVudHMpOworICAg
IG1fcGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4ocGFnZUNvbmZpZ3VyYXRpb24pOwogCiAg
ICAgbV9kcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVhOjpjcmVhdGUoKnRoaXMsIHBhcmFtZXRlcnMp
OwogICAgIG1fZHJhd2luZ0FyZWEtPnNldFBhaW50aW5nRW5hYmxlZChmYWxzZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>