<?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>204881</bug_id>
          
          <creation_ts>2019-12-05 02:35:41 -0800</creation_ts>
          <short_desc>Implement encoding for DrawImage and DrawRoundedRect display list items</short_desc>
          <delta_ts>2019-12-07 05:31:17 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595753</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-05 02:35:41 -0800</bug_when>
    <thetext>Implement encoding for DrawImage and DrawRoundedRect display list items</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595754</commentid>
    <comment_count>1</comment_count>
      <attachid>384890</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-05 02:35:59 -0800</bug_when>
    <thetext>Created attachment 384890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596543</commentid>
    <comment_count>2</comment_count>
      <attachid>385088</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-07 02:52:01 -0800</bug_when>
    <thetext>Created attachment 385088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596547</commentid>
    <comment_count>3</comment_count>
      <attachid>385091</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-07 03:20:25 -0800</bug_when>
    <thetext>Created attachment 385091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596550</commentid>
    <comment_count>4</comment_count>
      <attachid>385093</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-07 03:59:03 -0800</bug_when>
    <thetext>Created attachment 385093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596551</commentid>
    <comment_count>5</comment_count>
      <attachid>385094</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-07 04:24:53 -0800</bug_when>
    <thetext>Created attachment 385094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596553</commentid>
    <comment_count>6</comment_count>
      <attachid>385094</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-07 05:30:24 -0800</bug_when>
    <thetext>Comment on attachment 385094
Patch

Clearing flags on attachment: 385094

Committed r253249: &lt;https://trac.webkit.org/changeset/253249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596554</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-07 05:30:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596556</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-07 05:31:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/57727165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384890</attachid>
            <date>2019-12-05 02:35:59 -0800</date>
            <delta_ts>2019-12-07 02:51:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204881-20191205023558.patch</filename>
            <type>text/plain</type>
            <size>43270</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMjk5OWJjNmVlMDAy
NjFkMjExOGNmZGQ2ZTY1NTVkYWRjODFhZi4uYTg4MDc4MDRmZjNiYWQzNDgzNzNiOTgyNjI1YWRm
ZDViMGFmZDM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTA1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZyBmb3IgRHJhd0ltYWdlIGFuZCBEcmF3Um91bmRlZFJlY3QgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IEludGVycG9sYXRpb25RdWFsaXR5IGFuIGVudW0gY2xhc3MuCisgICAgICAgIE1ha2UgSW1hZ2VQ
YWludGluZ09wdGlvbnMgYW5kIGFsbCBvZiBpdHMgY2hpbGRyZW4gZW5jb2RhYmxlLgorICAgICAg
ICBNYWtlIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5kZWRSZWN0IGVuY29kYWJsZS4KKyAgICAgICAg
QWRkIEltYWdlSGFuZGxlLCB3aGljaCByaWdodCBub3cganVzdCB3cmFwcyBXZWJDb3JlOjpJbWFn
ZSwgYnV0CisgICAgICAgIGxhdGVyIGNvdWxkIGNhcnJ5IGlkZW50aWZpZXJzLiBUaGlzIGFsbG93
cyB1cyB0byBpbXBsZW1lbnQgaW1hZ2UgZW5jb2RpbmcKKyAgICAgICAgaW4gV2ViS2l0IGNvZGUs
IHdoaWNoIGNhbiB0aGVuIHVzZSBTaGFyZWFibGVCaXRtYXAgdG8gQSkgZGVjb2RlIHRoZSBpbWFn
ZQorICAgICAgICBpbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyBhbmQgQikgdXNlIHNoYXJlZCBt
ZW1vcnkgdG8gdHJhbnNtaXQgdGhlCisgICAgICAgIGRlY29kZWQgaW1hZ2UgZGF0YSB0byB0aGUg
R1BVIHByb2Nlc3MuCisKKyAgICAgICAgKiBodG1sL0NhbnZhc0Jhc2UuY3BwOgorICAgICAgICAq
IGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JSZXNpemVRdWFsaXR5KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNtb290aGluZ1RvSW50
ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6c2V0SW1hZ2VTbW9vdGhpbmdFbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lcjo6SW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlUGFpbnRpbmdPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9uczo6SW1hZ2VQYWludGluZ09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnBhaW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWlybzo6ZHJhd1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRJbnRl
cnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6RmlsbFJvdW5kZWRSZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZTo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6RmlsbFJvdW5kZWRSZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1JbWFnZUludGVycG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW06CisgICAgICAgICh0b0NHSW50ZXJwb2xhdGlv
blF1YWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdl
QnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250cm9sbGVyOjppbnRlcnBv
bGF0aW9uUXVhbGl0eUZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlD
b250cm9sbGVyOjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWlu
dEludG9SZWN0KToKKwogMjAxOS0xMi0wMyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBEcmFnQ29udHJvbGxlcjo6Y2xpZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggMWU1YWJiNDZkN2E5MTY2YmJmODlmZjFkNTQ0ODRkZmYwOGViN2Y1NC4uMmI3Y2Ux
ZjhlMjMzZTU3NDk0MDE3NzBhNDQ5YWEyZWE5OTE0MTI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxOS0xMi0wNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgZW5jb2RpbmcgZm9yIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5k
ZWRSZWN0IGRpc3BsYXkgbGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGU+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRs
ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
CiAyMDE5LTEyLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGRpc2FibGVkIGhpZ2hsaWdodCBBUEkgc2tlbGV0b24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwCmluZGV4IDhkMzcwMDQ5ZTlhZDgyNDRmM2Q0OWIzYTNkYzJlZGMxY2Iy
ZDI1MWQuLjEyMmY0ZTQwZGU2ZjdkOTU3NTViMjIxMWFlZGU4Y2FhMTAxMTU1NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgVVNFKENHKQogLy8gRklYTUU6IEl0IHNlZW1zIHN0cmFuZ2UgdGhhdCB0aGUgZGVm
YXVsdCBxdWFsaXR5IGlzIG5vdCB0aGUgb25lIHRoYXQgaXMgbGl0ZXJhbGx5IG5hbWVkICJkZWZh
dWx0Ii4KIC8vIFNob3VsZCBmaXggbmFtZXMgdG8gbWFrZSB0aGlzIGVhc2llciB0byB1bmRlcnN0
YW5kLCBvciB3cml0ZSBhbiBleGNlbGxlbnQgY29tbWVudCBoZXJlIGV4cGxhaW5pbmcgd2h5IG5v
dC4KLWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0
eSA9IEludGVycG9sYXRpb25Mb3c7Citjb25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0
SW50ZXJwb2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogI2Vsc2UK
LWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
IEludGVycG9sYXRpb25EZWZhdWx0OworY29uc3QgSW50ZXJwb2xhdGlvblF1YWxpdHkgZGVmYXVs
dEludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAj
ZW5kaWYKIAogQ2FudmFzQmFzZTo6Q2FudmFzQmFzZShJbnRTaXplIHNpemUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDAxMzUzMWJhMTA5NGVkMmI1ZTNhNDM4ZjEwN2VlZGFk
NTAzNDU5ZWMuLmFiMzk3ZDEwYjE2M2QwYzllZTIyYjYwMGFhMmY2MTE2NGQyNTU4YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC0yMDYsMTYgKzIwNiwxNiBAQCBzdGF0aWMg
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5
KEltYWdlQml0bWFwT3B0aQogewogICAgIHN3aXRjaCAocmVzaXplUXVhbGl0eSkgewogICAgIGNh
c2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5OjpQaXhlbGF0ZWQ6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpOb25lOwogICAgIGNhc2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5
OjpMb3c6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsgLy8gTG93IGlzIHRo
ZSBkZWZhdWx0LgorICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7
IC8vIExvdyBpcyB0aGUgZGVmYXVsdC4KICAgICBjYXNlIEltYWdlQml0bWFwT3B0aW9uczo6UmVz
aXplUXVhbGl0eTo6TWVkaXVtOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk1lZGl1bTsK
KyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW07CiAgICAgY2FzZSBJ
bWFnZUJpdG1hcE9wdGlvbnM6OlJlc2l6ZVF1YWxpdHk6OkhpZ2g6Ci0gICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uSGlnaDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpI
aWdoOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJw
b2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0
OwogfQogCiAvLyBGSVhNRTogTW9yZSBzdGVwcyBmcm9tIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2ltYWdlYml0bWFwLWFuZC1hbmltYXRpb25zLmh0bWwjY3JvcHBlZC10
by10aGUtc291cmNlLXJlY3RhbmdsZS13aXRoLWZvcm1hdHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKaW5kZXggOTI4Mjg4NDU2YjM1ODIxNGYzZmRlMWU1YzAyNDgxYmU5NWRlODg5My4uZGEyNGEx
YzRiZjJhNjZjNjk4YTE2N2I5MzJlMTJlMzc4MTcxNzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKQEAgLTIyODgsMTUgKzIyODgsMTUgQEAgc3RhdGljIGlubGluZSBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRpb25RdWFsaXR5KEltYWdlU21vb3RoaW4KIHsKICAg
ICBzd2l0Y2ggKHF1YWxpdHkpIHsKICAgICBjYXNlIEltYWdlU21vb3RoaW5nUXVhbGl0eTo6TG93
OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgcmV0dXJuIEludGVy
cG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgY2FzZSBJbWFnZVNtb290aGluZ1F1YWxpdHk6Ok1l
ZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07CisgICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2UgSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5OjpIaWdoOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkhpZ2g7CisgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICByZXR1cm4g
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKIH07CiAKIGF1dG8gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6aW1hZ2VTbW9vdGhpbmdRdWFsaXR5KCkgY29uc3QgLT4gSW1hZ2VTbW9vdGhp
bmdRdWFsaXR5CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbW9k
aWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZW5hYmxlZDsKICAgICBhdXRv
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoYykKLSAgICAgICAgYy0+c2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShlbmFibGVkID8gc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVh
bGl0eShzdGF0ZSgpLmltYWdlU21vb3RoaW5nUXVhbGl0eSkgOiBJbnRlcnBvbGF0aW9uTm9uZSk7
CisgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoZW5hYmxlZCA/IHNtb290
aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFnZVNtb290aGluZ1F1YWxpdHkp
IDogSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OnNldFBhdGgoUGF0aDJEJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaAppbmRleCBmM2EwYjQ3OWUy
NTljZWQ4MWQ0MTIzMjBmMTk4ODg0YjFjNzkzMmNkLi44NDkzZDNhNTQ2NmY4MTdhNjQzMGI3NzVm
NzQxY2E1NTVmOWZlODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBEZWNvZGluZ01vZGUgeworZW51bSBjbGFzcyBE
ZWNvZGluZ01vZGUgOiB1aW50OF90IHsKICAgICBBdXRvLAogICAgIFN5bmNocm9ub3VzLAogICAg
IEFzeW5jaHJvbm91cwpAQCAtMTQ0LDQgKzE0NSwxNyBAQCBwcml2YXRlOgogICAgIERlY29kaW5n
TW9kZU9yU2l6ZSBtX2RlY29kaW5nTW9kZU9yU2l6ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6RGVjb2RpbmdNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICBXZWJDb3JlOjpEZWNvZGluZ01vZGUsCisgICAgV2ViQ29yZTo6RGVjb2RpbmdNb2Rl
OjpBdXRvLAorICAgIFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsCisgICAgV2Vi
Q29yZTo6RGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDIyNWFiYWFiZThhYTJhOGFlYWVlMWE1MmM2MTZhMjk4ZjFlMjAw
YjEuLmIxNWZmZmNhN2MwM2U5Yzk2OTZhZmIwM2JhNGJiYTZlNjRhZDIzMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0x
OTYsNyArMTk2LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICAgICBmbG9hdCBh
bHBoYSB7IDEgfTsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciB7IENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSB7
IEJsZW5kTW9kZTo6Tm9ybWFsIH07Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25EZWZhdWx0IH07CisgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0IH07CiAKICAgICBib29sIHNob3VsZEFudGlhbGlhcyA6IDE7CiAgICAgYm9v
bCBzaG91bGRTbW9vdGhGb250cyA6IDE7CkBAIC02OTksNyArNjk5LDcgQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcihHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxp
dHlUb1VzZSkKICAgICAgICAgOiBtX2dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQpCiAg
ICAgICAgICwgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1YWxpdHkoZ3JhcGhpY3NDb250ZXh0Lmlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSkKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFs
aXR5Q2hhbmdlZChpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlICE9IEludGVycG9sYXRpb25EZWZh
dWx0ICYmIG1fY3VycmVudEludGVycG9sYXRpb25RdWFsaXR5ICE9IGludGVycG9sYXRpb25RdWFs
aXR5VG9Vc2UpCisgICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZWQoaW50ZXJw
b2xhdGlvblF1YWxpdHlUb1VzZSAhPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCAmJiBt
X2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNl
KQogICAgIHsKICAgICAgICAgaWYgKG1faW50ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2VkKQogICAg
ICAgICAgICAgbV9ncmFwaGljc0NvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShp
bnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAppbmRleCAyY2U2YjBjYmEwMDBjOTE2ZjFhNGRhNDcy
NDUyOTkzZWY0YzkwNTUzLi5kM2EyZTg0MTQwYjkzYzQyYzVmMDA3MjhhOWJkMGRiYTFmZDdlYjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5oCkBAIC03OSwxMiArNzksMTIgQEAgZW51bSBHcmFkaWVudFNwcmVhZE1ldGhvZCB7CiAgICAg
U3ByZWFkTWV0aG9kUmVwZWF0CiB9OwogCi1lbnVtIEludGVycG9sYXRpb25RdWFsaXR5IHsKLSAg
ICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwKLSAgICBJbnRlcnBvbGF0aW9uTm9uZSwKLSAgICBJbnRl
cnBvbGF0aW9uTG93LAotICAgIEludGVycG9sYXRpb25NZWRpdW0sCi0gICAgSW50ZXJwb2xhdGlv
bkhpZ2gKK2VudW0gY2xhc3MgSW50ZXJwb2xhdGlvblF1YWxpdHkgOiB1aW50OF90IHsKKyAgICBE
ZWZhdWx0LAorICAgIE5vbmUsCisgICAgTG93LAorICAgIE1lZGl1bSwKKyAgICBIaWdoCiB9Owog
CiBlbnVtIExpbmVDYXAgewpAQCAtMTkzLDQgKzE5MywxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkJsZW5kTW9kZT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5PiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVh
bGl0eSwKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCwKKyAgICBX
ZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpJbnRlcnBv
bGF0aW9uUXVhbGl0eTo6TG93LAorICAgIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpN
ZWRpdW0sCisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2gKKyAgICA+Owor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKaW5kZXggNTU5ZTViM2E2NTdkMWY4ODQ3YzQx
OTc4NzE1NzBiMDU4OTQ3NTE1NC4uZDk5MGEzZGM1NTVmY2RkYjYxMzc0ZGI3ZDBjZDc1ZGE4ZGY0
OTg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VP
cmllbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
T3JpZW50YXRpb24uaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNm
b3JtLmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjEsMyArMTIyLDIyIEBAIHByaXZhdGU6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVu
dGF0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpJ
bWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbiwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0
aW9uOjpPcmllbnRhdGlvbjo6RnJvbUltYWdlLAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0LAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50
YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodCwKKyAgICBXZWJDb3JlOjpJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQsCisgICAgV2ViQ29yZTo6
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQsCisgICAgV2Vi
Q29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkxlZnRUb3AsCisgICAg
V2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpblJpZ2h0VG9wLAor
ICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5SaWdodEJv
dHRvbSwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2lu
TGVmdEJvdHRvbQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5o
CmluZGV4IGRlYTdkMmE1MzUzM2ViYmIwNmQwY2M5NjI0NWExOGFjYzUxYjhiZTAuLjg5NzhlNmFm
NzEyZTgzY2Q2NzA4YWEzM2ZiNWMyNTRmZmM0MmIxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaApAQCAtMzgs
MTEgKzM4LDExIEBAIHN0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7CiAgICAgICAgIHNldE9w
dGlvbihvcHRpb25zLi4uKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBPdmVy
cnJpZGVzPgotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvdGhlciwgT3ZlcnJyaWRlcy4uLiBvdmVycnJpZGVzKQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIE92ZXJyaWRlcz4KKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgb3RoZXIsIE92ZXJyaWRlcy4uLiBvdmVycmlkZXMpCiAgICAgICAgIDog
SW1hZ2VQYWludGluZ09wdGlvbnMob3RoZXIpCiAgICAgewotICAgICAgICBzZXRPcHRpb24ob3Zl
cnJyaWRlcy4uLik7CisgICAgICAgIHNldE9wdGlvbihvdmVycmlkZXMuLi4pOwogICAgIH0KIAog
ICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKCkgPSBkZWZhdWx0OwpAQCAtNTQsNiArNTQsOSBAQCBz
dHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnMgewogICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAgICAgSW50ZXJwb2xhdGlv
blF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2ludGVycG9s
YXRpb25RdWFsaXR5OyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRl
OgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGaXJzdCwgdHlwZW5hbWUuLi4gUmVzdD4KICAgICB2
b2lkIHNldE9wdGlvbihGaXJzdCBmaXJzdCwgUmVzdC4uLiByZXN0KQpAQCAtNzMsNyArNzYsNDgg
QEAgcHJpdmF0ZToKICAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGUgeyBCbGVuZE1vZGU6Ok5vcm1h
bCB9OwogICAgIERlY29kaW5nTW9kZSBtX2RlY29kaW5nTW9kZSB7IERlY29kaW5nTW9kZTo6U3lu
Y2hyb25vdXMgfTsKICAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRpb24geyBJbWFnZU9y
aWVudGF0aW9uOjpOb25lIH07Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgbV9pbnRlcnBvbGF0
aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25EZWZhdWx0IH07CisgICAgSW50ZXJwb2xhdGlvblF1
YWxpdHkgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZh
dWx0IH07CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJbWFnZVBhaW50aW5n
T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBtX2NvbXBvc2l0ZU9wZXJhdG9yOworICAgIGVuY29kZXIgPDwgbV9ibGVuZE1vZGU7CisgICAg
ZW5jb2RlciA8PCBtX2RlY29kaW5nTW9kZTsKKyAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOworICAgIGVuY29kZXIgPDwgbV9pbnRlcnBv
bGF0aW9uUXVhbGl0eTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPElt
YWdlUGFpbnRpbmdPcHRpb25zPiBJbWFnZVBhaW50aW5nT3B0aW9uczo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0ZU9w
ZXJhdG9yOworICAgIGRlY29kZXIgPj4gY29tcG9zaXRlT3BlcmF0b3I7CisgICAgaWYgKCFjb21w
b3NpdGVPcGVyYXRvcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOworICAgIGRlY29kZXIgPj4gYmxlbmRNb2RlOworICAg
IGlmICghYmxlbmRNb2RlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0
aW9uYWw8RGVjb2RpbmdNb2RlPiBkZWNvZGluZ01vZGU7CisgICAgZGVjb2RlciA+PiBkZWNvZGlu
Z01vZGU7CisgICAgaWYgKCFkZWNvZGluZ01vZGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbj4gb3JpZW50
YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9u
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8SW50ZXJwb2xh
dGlvblF1YWxpdHk+IGludGVycG9sYXRpb25RdWFsaXR5OworICAgIGRlY29kZXIgPj4gaW50ZXJw
b2xhdGlvblF1YWxpdHk7CisgICAgaWYgKCFpbnRlcnBvbGF0aW9uUXVhbGl0eSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBJbWFnZVBhaW50aW5nT3B0aW9ucyB7
ICpjb21wb3NpdGVPcGVyYXRvciwgKmJsZW5kTW9kZSwgKmRlY29kaW5nTW9kZSwgKm9yaWVudGF0
aW9uLCAqaW50ZXJwb2xhdGlvblF1YWxpdHkgfTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5k
ZXggM2I3MGU3NjYzOWU1OTQwYWYxZjJiMWQ1YmYyNjczYWUzMmRlY2ExMC4uMGNlOGNlYjQ4YmQ3
ODhjZWIxOWFhOWRkODk3ZjkyOTlkZWFiZGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC04NTks
NyArODU5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG8KICAgICAgICAgY29udGV4dC5zYXZl
KCk7CiAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3Qu
aGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikp
OwotICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xh
dGlvbkxvdyk7CisgICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKICAgICAgICAgRmxvYXRSZWN0IHBhaW50UmVjdChG
bG9hdFBvaW50KCksIHJlY3Quc2l6ZSgpKTsKICNpZiBVU0UoRElSRUNUMkQpCiAgICAgICAgIG5v
dEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA4NDIxMTIzNzRhNWQ2
YTgxNWI4Yzc2ZGE0ZTBmOTMwNWE1NGZiMWViLi5mOGNlYjk1MjUzZmY5YjdmMzA0NWIwNTFhNzM4
Yjc2NWI3YTlkMzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTE1NDcsNyArMTU0Nyw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1h
Z2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVj
dC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUo
RmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKKyAgICAgICAgY29udGV4dC5zZXRJbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpMb3cpOwogICAgICAg
ICBJbnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyZWN0LndpZHRoKCks
IHJlY3QuaGVpZ2h0KCkpKTsKICAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxh
dGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50
UmVjdC5oZWlnaHQoKSksIGltYWdlLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApp
bmRleCA3ZTNkNzQ0MGQyNjA3YmM2ZTE1YzJiMzE2YjBiZDJiYzFmMjBkZjM3Li5mNmMwNzdiMGE1
ZjBkNWVhOTUwMzRlZWZmMmYyZjAwYjQzZDU5YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAg
LTkzNiwxNSArOTM2LDE1IEBAIHZvaWQgZHJhd1N1cmZhY2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
IHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlCiAgICAgUmVmUHRyPGNh
aXJvX3BhdHRlcm5fdD4gcGF0dGVybiA9IGFkb3B0UmVmKGNhaXJvX3BhdHRlcm5fY3JlYXRlX2Zv
cl9zdXJmYWNlKHBhdHRlcm5TdXJmYWNlLmdldCgpKSk7CiAKICAgICBzd2l0Y2ggKGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkpIHsKLSAgICBjYXNlIEludGVycG9sYXRpb25Ob25lOgotICAgIGNh
c2UgSW50ZXJwb2xhdGlvbkxvdzoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpOb25l
OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAgICAgICAgY2Fpcm9fcGF0
dGVybl9zZXRfZmlsdGVyKHBhdHRlcm4uZ2V0KCksIENBSVJPX0ZJTFRFUl9GQVNUKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTWVkaXVtOgotICAgIGNhc2UgSW50ZXJw
b2xhdGlvbkRlZmF1bHQ6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOgor
ICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ6CiAgICAgICAgIGNhaXJvX3Bh
dHRlcm5fc2V0X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfR09PRCk7CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkhpZ2g6CisgICAgY2FzZSBJbnRlcnBv
bGF0aW9uUXVhbGl0eTo6SGlnaDoKICAgICAgICAgY2Fpcm9fcGF0dGVybl9zZXRfZmlsdGVyKHBh
dHRlcm4uZ2V0KCksIENBSVJPX0ZJTFRFUl9CRVNUKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHQzRENHLmNwcAppbmRleCAzYWZhYTBhYjAxZDRhNDBjMmRiMTU5ZmY0OTI5YTBj
NGJhOGMxMTEwLi42OGI1MjhhMWU5NTE3NTFiMGFmYTEwNmE0OWI4Mjc2MWE1MTZiOGEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHQzRENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHQzRENHLmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhlbHMsIGNv
bnN0IEluCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQp
OwogICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4dC50cmFu
c2xhdGUoMCwgLWltYWdlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgY29udGV4dC5zZXRJbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKKyAgICBjb250ZXh0LnNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUpOwogICAgIGNv
bnRleHQuZHJhd05hdGl2ZUltYWdlKGNnSW1hZ2UsIGltYWdlU2l6ZSwgY2FudmFzUmVjdCwgRmxv
YXRSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2VTaXplKSwgeyBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eSB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDJkZjJlNTQzMjQ5ZmRkZGY1M2VmOGYx
OGVjNzkzODBjZmU0N2E5NzcuLjdhZjllZGJlZmNhMzBjYmI3ZGQ0ZmM4NjFmMTNkZGE0NDdiMzNk
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTE0MywxNyArMTQzLDE3IEBAIHN0YXRpYyBJbnRl
cnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxpdHkoQ0dJbnRlcnBvbGF0
aW9uUXVhbGl0eSBxCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CiAgICAgY2FzZSBrQ0dJbnRl
cnBvbGF0aW9uRGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25EZWZhdWx0Owor
ICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAgICAgY2FzZSBr
Q0dJbnRlcnBvbGF0aW9uTm9uZToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Ob25lOwor
ICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmU7CiAgICAgY2FzZSBrQ0dJ
bnRlcnBvbGF0aW9uTG93OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAg
ICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgY2FzZSBrQ0dJbnRlcnBv
bGF0aW9uTWVkaXVtOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk1lZGl1bTsKKyAgICAg
ICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW07CiAgICAgY2FzZSBrQ0dJbnRl
cnBvbGF0aW9uSGlnaDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25IaWdoOworICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g7CiAgICAgfQotICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRl
ZmF1bHQ7CiB9CiAKIHN0YXRpYyBDR0JsZW5kTW9kZSBzZWxlY3RDR0JsZW5kTW9kZShDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKQEAgLTE2
NjcsMTkgKzE2NjcsMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eQogCiAgICAgQ0dJbnRlcnBv
bGF0aW9uUXVhbGl0eSBxdWFsaXR5ID0ga0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAgICAgc3dp
dGNoIChtb2RlKSB7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uRGVmYXVsdDoKKyAgICBjYXNlIElu
dGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAgICAgICBxdWFsaXR5ID0ga0NHSW50ZXJw
b2xhdGlvbkRlZmF1bHQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk5v
bmU6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6Tm9uZToKICAgICAgICAgcXVhbGl0
eSA9IGtDR0ludGVycG9sYXRpb25Ob25lOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVy
cG9sYXRpb25Mb3c6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OgogICAgICAg
ICBxdWFsaXR5ID0ga0NHSW50ZXJwb2xhdGlvbkxvdzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnRlcnBvbGF0aW9uTWVkaXVtOgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1l
ZGl1bToKICAgICAgICAgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25NZWRpdW07CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkhpZ2g6CisgICAgY2FzZSBJbnRlcnBvbGF0
aW9uUXVhbGl0eTo6SGlnaDoKICAgICAgICAgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25IaWdo
OwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAKaW5kZXggOTFjYmI5ZmVmMmYyM2Y2MDkyODYzYzAyNDBmZTczZWRkY2QzMjViNC4uNzY0Nzc5
MzM5MGEzODllNDM4NTFlZGQ1ZjhlNjFjZDAzMmEzZTgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmNwcApAQCAtNDkyLDYgKzQ5Miw4IEBAIERyYXdJbWFnZTo6RHJhd0ltYWdl
KEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0CiB7CiB9CiAKK0RyYXdJbWFnZTo6fkRyYXdJbWFnZSgpID0gZGVmYXVsdDsKKwogdm9pZCBE
cmF3SW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBj
b250ZXh0LmRyYXdJbWFnZShtX2ltYWdlLmdldCgpLCBtX2Rlc3RpbmF0aW9uLCBtX3NvdXJjZSwg
bV9pbWFnZVBhaW50aW5nT3B0aW9ucyk7CkBAIC04NzYsNiArODc4LDE2IEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGaWxsQ29tcG9zaXRlZFJl
Y3QmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCitGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3Vu
ZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3Is
IEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RmlsbFJv
dW5kZWRSZWN0KQorICAgICwgbV9yZWN0KHJlY3QpCisgICAgLCBtX2NvbG9yKGNvbG9yKQorICAg
ICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQoreworfQorCitGaWxsUm91bmRlZFJlY3Q6On5GaWxs
Um91bmRlZFJlY3QoKSA9IGRlZmF1bHQ7CisKIHZvaWQgRmlsbFJvdW5kZWRSZWN0OjphcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5maWxsUm91bmRl
ZFJlY3QobV9yZWN0LCBtX2NvbG9yLCBtX2JsZW5kTW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaAppbmRleCBkYzQyZmZlYWVlYWEwYTQ1NWZkMDg3YTg0NTUwYTlmMzVmODhkODY3
Li5lNWFkZWMwN2VjYjhmOWQ2MzVjYTc0NmQ3NjI5YjViMjU5MjU3ZjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTc0MSwxMiArNzQxLDE3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucykpOwogICAgIH0KIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgfkRyYXdJbWFnZSgpOworCiAgICAgY29uc3QgSW1hZ2UmIGltYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQogICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZTsgfQogICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZGVzdGluYXRpb247IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8UmVmPERyYXdJbWFnZT4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZh
dGU6Ci0gICAgRHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgRHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJik7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRl
OwogCkBAIC03NTgsNiArNzYzLDQ5IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VQYWludGluZ09wdGlv
bnMgbV9pbWFnZVBhaW50aW5nT3B0aW9uczsKIH07CiAKK2NsYXNzIEltYWdlSGFuZGxlIHsKK3B1
YmxpYzoKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgRHJhd0ltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKKyAgICBpbWFnZUhhbmRsZS5pbWFnZSA9IG1f
aW1hZ2UucHRyKCk7CisKKyAgICBlbmNvZGVyIDw8IGltYWdlSGFuZGxlOworICAgIGVuY29kZXIg
PDwgbV9kZXN0aW5hdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fc291cmNlOworICAgIGVuY29kZXIg
PDwgbV9pbWFnZVBhaW50aW5nT3B0aW9uczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPFJlZjxEcmF3SW1hZ2U+PiBEcmF3SW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIE9wdGlvbmFsPEltYWdlSGFuZGxlPiBpbWFnZUhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IGltYWdlSGFuZGxlOworICAgIGlmICghaW1hZ2VIYW5kbGUpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGRlc3RpbmF0aW9uOwor
ICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb247CisgICAgaWYgKCFkZXN0aW5hdGlvbikKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gc291cmNl
OworICAgIGRlY29kZXIgPj4gc291cmNlOworICAgIGlmICghc291cmNlKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IGlt
YWdlUGFpbnRpbmdPcHRpb25zOworICAgIGRlY29kZXIgPj4gaW1hZ2VQYWludGluZ09wdGlvbnM7
CisgICAgaWYgKCFpbWFnZVBhaW50aW5nT3B0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBEcmF3SW1hZ2U6OmNyZWF0ZSgqaW1hZ2VIYW5kbGUtPmltYWdl
LCAqZGVzdGluYXRpb24sICpzb3VyY2UsICppbWFnZVBhaW50aW5nT3B0aW9ucyk7Cit9CisKIGNs
YXNzIERyYXdUaWxlZEltYWdlIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPERyYXdUaWxlZEltYWdlPiBjcmVhdGUoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0
U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAtMTM3OSwyMyArMTQyNywyMiBA
QCBPcHRpb25hbDxSZWY8RmlsbENvbXBvc2l0ZWRSZWN0Pj4gRmlsbENvbXBvc2l0ZWRSZWN0Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIAogY2xhc3MgRmlsbFJvdW5kZWRSZWN0IDogcHVibGlj
IERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZpbGxSb3VuZGVkUmVjdD4g
Y3JlYXRlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGxS
b3VuZGVkUmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEZpbGxSb3VuZGVkUmVjdChyZWN0LCBjb2xvciwgYmxlbmRNb2RlKSk7CiAg
ICAgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RmlsbFJvdW5kZWRSZWN0KCk7CisK
ICAgICBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVjdDsgfQogICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29s
b3I7IH0KICAgICBCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZE1v
ZGU7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVm
PEZpbGxSb3VuZGVkUmVjdD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6Ci0gICAgRmls
bFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKLSAgICAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlw
ZTo6RmlsbFJvdW5kZWRSZWN0KQotICAgICAgICAsIG1fcmVjdChyZWN0KQotICAgICAgICAsIG1f
Y29sb3IoY29sb3IpCi0gICAgICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQotICAgIHsKLSAg
ICB9CisgICAgV0VCQ09SRV9FWFBPUlQgRmlsbFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmLCBjb25zdCBDb2xvciYsIEJsZW5kTW9kZSk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9j
YWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9yZWN0LnJlY3QoKTsgfQpAQCAtMTQwNSw2ICsxNDUyLDM1IEBAIHByaXZhdGU6CiAgICAgQmxl
bmRNb2RlIG1fYmxlbmRNb2RlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
RmlsbFJvdW5kZWRSZWN0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG1fcmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fY29sb3I7CisgICAgZW5jb2RlciA8
PCBtX2JsZW5kTW9kZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFJl
ZjxGaWxsUm91bmRlZFJlY3Q+PiBGaWxsUm91bmRlZFJlY3Q6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIE9wdGlvbmFsPEZsb2F0Um91bmRlZFJlY3Q+IHJlY3Q7CisgICAgZGVjb2Rl
ciA+PiByZWN0OworICAgIGlmICghcmVjdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPENvbG9yPiBjb2xvcjsKKyAgICBkZWNvZGVyID4+IGNvbG9yOworICAg
IGlmICghY29sb3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsKKyAgICBkZWNvZGVyID4+IGJsZW5kTW9kZTsKKyAgICBp
ZiAoIWJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVy
biBGaWxsUm91bmRlZFJlY3Q6OmNyZWF0ZSgqcmVjdCwgKmNvbG9yLCAqYmxlbmRNb2RlKTsKK30K
KwogY2xhc3MgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUgOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+IGNyZWF0ZShj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xl
UmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMTczMSw3ICsxODA3LDcgQEAgdm9pZCBJdGVt
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgV1RGTG9nQWx3YXlzKCJE
aXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIERyYXdHbHlwaHMiKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICBX
VEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY2Fubm90IHlldCBlbmNvZGUg
RHJhd0ltYWdlIik7CisgICAgICAgIGVuY29kZXIgPDwgZG93bmNhc3Q8RHJhd0ltYWdlPigqdGhp
cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOgog
ICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY2Fubm90IHll
dCBlbmNvZGUgRHJhd1RpbGVkSW1hZ2UiKTsKQEAgLTE3ODQsNyArMTg2MCw3IEBAIHZvaWQgSXRl
bTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIgPDwgZG93
bmNhc3Q8RmlsbENvbXBvc2l0ZWRSZWN0PigqdGhpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdDoKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNw
bGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIEZpbGxSb3VuZGVkUmVjdCIp
OworICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PEZpbGxSb3VuZGVkUmVjdD4oKnRoaXMpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9s
ZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5v
dCB5ZXQgZW5jb2RlIEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlIik7CkBAIC0xODk1LDcgKzE5NzEs
OCBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHll
dCBkZWNvZGUgRHJhd0dseXBocyIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3SW1hZ2U6Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRl
Y29kZSBjYW5ub3QgeWV0IGRlY29kZSBEcmF3SW1hZ2UiKTsKKyAgICAgICAgaWYgKGF1dG8gaXRl
bSA9IERyYXdJbWFnZTo6ZGVjb2RlKGRlY29kZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOgogICAgICAgICBXVEZMb2dBbHdheXMo
IkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUgRHJhd1RpbGVkSW1h
Z2UiKTsKQEAgLTE5NTMsNyArMjAzMCw4IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRlbTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5j
ZV9jYXN0PEl0ZW0+KFdURk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RmlsbFJvdW5kZWRSZWN0OgotICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlM
aXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUgRmlsbFJvdW5kZWRSZWN0Iik7Cisg
ICAgICAgIGlmIChhdXRvIGl0ZW0gPSBGaWxsUm91bmRlZFJlY3Q6OmRlY29kZShkZWNvZGVyKSkK
KyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgq
aXRlbSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhS
b3VuZGVkSG9sZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVj
b2RlIGNhbm5vdCB5ZXQgZGVjb2RlIEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29uSU9TLm1tCmluZGV4IGE3ZWU5
ZjY2YzAwM2QwMzk1ZjgxODgyNzhhNDNiZGNjYzAxNWFlYzguLjgxMzZjMWZmZjQ1YjlhMzE3N2E5
NjhiYjZmNjJiMmRmODkwN2RhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2lvcy9JY29uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2lvcy9JY29uSU9TLm1tCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgSWNvbjo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogICAg
IEZsb2F0U2l6ZSBzaXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCBzcmNSZWN0KEZs
b2F0UG9pbnQoKSwgc2l6ZSk7CiAKLSAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHkoSW50ZXJwb2xhdGlvbkhpZ2gpOworICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaCk7CiAgICAgY29udGV4dC5kcmF3
TmF0aXZlSW1hZ2UobV9jZ0ltYWdlLmdldCgpLCBzaXplLCBkZXN0UmVjdCwgc3JjUmVjdCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9C
aXRtYXBUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlLmNwcAppbmRleCAzMzMyMjliNGNlNGE0NjMxODc4MWVkODA2MjgxMWU3
NjM4OTZiMGY2Li43ZDJjZWZkNjI2MWRlZTJhMzlhODlkMTAxNzAyZWI1MDI1MmY0ZjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4
dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmUuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZTo6dXBk
YXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYsIEdyYXBoaWNzTGF5ZXIqIHNvdXJjZUxheWVyLCBj
CiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IGltYWdl
QnVmZmVyLT5jb250ZXh0KCk7Ci0gICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KEludGVycG9sYXRpb25EZWZhdWx0KTsKKyAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQpOwogICAgIGNvbnRleHQu
c2V0VGV4dERyYXdpbmdNb2RlKFRleHRNb2RlRmlsbCk7CiAKICAgICBJbnRSZWN0IHNvdXJjZVJl
Y3QodGFyZ2V0UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcAppbmRleCBmNTM4
NzBmMmY0MTc1OTNiYTk3MzQ1MDRiOTU4ZDZkMjMzODg1NWJkLi40MzQwN2ZkOWMxY2IwNWQxYjlm
ZGI5NGIwMjUwYTk5ZDhiODdhYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAK
QEAgLTEwNjIsMTkgKzEwNjIsMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3Jt
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eQogICAgIEQyRDFf
SU5URVJQT0xBVElPTl9NT0RFIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9ORUFS
RVNUX05FSUdIQk9SOwogCiAgICAgc3dpdGNoIChtb2RlKSB7Ci0gICAgY2FzZSBJbnRlcnBvbGF0
aW9uRGVmYXVsdDoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAg
ICAgICBxdWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfTkVBUkVTVF9ORUlHSEJPUjsK
ICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9uZToKKyAgICBjYXNlIElu
dGVycG9sYXRpb25RdWFsaXR5OjpOb25lOgogICAgICAgICBxdWFsaXR5ID0gRDJEMV9JTlRFUlBP
TEFUSU9OX01PREVfTkVBUkVTVF9ORUlHSEJPUjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAg
ICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX0xJTkVBUjsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTWVkaXVtOgorICAgIGNhc2UgSW50ZXJwb2xh
dGlvblF1YWxpdHk6Ok1lZGl1bToKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElP
Tl9NT0RFX0NVQklDOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdo
OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIHF1YWxpdHkg
PSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9ISUdIX1FVQUxJVFlfQ1VCSUM7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V0FLVmlldy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpp
bmRleCBkMDE5NDg5ZGE4YmVjYWI0YTU1MmYwYzA5N2M4NDUyMzI2NTU5MDIzLi45OWE1MzQ3MjI3
NTRjNThjNDAxZWRkZDUyNzA3YmMxZGNjNWQ2ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL3dhay9XQUtWaWV3Lm1tCkBAIC00NzEsMTUgKzQ3MSwxNSBAQCAtICh2b2lkKV91bmxv
Y2tGb2N1c1ZpZXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CiBzdGF0aWMgQ0dJbnRl
cnBvbGF0aW9uUXVhbGl0eSB0b0NHSW50ZXJwb2xhdGlvblF1YWxpdHkoV2ViQ29yZTo6SW50ZXJw
b2xhdGlvblF1YWxpdHkgcXVhbGl0eSkKIHsKICAgICBzd2l0Y2ggKHF1YWxpdHkpIHsKLSAgICBj
YXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgV2ViQ29yZTo6SW50
ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBrQ0dJbnRlcnBvbGF0
aW9uRGVmYXVsdDsKLSAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25Ob25lOgorICAgIGNh
c2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmU6CiAgICAgICAgIHJldHVybiBr
Q0dJbnRlcnBvbGF0aW9uTm9uZTsKLSAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25Mb3c6
CisgICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OgogICAgICAgICBy
ZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkxvdzsKLSAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRp
b25NZWRpdW06CisgICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVt
OgogICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbk1lZGl1bTsKLSAgICBjYXNlIFdlYkNv
cmU6OkludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1
YWxpdHk6OkhpZ2g6CiAgICAgICAgIHJldHVybiBrQ0dJbnRlcnBvbGF0aW9uSGlnaDsKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5k
ZXggOTE2NDg3M2Q1ODI1MWQzMmM4MDA5MmEyZmM2ZjhjOTY0ZGQ5YTI3NS4uMWM2NmFkNzljZTQw
YzE0NTU4ZjY2NTI1MmIyNWUzYmI3ZGVkMTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ2Miw3
ICs0NjIsNyBAQCBJbWFnZUJ1ZmZlciogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdlQnVm
ZmVyKCkgY29uc3QKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnNldEltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkoSW50ZXJwb2xhdGlvbkRlZmF1bHQpOworICAgIG1faW1hZ2VCdWZmZXItPmNvbnRl
eHQoKS5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpE
ZWZhdWx0KTsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCkuc2V0U3Ryb2tlVGhpY2tuZXNz
KDEpOwogCiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggMjBiNmEx
YTJmYmY4MzBhYWNiOTI1YWM1NDQ5M2MwZWM2ZjA4MDZmMC4uOGI2M2I2ODRiNjBkNzhkNDExN2Iy
ZWYxYzVjZjc5NWQ2ZmU2NDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbWFnZVF1YWxpdHlDb250cm9sbGVyLmNwcApAQCAtMTAyLDEyICsxMDIsMTIgQEAgT3B0aW9u
YWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmludGVycG9s
YXRpb25RdWFsaXR5RnJvbVMKIHsKICAgICBzd2l0Y2ggKHN0eWxlLmltYWdlUmVuZGVyaW5nKCkp
IHsKICAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpPcHRpbWl6ZVNwZWVkOgotICAgICAgICByZXR1
cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5
OjpMb3c7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6Q3Jpc3BFZGdlczoKICAgICBjYXNlIElt
YWdlUmVuZGVyaW5nOjpQaXhlbGF0ZWQ6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTm9u
ZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpOb25lOwogICAgIGNhc2Ug
SW1hZ2VSZW5kZXJpbmc6Ok9wdGltaXplUXVhbGl0eToKLSAgICAgICAgcmV0dXJuIEludGVycG9s
YXRpb25EZWZhdWx0OyAvLyBGSVhNRTogQ1NTIDMgSW1hZ2VzIHNheXMgdGhhdCBvcHRpbWl6ZVF1
YWxpdHkgc2hvdWxkIGJlaGF2ZSBsaWtlICdhdXRvJywgYnV0IHRoYXQgcHJldmVudHMgYXV0aG9y
cyBmcm9tIG92ZXJyaWRpbmcgdGhpcyBsb3cgcXVhbGl0eSByZW5kZXJpbmcgYmVoYXZpb3IuCisg
ICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsgLy8gRklYTUU6IENT
UyAzIEltYWdlcyBzYXlzIHRoYXQgb3B0aW1pemVRdWFsaXR5IHNob3VsZCBiZWhhdmUgbGlrZSAn
YXV0bycsIGJ1dCB0aGF0IHByZXZlbnRzIGF1dGhvcnMgZnJvbSBvdmVycmlkaW5nIHRoaXMgbG93
IHF1YWxpdHkgcmVuZGVyaW5nIGJlaGF2aW9yLgogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6OkF1
dG86CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTExOCw3ICsxMTgsNyBAQCBJbnRlcnBvbGF0
aW9uUXVhbGl0eSBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShHcmFwaGljcwogewogICAgIC8vIElmIHRoZSBpbWFnZSBpcyBub3QgYSBiaXRtYXAgaW1h
Z2UsIHRoZW4gbm9uZSBvZiB0aGlzIGlzIHJlbGV2YW50IGFuZCB3ZSBqdXN0IHBhaW50IGF0IGhp
Z2ggcXVhbGl0eS4KICAgICBpZiAoIShpbWFnZS5pc0JpdG1hcEltYWdlKCkgfHwgaW1hZ2UuaXNQ
REZEb2N1bWVudEltYWdlKCkpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQotICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0
aW9uUXVhbGl0eTo6RGVmYXVsdDsKIAogICAgIGlmIChPcHRpb25hbDxJbnRlcnBvbGF0aW9uUXVh
bGl0eT4gc3R5bGVJbnRlcnBvbGF0aW9uID0gaW50ZXJwb2xhdGlvblF1YWxpdHlGcm9tU3R5bGUo
b2JqZWN0LT5zdHlsZSgpKSkKICAgICAgICAgcmV0dXJuIHN0eWxlSW50ZXJwb2xhdGlvbi52YWx1
ZSgpOwpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFs
aXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3MKICAgICAg
ICAgICAgIHNldChvYmplY3QsIGlubmVyTWFwLCBsYXllciwgc2l6ZSk7CiAgICAgICAgICAgICBy
ZXN0YXJ0VGltZXIoKTsKICAgICAgICAgICAgIG1fbGl2ZVJlc2l6ZU9wdGltaXphdGlvbklzQWN0
aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAg
ICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKG1fbGl2ZVJlc2l6ZU9wdGltaXphdGlvbklzQWN0aXZlKQotICAgICAgICAgICAgcmV0
dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAgICAgICAgICAgcmV0dXJuIEludGVycG9sYXRp
b25RdWFsaXR5OjpEZWZhdWx0OwogICAgIH0KIAogICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
Y3VycmVudFRyYW5zZm9ybSA9IGNvbnRleHQuZ2V0Q1RNKCk7CkBAIC0xNTgsMjEgKzE1OCwyMSBA
QCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpjaG9vc2VJbnRl
cnBvbGF0aW9uUXVhbGl0eShHcmFwaGljcwogICAgIGlmICghY29udGV4dElzU2NhbGVkICYmIHNp
emUgPT0gaW1hZ2VTaXplKSB7CiAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHNjYWxlIGluIGVmZmVj
dC4gSWYgd2UgaGFkIGEgc2NhbGUgaW4gZWZmZWN0IGJlZm9yZSwgd2UgY2FuIGp1c3QgcmVtb3Zl
IHRoaXMgb2JqZWN0IGZyb20gdGhlIGxpc3QuCiAgICAgICAgIHJlbW92ZUxheWVyKG9iamVjdCwg
aW5uZXJNYXAsIGxheWVyKTsKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25EZWZhdWx0Owor
ICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAgICAgfQogCiAg
ICAgLy8gVGhlcmUgaXMgbm8gbmVlZCB0byBoYXNoIHNjYWxlZCBpbWFnZXMgdGhhdCBhbHdheXMg
dXNlIGxvdyBxdWFsaXR5IG1vZGUgd2hlbiB0aGUgcGFnZSBkZW1hbmRzIGl0LiBUaGlzIGlzIHRo
ZSBpQ2hhdCBjYXNlLgogICAgIGlmIChtX3JlbmRlclZpZXcucGFnZSgpLmluTG93UXVhbGl0eUlt
YWdlSW50ZXJwb2xhdGlvbk1vZGUoKSkgewogICAgICAgICBkb3VibGUgdG90YWxQaXhlbHMgPSBz
dGF0aWNfY2FzdDxkb3VibGU+KGltYWdlLndpZHRoKCkpICogc3RhdGljX2Nhc3Q8ZG91YmxlPihp
bWFnZS5oZWlnaHQoKSk7CiAgICAgICAgIGlmICh0b3RhbFBpeGVscyA+IGNJbnRlcnBvbGF0aW9u
Q3V0b2ZmKQotICAgICAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICAgICB9CiAKICAgICAvLyBJZiBh
biBhbmltYXRlZCByZXNpemUgaXMgYWN0aXZlLCBwYWludCBpbiBsb3cgcXVhbGl0eSBhbmQga2lj
ayB0aGUgdGltZXIgYWhlYWQuCiAgICAgaWYgKG1fYW5pbWF0ZWRSZXNpemVJc0FjdGl2ZSkgewog
ICAgICAgICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwogICAgICAgICByZXN0
YXJ0VGltZXIoKTsKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgIHJl
dHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIH0KICAgICAvLyBJZiB0aGlzIGlz
IHRoZSBmaXJzdCB0aW1lIHJlc2l6aW5nIHRoaXMgaW1hZ2UsIG9yIGl0cyBzaXplIGlzIHRoZQog
ICAgIC8vIHNhbWUgYXMgdGhlIGxhc3QgcmVzaXplLCBkcmF3IGF0IGhpZ2ggcmVzLCBidXQgcmVj
b3JkIHRoZSBwYWludApAQCAtMTgwLDEzICsxODAsMTMgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkg
SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhp
Y3MKICAgICBpZiAoaXNGaXJzdFJlc2l6ZSB8fCBvbGRTaXplID09IHNpemUpIHsKICAgICAgICAg
cmVzdGFydFRpbWVyKCk7CiAgICAgICAgIHNldChvYmplY3QsIGlubmVyTWFwLCBsYXllciwgc2l6
ZSk7Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgcmV0dXJu
IEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAgIH0KICAgICAvLyBJZiB0aGUgdGlt
ZXIgaXMgbm8gbG9uZ2VyIGFjdGl2ZSwgZHJhdyBhdCBoaWdoIHF1YWxpdHkgYW5kIGRvbid0CiAg
ICAgLy8gc2V0IHRoZSB0aW1lci4KICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkgewogICAg
ICAgICByZW1vdmVMYXllcihvYmplY3QsIGlubmVyTWFwLCBsYXllcik7Ci0gICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0OwogICAgIH0KICAgICAvLyBUaGlzIG9iamVjdCBoYXMgYmVlbiByZXNpemVk
IHRvIHR3byBkaWZmZXJlbnQgc2l6ZXMgd2hpbGUgdGhlIHRpbWVyCiAgICAgLy8gaXMgYWN0aXZl
LCBzbyBkcmF3IGF0IGxvdyBxdWFsaXR5LCBzZXQgdGhlIGZsYWcgZm9yIGFuaW1hdGVkIHJlc2l6
ZXMgYW5kCkBAIC0xOTQsNyArMTk0LDcgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFs
aXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3MKICAgICBz
ZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwogICAgIG1fYW5pbWF0ZWRSZXNpemVJ
c0FjdGl2ZSA9IHRydWU7CiAgICAgcmVzdGFydFRpbWVyKCk7Ci0gICAgcmV0dXJuIEludGVycG9s
YXRpb25Mb3c7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGIyYzQ5YTY2NjY1
NGExNDEzOGM4MjY2NmJmZThjYWVmYmQ1ZGZlN2UuLmQ3YzkxNmNlNjQ2YmRiN2VlZWU4NTA1MWI0
YzU4MzgyM2M5NmJmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cApAQCAtNjQ4LDcgKzY0OCw3IEBAIEltYWdlRHJhd1Jlc3VsdCBSZW5kZXJJbWFnZTo6cGFpbnRJ
bnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0CiAgICAgICAgIGlt
YWdlRWxlbWVudCA/IGltYWdlRWxlbWVudC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0
ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLAogICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXco
KmltYWdlLCBwYWludEluZm8pLAogICAgICAgICBpbWFnZU9yaWVudGF0aW9uKCksCi0gICAgICAg
IGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQoKSwg
KmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlvbkRl
ZmF1bHQKKyAgICAgICAgaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludElu
Zm8uY29udGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdAogICAgIH07CiAKICAgICBhdXRvIGRyYXdSZXN1
bHQgPSBwYWludEluZm8uY29udGV4dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBvcHRpb25zKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDcxMzJlODhiNDI5NDU4OGE3ZDRmZjg5N2JhMzg5ZTkyZGNiMzU0MzguLmU1ZGI0MjRiNWY2YTFh
ZjdmZDI2MjE2YzM4ZWQyMTJjYzBhNzY3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRGF0YWJhc2VEZXRhaWxzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0YXRpb25BbHRl
cm5hdGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJh
Z0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50VHJhY2tpbmdSZWdpb25zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KQEAgLTExNDMsNiArMTE0NCwxOCBAQCBzdGF0
aWMgYm9vbCBkZWNvZGVPcHRpb25hbEltYWdlKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxJbWFn
ZT4mIGltYWdlKQogICAgIHJldHVybiBkZWNvZGVJbWFnZShkZWNvZGVyLCBpbWFnZSk7CiB9CiAK
K3ZvaWQgQXJndW1lbnRDb2RlcjxEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJiBpbWFnZUhhbmRs
ZSkKK3sKKyAgICBlbmNvZGVPcHRpb25hbEltYWdlKGVuY29kZXIsIGltYWdlSGFuZGxlLmltYWdl
LmdldCgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRs
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGUmIGlt
YWdlSGFuZGxlKQoreworICAgIGlmICghZGVjb2RlT3B0aW9uYWxJbWFnZShkZWNvZGVyLCBpbWFn
ZUhhbmRsZS5pbWFnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBBcmd1bWVudENvZGVyPEN1cnNv
cj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNjA2ZGJj
YThlMzI2YjFkNGY5ODIyZGRhOTNiNzhjODFkMWJlNDQzMi4uMjM1ZDVlOTIyYWVhNDI3ODU4NGM0
N2RmMTUwYjIwOWFiMzRiYzNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTE4OSw4ICsxODksMTMgQEAgbmFtZXNwYWNlIERPTUNhY2hlRW5n
aW5lIHsKIHN0cnVjdCBDYWNoZUluZm87CiBzdHJ1Y3QgUmVjb3JkOwogfQorCituYW1lc3BhY2Ug
RGlzcGxheUxpc3QgeworY2xhc3MgSW1hZ2VIYW5kbGU7CiB9CiAKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogbmFtZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7CkBAIC0zODMsNiArMzg4LDExIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3Vyc29yPiB7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDdXJzb3ImKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxl
PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SW1hZ2VIYW5kbGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZSYpOworfTsKKwogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385088</attachid>
            <date>2019-12-07 02:52:01 -0800</date>
            <delta_ts>2019-12-07 03:20:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204881-20191207025200.patch</filename>
            <type>text/plain</type>
            <size>46541</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMjk5OWJjNmVlMDAy
NjFkMjExOGNmZGQ2ZTY1NTVkYWRjODFhZi4uZjAxYWRlNWExMGFlZWM0MjE3YTJhNGQxZmIxYWRj
ZDc3ZGE2YmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTA1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZyBmb3IgRHJhd0ltYWdlIGFuZCBEcmF3Um91bmRlZFJlY3QgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgTWFrZSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBhbiBlbnVtIGNsYXNzLgorICAgICAgICBNYWtlIEltYWdlUGFp
bnRpbmdPcHRpb25zIGFuZCBhbGwgb2YgaXRzIGNoaWxkcmVuIGVuY29kYWJsZS4KKyAgICAgICAg
TWFrZSBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVkUmVjdCBlbmNvZGFibGUuCisgICAgICAgIEFk
ZCBJbWFnZUhhbmRsZSwgd2hpY2ggcmlnaHQgbm93IGp1c3Qgd3JhcHMgV2ViQ29yZTo6SW1hZ2Us
IGJ1dAorICAgICAgICBsYXRlciBjb3VsZCBjYXJyeSBpZGVudGlmaWVycy4gVGhpcyBhbGxvd3Mg
dXMgdG8gaW1wbGVtZW50IGltYWdlIGVuY29kaW5nCisgICAgICAgIGluIFdlYktpdCBjb2RlLCB3
aGljaCBjYW4gdGhlbiB1c2UgU2hhcmVhYmxlQml0bWFwIHRvIEEpIGRlY29kZSB0aGUgaW1hZ2UK
KyAgICAgICAgaW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgYW5kIEIpIHVzZSBzaGFyZWQgbWVt
b3J5IHRvIHRyYW5zbWl0IHRoZQorICAgICAgICBkZWNvZGVkIGltYWdlIGRhdGEgdG8gdGhlIEdQ
VSBwcm9jZXNzLgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNwcDoKKyAgICAgICAgKiBo
dG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXI6OkludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVBhaW50aW5nT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnM6OkltYWdlUGFpbnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2Fpcm86OmRyYXdTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW50ZXJw
b2xhdGlvblF1YWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tOgorICAgICAgICAodG9DR0ludGVycG9sYXRpb25R
dWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1
ZmZlciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6aW50ZXJwb2xh
dGlvblF1YWxpdHlGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29u
dHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJ
bnRvUmVjdCk6CisKIDIwMTktMTItMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgRHJhZ0NvbnRyb2xsZXI6OmNsaWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFlNWFiYjQ2ZDdhOTE2NmJiZjg5ZmYxZDU0NDg0ZGZmMDhlYjdmNTQuLjc3M2E4ZTMw
ZDUwY2E3NGQ2NWE1MjIzZDg0ZTBiNjRkMGJiYjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMTItMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IGVuY29kaW5nIGZvciBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVk
UmVjdCBkaXNwbGF5IGxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKIDIw
MTktMTItMDMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgZGlzYWJsZWQgaGlnaGxpZ2h0IEFQSSBza2VsZXRvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGEzMmFkZjdjMTQ1MDMwYTE5MDE4YmE4NTU0MTYzNGZiMzYxOGRiMDAu
LjcxMjAwNjYwMjllYjMwZGQ5MGU1OWU2MTM4MmE2OGM1NzcyNDE5ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNyAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZW5jb2Rpbmcg
Zm9yIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5kZWRSZWN0IGRpc3BsYXkgbGlzdCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgor
CiAyMDE5LTEyLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGRpc2FibGVkIGhpZ2hsaWdodCBBUEkgc2tlbGV0b24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwCmluZGV4IDhkMzcwMDQ5ZTlhZDgyNDRmM2Q0OWIzYTNkYzJlZGMxY2Iy
ZDI1MWQuLjEyMmY0ZTQwZGU2ZjdkOTU3NTViMjIxMWFlZGU4Y2FhMTAxMTU1NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgVVNFKENHKQogLy8gRklYTUU6IEl0IHNlZW1zIHN0cmFuZ2UgdGhhdCB0aGUgZGVm
YXVsdCBxdWFsaXR5IGlzIG5vdCB0aGUgb25lIHRoYXQgaXMgbGl0ZXJhbGx5IG5hbWVkICJkZWZh
dWx0Ii4KIC8vIFNob3VsZCBmaXggbmFtZXMgdG8gbWFrZSB0aGlzIGVhc2llciB0byB1bmRlcnN0
YW5kLCBvciB3cml0ZSBhbiBleGNlbGxlbnQgY29tbWVudCBoZXJlIGV4cGxhaW5pbmcgd2h5IG5v
dC4KLWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0
eSA9IEludGVycG9sYXRpb25Mb3c7Citjb25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0
SW50ZXJwb2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogI2Vsc2UK
LWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
IEludGVycG9sYXRpb25EZWZhdWx0OworY29uc3QgSW50ZXJwb2xhdGlvblF1YWxpdHkgZGVmYXVs
dEludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAj
ZW5kaWYKIAogQ2FudmFzQmFzZTo6Q2FudmFzQmFzZShJbnRTaXplIHNpemUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDAxMzUzMWJhMTA5NGVkMmI1ZTNhNDM4ZjEwN2VlZGFk
NTAzNDU5ZWMuLmFiMzk3ZDEwYjE2M2QwYzllZTIyYjYwMGFhMmY2MTE2NGQyNTU4YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC0yMDYsMTYgKzIwNiwxNiBAQCBzdGF0aWMg
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5
KEltYWdlQml0bWFwT3B0aQogewogICAgIHN3aXRjaCAocmVzaXplUXVhbGl0eSkgewogICAgIGNh
c2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5OjpQaXhlbGF0ZWQ6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpOb25lOwogICAgIGNhc2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5
OjpMb3c6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsgLy8gTG93IGlzIHRo
ZSBkZWZhdWx0LgorICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7
IC8vIExvdyBpcyB0aGUgZGVmYXVsdC4KICAgICBjYXNlIEltYWdlQml0bWFwT3B0aW9uczo6UmVz
aXplUXVhbGl0eTo6TWVkaXVtOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk1lZGl1bTsK
KyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW07CiAgICAgY2FzZSBJ
bWFnZUJpdG1hcE9wdGlvbnM6OlJlc2l6ZVF1YWxpdHk6OkhpZ2g6Ci0gICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uSGlnaDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpI
aWdoOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJw
b2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0
OwogfQogCiAvLyBGSVhNRTogTW9yZSBzdGVwcyBmcm9tIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2ltYWdlYml0bWFwLWFuZC1hbmltYXRpb25zLmh0bWwjY3JvcHBlZC10
by10aGUtc291cmNlLXJlY3RhbmdsZS13aXRoLWZvcm1hdHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKaW5kZXggOTI4Mjg4NDU2YjM1ODIxNGYzZmRlMWU1YzAyNDgxYmU5NWRlODg5My4uZGEyNGEx
YzRiZjJhNjZjNjk4YTE2N2I5MzJlMTJlMzc4MTcxNzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKQEAgLTIyODgsMTUgKzIyODgsMTUgQEAgc3RhdGljIGlubGluZSBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRpb25RdWFsaXR5KEltYWdlU21vb3RoaW4KIHsKICAg
ICBzd2l0Y2ggKHF1YWxpdHkpIHsKICAgICBjYXNlIEltYWdlU21vb3RoaW5nUXVhbGl0eTo6TG93
OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgcmV0dXJuIEludGVy
cG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgY2FzZSBJbWFnZVNtb290aGluZ1F1YWxpdHk6Ok1l
ZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07CisgICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2UgSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5OjpIaWdoOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkhpZ2g7CisgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICByZXR1cm4g
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKIH07CiAKIGF1dG8gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6aW1hZ2VTbW9vdGhpbmdRdWFsaXR5KCkgY29uc3QgLT4gSW1hZ2VTbW9vdGhp
bmdRdWFsaXR5CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbW9k
aWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZW5hYmxlZDsKICAgICBhdXRv
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoYykKLSAgICAgICAgYy0+c2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShlbmFibGVkID8gc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVh
bGl0eShzdGF0ZSgpLmltYWdlU21vb3RoaW5nUXVhbGl0eSkgOiBJbnRlcnBvbGF0aW9uTm9uZSk7
CisgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoZW5hYmxlZCA/IHNtb290
aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFnZVNtb290aGluZ1F1YWxpdHkp
IDogSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OnNldFBhdGgoUGF0aDJEJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaAppbmRleCBmM2EwYjQ3OWUy
NTljZWQ4MWQ0MTIzMjBmMTk4ODg0YjFjNzkzMmNkLi44NDkzZDNhNTQ2NmY4MTdhNjQzMGI3NzVm
NzQxY2E1NTVmOWZlODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBEZWNvZGluZ01vZGUgeworZW51bSBjbGFzcyBE
ZWNvZGluZ01vZGUgOiB1aW50OF90IHsKICAgICBBdXRvLAogICAgIFN5bmNocm9ub3VzLAogICAg
IEFzeW5jaHJvbm91cwpAQCAtMTQ0LDQgKzE0NSwxNyBAQCBwcml2YXRlOgogICAgIERlY29kaW5n
TW9kZU9yU2l6ZSBtX2RlY29kaW5nTW9kZU9yU2l6ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6RGVjb2RpbmdNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICBXZWJDb3JlOjpEZWNvZGluZ01vZGUsCisgICAgV2ViQ29yZTo6RGVjb2RpbmdNb2Rl
OjpBdXRvLAorICAgIFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsCisgICAgV2Vi
Q29yZTo6RGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDIyNWFiYWFiZThhYTJhOGFlYWVlMWE1MmM2MTZhMjk4ZjFlMjAw
YjEuLmIxNWZmZmNhN2MwM2U5Yzk2OTZhZmIwM2JhNGJiYTZlNjRhZDIzMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0x
OTYsNyArMTk2LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICAgICBmbG9hdCBh
bHBoYSB7IDEgfTsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciB7IENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSB7
IEJsZW5kTW9kZTo6Tm9ybWFsIH07Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25EZWZhdWx0IH07CisgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0IH07CiAKICAgICBib29sIHNob3VsZEFudGlhbGlhcyA6IDE7CiAgICAgYm9v
bCBzaG91bGRTbW9vdGhGb250cyA6IDE7CkBAIC02OTksNyArNjk5LDcgQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcihHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxp
dHlUb1VzZSkKICAgICAgICAgOiBtX2dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQpCiAg
ICAgICAgICwgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1YWxpdHkoZ3JhcGhpY3NDb250ZXh0Lmlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSkKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFs
aXR5Q2hhbmdlZChpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlICE9IEludGVycG9sYXRpb25EZWZh
dWx0ICYmIG1fY3VycmVudEludGVycG9sYXRpb25RdWFsaXR5ICE9IGludGVycG9sYXRpb25RdWFs
aXR5VG9Vc2UpCisgICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZWQoaW50ZXJw
b2xhdGlvblF1YWxpdHlUb1VzZSAhPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCAmJiBt
X2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNl
KQogICAgIHsKICAgICAgICAgaWYgKG1faW50ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2VkKQogICAg
ICAgICAgICAgbV9ncmFwaGljc0NvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShp
bnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAppbmRleCAyY2U2YjBjYmEwMDBjOTE2ZjFhNGRhNDcy
NDUyOTkzZWY0YzkwNTUzLi41MjQxYzdhOGFlNmUwNjkzZWU3NjFjZjNiOTgwZTY0ODQyMzU3OTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5oCkBAIC03OSwxMiArNzksMTIgQEAgZW51bSBHcmFkaWVudFNwcmVhZE1ldGhvZCB7CiAgICAg
U3ByZWFkTWV0aG9kUmVwZWF0CiB9OwogCi1lbnVtIEludGVycG9sYXRpb25RdWFsaXR5IHsKLSAg
ICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwKLSAgICBJbnRlcnBvbGF0aW9uTm9uZSwKLSAgICBJbnRl
cnBvbGF0aW9uTG93LAotICAgIEludGVycG9sYXRpb25NZWRpdW0sCi0gICAgSW50ZXJwb2xhdGlv
bkhpZ2gKK2VudW0gY2xhc3MgSW50ZXJwb2xhdGlvblF1YWxpdHkgOiB1aW50OF90IHsKKyAgICBE
ZWZhdWx0LAorICAgIE5vbmUsCisgICAgTG93LAorICAgIE1lZGl1bSwKKyAgICBIaWdoCiB9Owog
CiBlbnVtIExpbmVDYXAgewpAQCAtMTMzLDE3ICsxMzMsMTcgQEAgZW51bSBjbGFzcyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIHsKICAgICBVbnByZW11bHRpcGxpZWQKIH07CiAKLVN0cmluZyBjb21w
b3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Ci1TdHJpbmcg
YmxlbmRNb2RlTmFtZShCbGVuZE1vZGUpOwotYm9vbCBwYXJzZUJsZW5kTW9kZShjb25zdCBTdHJp
bmcmLCBCbGVuZE1vZGUmKTsKLWJvb2wgcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKGNv
bnN0IFN0cmluZyYsIENvbXBvc2l0ZU9wZXJhdG9yJiwgQmxlbmRNb2RlJik7CitTdHJpbmcgY29t
cG9zaXRlT3BlcmF0b3JOYW1lKFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3JlOjpC
bGVuZE1vZGUpOworU3RyaW5nIGJsZW5kTW9kZU5hbWUoV2ViQ29yZTo6QmxlbmRNb2RlKTsKK2Jv
b2wgcGFyc2VCbGVuZE1vZGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6QmxlbmRNb2RlJik7Citi
b29sIHBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpDb21wb3NpdGVPcGVyYXRvciYsIFdlYkNvcmU6OkJsZW5kTW9kZSYpOwogCi1XRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQmxlbmRN
b2RlKTsKLVdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBDb21wb3NpdGVPcGVyYXRvcik7Ci1XRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2luZFJ1bGUpOwotV0VCQ09SRV9F
WFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVD
YXApOwotV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIExpbmVKb2luKTsKLVdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbHBoYVByZW11bHRpcGxpY2F0aW9uKTsKK1dFQkNP
UkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBX
ZWJDb3JlOjpCbGVuZE1vZGUpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yKTsKK1dF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBXZWJDb3JlOjpXaW5kUnVsZSk7CitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6TGluZUNhcCk7CitXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29y
ZTo6TGluZUpvaW4pOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24pOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTE5Myw0ICsxOTMsMTUgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpCbGVuZE1vZGU+IHsKICAgICA+OwogfTsKIAordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6SW50ZXJwb2xh
dGlvblF1YWxpdHksCisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQs
CisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUsCisgICAgV2ViQ29yZTo6
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdywKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6TWVkaXVtLAorICAgIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoCisg
ICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCmluZGV4IDU1OWU1YjNhNjU3ZDFm
ODg0N2M0MTk3ODcxNTcwYjA1ODk0NzUxNTQuLmQ5OTBhM2RjNTU1ZmNkZGI2MTM3NGRiN2QwY2Q3
NWRhOGRmNDk4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT3JpZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFmZmlu
ZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVt
VHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIxLDMgKzEyMiwyMiBAQCBw
cml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9u
OjpPcmllbnRhdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2Vi
Q29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24sCisgICAgV2ViQ29yZTo6SW1hZ2VP
cmllbnRhdGlvbjo6T3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAgICBXZWJDb3JlOjpJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCwKKyAgICBXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQsCisgICAgV2ViQ29yZTo6
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0LAorICAgIFdl
YkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0LAor
ICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9w
LAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5SaWdo
dFRvcCwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRCb3R0b20sCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b20KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09w
dGlvbnMuaAppbmRleCBkZWE3ZDJhNTM1MzNlYmJiMDZkMGNjOTYyNDVhMThhY2M1MWI4YmUwLi44
OTc4ZTZhZjcxMmU4M2NkNjcwOGFhMzNmYjVjMjU0ZmZjNDJiMTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgK
QEAgLTM4LDExICszOCwxMSBAQCBzdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnMgewogICAgICAg
ICBzZXRPcHRpb24ob3B0aW9ucy4uLik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gT3ZlcnJyaWRlcz4KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3RoZXIsIE92ZXJycmlkZXMuLi4gb3ZlcnJyaWRlcykKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBPdmVycmlkZXM+CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG90aGVyLCBPdmVycmlkZXMuLi4gb3ZlcnJpZGVzKQogICAg
ICAgICA6IEltYWdlUGFpbnRpbmdPcHRpb25zKG90aGVyKQogICAgIHsKLSAgICAgICAgc2V0T3B0
aW9uKG92ZXJycmlkZXMuLi4pOworICAgICAgICBzZXRPcHRpb24ob3ZlcnJpZGVzLi4uKTsKICAg
ICB9CiAKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucygpID0gZGVmYXVsdDsKQEAgLTU0LDYgKzU0
LDkgQEAgc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKICAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogICAgIEludGVy
cG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bnRlcnBvbGF0aW9uUXVhbGl0eTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKKwog
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lLi4uIFJlc3Q+
CiAgICAgdm9pZCBzZXRPcHRpb24oRmlyc3QgZmlyc3QsIFJlc3QuLi4gcmVzdCkKQEAgLTczLDcg
Kzc2LDQ4IEBAIHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRNb2Rl
OjpOb3JtYWwgfTsKICAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGluZ01v
ZGU6OlN5bmNocm9ub3VzIH07CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uIHsg
SW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OwotICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50
ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworICAgIEludGVycG9s
YXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6RGVmYXVsdCB9OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSW1hZ2VQ
YWludGluZ09wdGlvbnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9jb21wb3NpdGVPcGVyYXRvcjsKKyAgICBlbmNvZGVyIDw8IG1fYmxlbmRNb2Rl
OworICAgIGVuY29kZXIgPDwgbV9kZWNvZGluZ01vZGU7CisgICAgZW5jb2RlciA8PCBJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKKyAgICBlbmNvZGVyIDw8IG1f
aW50ZXJwb2xhdGlvblF1YWxpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gSW1hZ2VQYWludGluZ09wdGlvbnM6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdG9yPiBjb21w
b3NpdGVPcGVyYXRvcjsKKyAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOworICAgIGlm
ICghY29tcG9zaXRlT3BlcmF0b3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsKKyAgICBkZWNvZGVyID4+IGJsZW5kTW9k
ZTsKKyAgICBpZiAoIWJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPERlY29kaW5nTW9kZT4gZGVjb2RpbmdNb2RlOworICAgIGRlY29kZXIgPj4g
ZGVjb2RpbmdNb2RlOworICAgIGlmICghZGVjb2RpbmdNb2RlKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24+
IG9yaWVudGF0aW9uOworICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmll
bnRhdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPElu
dGVycG9sYXRpb25RdWFsaXR5PiBpbnRlcnBvbGF0aW9uUXVhbGl0eTsKKyAgICBkZWNvZGVyID4+
IGludGVycG9sYXRpb25RdWFsaXR5OworICAgIGlmICghaW50ZXJwb2xhdGlvblF1YWxpdHkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gSW1hZ2VQYWludGluZ09w
dGlvbnMgeyAqY29tcG9zaXRlT3BlcmF0b3IsICpibGVuZE1vZGUsICpkZWNvZGluZ01vZGUsICpv
cmllbnRhdGlvbiwgKmludGVycG9sYXRpb25RdWFsaXR5IH07Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCmluZGV4IDNiNzBlNzY2MzllNTk0MGFmMWYyYjFkNWJmMjY3M2FlMzJkZWNhMTAuLjBjZThj
ZWI0OGJkNzg4Y2ViMTlhYTlkZDg5N2Y5Mjk5ZGVhYmRkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApA
QCAtODU5LDcgKzg1OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvCiAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkg
KyByZWN0LmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMS4wZiwg
LTEuMGYpKTsKLSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25Mb3cpOworICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7CiAgICAgICAgIEZsb2F0UmVjdCBwYWlu
dFJlY3QoRmxvYXRQb2ludCgpLCByZWN0LnNpemUoKSk7CiAjaWYgVVNFKERJUkVDVDJEKQogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggODQyMTEy
Mzc0YTVkNmE4MTViOGM3NmRhNGUwZjkzMDVhNTRmYjFlYi4uZjhjZWI5NTI1M2ZmOWI3ZjMwNDVi
MDUxYTczOGI3NjViN2E5ZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNTQ3LDcg
KzE1NDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50
V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dAogICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQudHJhbnNs
YXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0
LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgICAgIGNvbnRleHQu
c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsK
ICAgICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53
aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7CiAgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgp
LCBwYWludFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9u
cy5jcHAKaW5kZXggN2UzZDc0NDBkMjYwN2JjNmUxNWMyYjMxNmIwYmQyYmMxZjIwZGYzNy4uZjZj
MDc3YjBhNWYwZDVlYTk1MDM0ZWVmZjJmMmYwMGI0M2Q1OWE1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMu
Y3BwCkBAIC05MzYsMTUgKzkzNiwxNSBAQCB2b2lkIGRyYXdTdXJmYWNlKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZQogICAgIFJl
ZlB0cjxjYWlyb19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2Ny
ZWF0ZV9mb3Jfc3VyZmFjZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgc3dpdGNoIChp
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9uZToK
LSAgICBjYXNlIEludGVycG9sYXRpb25Mb3c6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6Tm9uZToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIGNh
aXJvX3BhdHRlcm5fc2V0X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfRkFTVCk7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICBjYXNl
IEludGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1l
ZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAgICAgICBj
YWlyb19wYXR0ZXJuX3NldF9maWx0ZXIocGF0dGVybi5nZXQoKSwgQ0FJUk9fRklMVEVSX0dPT0Qp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2Ug
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fc2V0X2Zp
bHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfQkVTVCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKaW5kZXggM2FmYWEwYWIwMWQ0YTQwYzJkYjE1OWZm
NDkyOWEwYzRiYThjMTExMC4uNjhiNTI4YTFlOTUxNzUxYjBhZmExMDZhNDliODI3NjFhNTE2Yjhh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4
ZWxzLCBjb25zdCBJbgogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihj
b250ZXh0KTsKICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRl
eHQudHJhbnNsYXRlKDAsIC1pbWFnZVNpemUuaGVpZ2h0KCkpOwotICAgIGNvbnRleHQuc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CisgICAgY29udGV4dC5z
ZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpOb25lKTsK
ICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShjZ0ltYWdlLCBpbWFnZVNpemUsIGNhbnZhc1Jl
Y3QsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSksIHsgQ29tcG9zaXRlT3BlcmF0
b3I6OkNvcHkgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCAyZGYyZTU0MzI0OWZkZGRm
NTNlZjhmMThlYzc5MzgwY2ZlNDdhOTc3Li43YWY5ZWRiZWZjYTMwY2JiN2RkNGZjODYxZjEzZGRh
NDQ3YjMzZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNDMsMTcgKzE0MywxNyBAQCBzdGF0
aWMgSW50ZXJwb2xhdGlvblF1YWxpdHkgY29udmVydEludGVycG9sYXRpb25RdWFsaXR5KENHSW50
ZXJwb2xhdGlvblF1YWxpdHkgcQogewogICAgIHN3aXRjaCAocXVhbGl0eSkgewogICAgIGNhc2Ug
a0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVm
YXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAg
IGNhc2Uga0NHSW50ZXJwb2xhdGlvbk5vbmU6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
Tm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpOb25lOwogICAgIGNh
c2Uga0NHSW50ZXJwb2xhdGlvbkxvdzoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIGNhc2Uga0NH
SW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2Ug
a0NHSW50ZXJwb2xhdGlvbkhpZ2g6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uSGlnaDsK
KyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOwogICAgIH0KLSAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0OwogfQogCiBzdGF0aWMgQ0dCbGVuZE1vZGUgc2VsZWN0Q0dCbGVuZE1vZGUo
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUp
CkBAIC0xNjY3LDE5ICsxNjY3LDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkKIAogICAgIENH
SW50ZXJwb2xhdGlvblF1YWxpdHkgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25EZWZhdWx0Owog
ICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAg
Y2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDoKICAgICAgICAgcXVhbGl0eSA9IGtD
R0ludGVycG9sYXRpb25EZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9s
YXRpb25Ob25lOgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmU6CiAgICAgICAg
IHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uTm9uZTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoK
ICAgICAgICAgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25Mb3c7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFs
aXR5OjpNZWRpdW06CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2UgSW50
ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0
aW9uSGlnaDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCmluZGV4IDkxY2JiOWZlZjJmMjNmNjA5Mjg2M2MwMjQwZmU3M2VkZGNkMzI1YjQu
Ljc2NDc3OTMzOTBhMzg5ZTQzODUxZWRkNWY4ZTYxY2QwMzJhM2U4MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTQ5Miw2ICs0OTIsOCBAQCBEcmF3SW1hZ2U6OkRy
YXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdAogewogfQogCitEcmF3SW1hZ2U6On5EcmF3SW1hZ2UoKSA9IGRlZmF1bHQ7CisK
IHZvaWQgRHJhd0ltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7
CiAgICAgY29udGV4dC5kcmF3SW1hZ2UobV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV9z
b3VyY2UsIG1faW1hZ2VQYWludGluZ09wdGlvbnMpOwpAQCAtODc2LDYgKzg3OCwxNiBAQCBzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmlsbENvbXBv
c2l0ZWRSZWN0JiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAorRmlsbFJvdW5kZWRSZWN0OjpG
aWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3Im
IGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6
OkZpbGxSb3VuZGVkUmVjdCkKKyAgICAsIG1fcmVjdChyZWN0KQorICAgICwgbV9jb2xvcihjb2xv
cikKKyAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKK3sKK30KKworRmlsbFJvdW5kZWRSZWN0
Ojp+RmlsbFJvdW5kZWRSZWN0KCkgPSBkZWZhdWx0OworCiB2b2lkIEZpbGxSb3VuZGVkUmVjdDo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIGNvbnRleHQuZmls
bFJvdW5kZWRSZWN0KG1fcmVjdCwgbV9jb2xvciwgbV9ibGVuZE1vZGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZGM0MmZmZWFlZWFhMGE0NTVmZDA4N2E4NDU1MGE5ZjM1
Zjg4ZDg2Ny4uZTVhZGVjMDdlY2I4ZjlkNjM1Y2E3NDZkNzYyOWI1YjI1OTI1N2YyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC03NDEsMTIgKzc0MSwxNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRp
b24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpKTsKICAgICB9CiAKKyAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIH5EcmF3SW1hZ2UoKTsKKwogICAgIGNvbnN0IEltYWdlJiBpbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KICAgICBGbG9hdFJlY3Qgc291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxEcmF3SW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwor
CiBwcml2YXRlOgotICAgIERyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpOworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBv
dmVycmlkZTsKIApAQCAtNzU4LDYgKzc2Myw0OSBAQCBwcml2YXRlOgogICAgIEltYWdlUGFpbnRp
bmdPcHRpb25zIG1faW1hZ2VQYWludGluZ09wdGlvbnM7CiB9OwogCitjbGFzcyBJbWFnZUhhbmRs
ZSB7CitwdWJsaWM6CisgICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7CisgICAgaW1hZ2VIYW5kbGUuaW1h
Z2UgPSBtX2ltYWdlLnB0cigpOworCisgICAgZW5jb2RlciA8PCBpbWFnZUhhbmRsZTsKKyAgICBl
bmNvZGVyIDw8IG1fZGVzdGluYXRpb247CisgICAgZW5jb2RlciA8PCBtX3NvdXJjZTsKKyAgICBl
bmNvZGVyIDw8IG1faW1hZ2VQYWludGluZ09wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxSZWY8RHJhd0ltYWdlPj4gRHJhd0ltYWdlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxJbWFnZUhhbmRsZT4gaW1hZ2VIYW5kbGU7Cisg
ICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKKyAgICBpZiAoIWltYWdlSGFuZGxlKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBkZXN0aW5h
dGlvbjsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uOworICAgIGlmICghZGVzdGluYXRpb24p
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+
IHNvdXJjZTsKKyAgICBkZWNvZGVyID4+IHNvdXJjZTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRp
b25zPiBpbWFnZVBhaW50aW5nT3B0aW9uczsKKyAgICBkZWNvZGVyID4+IGltYWdlUGFpbnRpbmdP
cHRpb25zOworICAgIGlmICghaW1hZ2VQYWludGluZ09wdGlvbnMpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRHJhd0ltYWdlOjpjcmVhdGUoKmltYWdlSGFuZGxl
LT5pbWFnZSwgKmRlc3RpbmF0aW9uLCAqc291cmNlLCAqaW1hZ2VQYWludGluZ09wdGlvbnMpOwor
fQorCiBjbGFzcyBEcmF3VGlsZWRJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxEcmF3VGlsZWRJbWFnZT4gY3JlYXRlKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTEzNzksMjMgKzE0
MjcsMjIgQEAgT3B0aW9uYWw8UmVmPEZpbGxDb21wb3NpdGVkUmVjdD4+IEZpbGxDb21wb3NpdGVk
UmVjdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAKIGNsYXNzIEZpbGxSb3VuZGVkUmVjdCA6
IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGaWxsUm91bmRl
ZFJlY3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYg
Y29sb3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxGaWxsUm91bmRlZFJlY3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBj
b25zdCBDb2xvciYgY29sb3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxsUm91bmRlZFJlY3QocmVjdCwgY29sb3IsIGJsZW5kTW9k
ZSkpOwogICAgIH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkZpbGxSb3VuZGVkUmVj
dCgpOworCiAgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX3JlY3Q7IH0KICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVy
biBtX2NvbG9yOyB9CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmxlbmRNb2RlOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFJlZjxGaWxsUm91bmRlZFJlY3Q+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgot
ICAgIEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBD
b2xvciYgY29sb3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCi0gICAgICAgIDogRHJhd2luZ0l0ZW0o
SXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdCkKLSAgICAgICAgLCBtX3JlY3QocmVjdCkKLSAgICAg
ICAgLCBtX2NvbG9yKGNvbG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAg
ICB7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JUIEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9h
dFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImLCBCbGVuZE1vZGUpOwogCiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxGbG9hdFJl
Y3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fcmVjdC5yZWN0KCk7IH0KQEAgLTE0MDUsNiArMTQ1MiwzNSBAQCBwcml2YXRlOgog
ICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIEZpbGxSb3VuZGVkUmVjdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBtX3JlY3Q7CisgICAgZW5jb2RlciA8PCBtX2NvbG9yOworICAgIGVu
Y29kZXIgPDwgbV9ibGVuZE1vZGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxSZWY8RmlsbFJvdW5kZWRSZWN0Pj4gRmlsbFJvdW5kZWRSZWN0OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9hdFJvdW5kZWRSZWN0PiByZWN0OworICAg
IGRlY29kZXIgPj4gcmVjdDsKKyAgICBpZiAoIXJlY3QpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb2xvcj4gY29sb3I7CisgICAgZGVjb2RlciA+PiBjb2xv
cjsKKyAgICBpZiAoIWNvbG9yKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
T3B0aW9uYWw8QmxlbmRNb2RlPiBibGVuZE1vZGU7CisgICAgZGVjb2RlciA+PiBibGVuZE1vZGU7
CisgICAgaWYgKCFibGVuZE1vZGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gRmlsbFJvdW5kZWRSZWN0OjpjcmVhdGUoKnJlY3QsICpjb2xvciwgKmJsZW5kTW9k
ZSk7Cit9CisKIGNsYXNzIEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlIDogcHVibGljIERyYXdpbmdJ
dGVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPiBj
cmVhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3Vu
ZGVkSG9sZVJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTE3MzEsNyArMTgwNyw3IEBAIHZv
aWQgSXRlbTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIFdURkxvZ0Fs
d2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBEcmF3R2x5
cGhzIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZToKLSAg
ICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQg
ZW5jb2RlIERyYXdJbWFnZSIpOworICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdJbWFn
ZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRJ
bWFnZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNh
bm5vdCB5ZXQgZW5jb2RlIERyYXdUaWxlZEltYWdlIik7CkBAIC0xNzg0LDcgKzE4NjAsNyBAQCB2
b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBlbmNvZGVy
IDw8IGRvd25jYXN0PEZpbGxDb21wb3NpdGVkUmVjdD4oKnRoaXMpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3Q6Ci0gICAgICAgIFdURkxvZ0Fsd2F5
cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBGaWxsUm91bmRl
ZFJlY3QiKTsKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxGaWxsUm91bmRlZFJlY3Q+KCp0
aGlzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoUm91
bmRlZEhvbGU6CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29k
ZSBjYW5ub3QgeWV0IGVuY29kZSBGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSIpOwpAQCAtMTg5NSw3
ICsxOTcxLDggQEAgT3B0aW9uYWw8UmVmPEl0ZW0+PiBJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNh
bm5vdCB5ZXQgZGVjb2RlIERyYXdHbHlwaHMiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJ
dGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUgRHJhd0ltYWdlIik7CisgICAgICAgIGlmIChh
dXRvIGl0ZW0gPSBEcmF3SW1hZ2U6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRJbWFnZToKICAgICAgICAgV1RGTG9n
QWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIERyYXdU
aWxlZEltYWdlIik7CkBAIC0xOTUzLDcgKzIwMzAsOCBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0
ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19y
ZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdDoKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJE
aXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIEZpbGxSb3VuZGVkUmVj
dCIpOworICAgICAgICBpZiAoYXV0byBpdGVtID0gRmlsbFJvdW5kZWRSZWN0OjpkZWNvZGUoZGVj
b2RlcikpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PEl0ZW0+KFdU
Rk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJl
Y3RXaXRoUm91bmRlZEhvbGU6CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0
ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29kZSBGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQppbmRl
eCBhN2VlOWY2NmMwMDNkMDM5NWY4MTg4Mjc4YTQzYmRjY2MwMTVhZWM4Li44MTM2YzFmZmY0NWI5
YTMxNzdhOTY4YmI2ZjYyYjJkZjg5MDdkYTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIEljb246
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCkKICAgICBGbG9hdFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICBGbG9hdFJlY3Qgc3Jj
UmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogCi0gICAgY29udGV4dC5zZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KEludGVycG9sYXRpb25IaWdoKTsKKyAgICBjb250ZXh0LnNldEltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2gpOwogICAgIGNvbnRl
eHQuZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5nZXQoKSwgc2l6ZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKaW5kZXggMzMzMjI5YjRjZTRhNDYzMTg3ODFlZDgw
NjI4MTFlNzYzODk2YjBmNi4uN2QyY2VmZDYyNjFkZWUyYTM5YTg5ZDEwMTcwMmViNTAyNTJmNGY1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lkIEJpdG1hcFRleHR1
cmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXImLCBHcmFwaGljc0xheWVyKiBzb3VyY2VM
YXllciwgYwogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQg
PSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVmYXVsdCk7CisgICAgY29udGV4dC5zZXRJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0KTsKICAgICBj
b250ZXh0LnNldFRleHREcmF3aW5nTW9kZShUZXh0TW9kZUZpbGwpOwogCiAgICAgSW50UmVjdCBz
b3VyY2VSZWN0KHRhcmdldFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKaW5k
ZXggZjUzODcwZjJmNDE3NTkzYmE5NzM0NTA0Yjk1OGQ2ZDIzMzg4NTViZC4uNDM0MDdmZDljMWNi
MDVkMWI5ZmRiOTRiMDI1MGE5OWQ4Yjg3YWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0
MkQuY3BwCkBAIC0xMDYyLDE5ICsxMDYyLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkKICAg
ICBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERSBxdWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01P
REVfTkVBUkVTVF9ORUlHSEJPUjsKIAogICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgSW50
ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVs
dDoKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX05FQVJFU1RfTkVJ
R0hCT1I7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk5vbmU6CisgICAg
Y2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6Tm9uZToKICAgICAgICAgcXVhbGl0eSA9IEQyRDFf
SU5URVJQT0xBVElPTl9NT0RFX05FQVJFU1RfTkVJR0hCT1I7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW50ZXJwb2xhdGlvbkxvdzoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpM
b3c6CiAgICAgICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9MSU5FQVI7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKKyAgICBjYXNlIElu
dGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW06CiAgICAgICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVS
UE9MQVRJT05fTU9ERV9DVUJJQzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0
aW9uSGlnaDoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOgogICAgICAgICBx
dWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfSElHSF9RVUFMSVRZX0NVQklDOwogICAg
ICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dBS1ZpZXcubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1Zp
ZXcubW0KaW5kZXggZDAxOTQ4OWRhOGJlY2FiNGE1NTJmMGMwOTdjODQ1MjMyNjU1OTAyMy4uOTlh
NTM0NzIyNzU0YzU4YzQwMWVkZGQ1MjcwN2JjMWRjYzVkNmQ5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpAQCAtNDcxLDE1ICs0NzEsMTUgQEAgLSAodm9p
ZClfdW5sb2NrRm9jdXNWaWV3SW5Db250ZXh0OihDR0NvbnRleHRSZWYpY29udGV4dAogc3RhdGlj
IENHSW50ZXJwb2xhdGlvblF1YWxpdHkgdG9DR0ludGVycG9sYXRpb25RdWFsaXR5KFdlYkNvcmU6
OkludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7
Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNv
cmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAgICAgICByZXR1cm4ga0NHSW50
ZXJwb2xhdGlvbkRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uTm9uZToK
KyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpOb25lOgogICAgICAgICBy
ZXR1cm4ga0NHSW50ZXJwb2xhdGlvbk5vbmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0
aW9uTG93OgorICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAg
ICAgICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25Mb3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRl
cnBvbGF0aW9uTWVkaXVtOgorICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6
Ok1lZGl1bToKICAgICAgICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25NZWRpdW07Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uSGlnaDoKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9s
YXRpb25RdWFsaXR5OjpIaWdoOgogICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkhpZ2g7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwCmluZGV4IDkxNjQ4NzNkNTgyNTFkMzJjODAwOTJhMmZjNmY4Yzk2NGRkOWEyNzUuLjFjNjZh
ZDc5Y2U0MGMxNDU1OGY2NjUyNTJiMjVlM2JiN2RlZDE2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBA
IC00NjIsNyArNDYyLDcgQEAgSW1hZ2VCdWZmZXIqIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpp
bWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgaWYgKCFtX2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS5zZXRJbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25EZWZhdWx0KTsKKyAgICBtX2ltYWdlQnVmZmVy
LT5jb250ZXh0KCkuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6RGVmYXVsdCk7CiAgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnNldFN0cm9rZVRo
aWNrbmVzcygxKTsKIAogICAgIHJldHVybiBtX2ltYWdlQnVmZmVyLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4
IDIwYjZhMWEyZmJmODMwYWFjYjkyNWFjNTQ0OTNjMGVjNmYwODA2ZjAuLjhiNjNiNjg0YjYwZDc4
ZDQxMTdiMmVmMWM1Y2Y3OTVkNmZlNjQ2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbWFnZVF1YWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5jcHAKQEAgLTEwMiwxMiArMTAyLDEyIEBA
IE9wdGlvbmFsPEludGVycG9sYXRpb25RdWFsaXR5PiBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpp
bnRlcnBvbGF0aW9uUXVhbGl0eUZyb21TCiB7CiAgICAgc3dpdGNoIChzdHlsZS5pbWFnZVJlbmRl
cmluZygpKSB7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAg
ICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
UXVhbGl0eTo6TG93OwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6OkNyaXNwRWRnZXM6CiAgICAg
Y2FzZSBJbWFnZVJlbmRlcmluZzo6UGl4ZWxhdGVkOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xh
dGlvbk5vbmU7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6Tm9uZTsKICAg
ICBjYXNlIEltYWdlUmVuZGVyaW5nOjpPcHRpbWl6ZVF1YWxpdHk6Ci0gICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsgLy8gRklYTUU6IENTUyAzIEltYWdlcyBzYXlzIHRoYXQgb3B0
aW1pemVRdWFsaXR5IHNob3VsZCBiZWhhdmUgbGlrZSAnYXV0bycsIGJ1dCB0aGF0IHByZXZlbnRz
IGF1dGhvcnMgZnJvbSBvdmVycmlkaW5nIHRoaXMgbG93IHF1YWxpdHkgcmVuZGVyaW5nIGJlaGF2
aW9yLgorICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7IC8vIEZJ
WE1FOiBDU1MgMyBJbWFnZXMgc2F5cyB0aGF0IG9wdGltaXplUXVhbGl0eSBzaG91bGQgYmVoYXZl
IGxpa2UgJ2F1dG8nLCBidXQgdGhhdCBwcmV2ZW50cyBhdXRob3JzIGZyb20gb3ZlcnJpZGluZyB0
aGlzIGxvdyBxdWFsaXR5IHJlbmRlcmluZyBiZWhhdmlvci4KICAgICBjYXNlIEltYWdlUmVuZGVy
aW5nOjpBdXRvOgogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMTgsNyArMTE4LDcgQEAgSW50
ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xh
dGlvblF1YWxpdHkoR3JhcGhpY3MKIHsKICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgbm90IGEgYml0
bWFwIGltYWdlLCB0aGVuIG5vbmUgb2YgdGhpcyBpcyByZWxldmFudCBhbmQgd2UganVzdCBwYWlu
dCBhdCBoaWdoIHF1YWxpdHkuCiAgICAgaWYgKCEoaW1hZ2UuaXNCaXRtYXBJbWFnZSgpIHx8IGlt
YWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKSB8fCBjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkK
LSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAgICAgICByZXR1cm4gSW50
ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAKICAgICBpZiAoT3B0aW9uYWw8SW50ZXJwb2xh
dGlvblF1YWxpdHk+IHN0eWxlSW50ZXJwb2xhdGlvbiA9IGludGVycG9sYXRpb25RdWFsaXR5RnJv
bVN0eWxlKG9iamVjdC0+c3R5bGUoKSkpCiAgICAgICAgIHJldHVybiBzdHlsZUludGVycG9sYXRp
b24udmFsdWUoKTsKQEAgLTE0NywxMCArMTQ3LDEwIEBAIEludGVycG9sYXRpb25RdWFsaXR5IElt
YWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNz
CiAgICAgICAgICAgICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwogICAgICAg
ICAgICAgcmVzdGFydFRpbWVyKCk7CiAgICAgICAgICAgICBtX2xpdmVSZXNpemVPcHRpbWl6YXRp
b25Jc0FjdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsK
KyAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgICAgICB9
CiAgICAgICAgIGlmIChtX2xpdmVSZXNpemVPcHRpbWl6YXRpb25Jc0FjdGl2ZSkKLSAgICAgICAg
ICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgICAgIHJldHVybiBJbnRl
cnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAKICAgICBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGN1cnJlbnRUcmFuc2Zvcm0gPSBjb250ZXh0LmdldENUTSgpOwpAQCAtMTU4LDIxICsx
NTgsMjEgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hv
b3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3MKICAgICBpZiAoIWNvbnRleHRJc1NjYWxl
ZCAmJiBzaXplID09IGltYWdlU2l6ZSkgewogICAgICAgICAvLyBUaGVyZSBpcyBubyBzY2FsZSBp
biBlZmZlY3QuIElmIHdlIGhhZCBhIHNjYWxlIGluIGVmZmVjdCBiZWZvcmUsIHdlIGNhbiBqdXN0
IHJlbW92ZSB0aGlzIG9iamVjdCBmcm9tIHRoZSBsaXN0LgogICAgICAgICByZW1vdmVMYXllcihv
YmplY3QsIGlubmVyTWFwLCBsYXllcik7Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVm
YXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAg
IH0KIAogICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gaGFzaCBzY2FsZWQgaW1hZ2VzIHRoYXQg
YWx3YXlzIHVzZSBsb3cgcXVhbGl0eSBtb2RlIHdoZW4gdGhlIHBhZ2UgZGVtYW5kcyBpdC4gVGhp
cyBpcyB0aGUgaUNoYXQgY2FzZS4KICAgICBpZiAobV9yZW5kZXJWaWV3LnBhZ2UoKS5pbkxvd1F1
YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlKCkpIHsKICAgICAgICAgZG91YmxlIHRvdGFsUGl4
ZWxzID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihpbWFnZS53aWR0aCgpKSAqIHN0YXRpY19jYXN0PGRv
dWJsZT4oaW1hZ2UuaGVpZ2h0KCkpOwogICAgICAgICBpZiAodG90YWxQaXhlbHMgPiBjSW50ZXJw
b2xhdGlvbkN1dG9mZikKLSAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAg
ICAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgfQogCiAgICAg
Ly8gSWYgYW4gYW5pbWF0ZWQgcmVzaXplIGlzIGFjdGl2ZSwgcGFpbnQgaW4gbG93IHF1YWxpdHkg
YW5kIGtpY2sgdGhlIHRpbWVyIGFoZWFkLgogICAgIGlmIChtX2FuaW1hdGVkUmVzaXplSXNBY3Rp
dmUpIHsKICAgICAgICAgc2V0KG9iamVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICAg
ICAgcmVzdGFydFRpbWVyKCk7Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAg
ICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICAgICB9CiAgICAgLy8gSWYg
dGhpcyBpcyB0aGUgZmlyc3QgdGltZSByZXNpemluZyB0aGlzIGltYWdlLCBvciBpdHMgc2l6ZSBp
cyB0aGUKICAgICAvLyBzYW1lIGFzIHRoZSBsYXN0IHJlc2l6ZSwgZHJhdyBhdCBoaWdoIHJlcywg
YnV0IHJlY29yZCB0aGUgcGFpbnQKQEAgLTE4MCwxMyArMTgwLDEzIEBAIEludGVycG9sYXRpb25R
dWFsaXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5
KEdyYXBoaWNzCiAgICAgaWYgKGlzRmlyc3RSZXNpemUgfHwgb2xkU2l6ZSA9PSBzaXplKSB7CiAg
ICAgICAgIHJlc3RhcnRUaW1lcigpOwogICAgICAgICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5
ZXIsIHNpemUpOwotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAgICAgLy8gSWYg
dGhlIHRpbWVyIGlzIG5vIGxvbmdlciBhY3RpdmUsIGRyYXcgYXQgaGlnaCBxdWFsaXR5IGFuZCBk
b24ndAogICAgIC8vIHNldCB0aGUgdGltZXIuCiAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkp
IHsKICAgICAgICAgcmVtb3ZlTGF5ZXIob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIpOwotICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0
aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAgICAgLy8gVGhpcyBvYmplY3QgaGFzIGJlZW4g
cmVzaXplZCB0byB0d28gZGlmZmVyZW50IHNpemVzIHdoaWxlIHRoZSB0aW1lcgogICAgIC8vIGlz
IGFjdGl2ZSwgc28gZHJhdyBhdCBsb3cgcXVhbGl0eSwgc2V0IHRoZSBmbGFnIGZvciBhbmltYXRl
ZCByZXNpemVzIGFuZApAQCAtMTk0LDcgKzE5NCw3IEBAIEludGVycG9sYXRpb25RdWFsaXR5IElt
YWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNz
CiAgICAgc2V0KG9iamVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICBtX2FuaW1hdGVk
UmVzaXplSXNBY3RpdmUgPSB0cnVlOwogICAgIHJlc3RhcnRUaW1lcigpOwotICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uTG93OworICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93Owog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBiMmM0
OWE2NjY2NTRhMTQxMzhjODI2NjZiZmU4Y2FlZmJkNWRmZTdlLi5kN2M5MTZjZTY0NmJkYjdlZWVl
ODUwNTFiNGM1ODM4MjNjOTZiZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAKQEAgLTY0OCw3ICs2NDgsNyBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6
OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAg
ICAgICBpbWFnZUVsZW1lbnQgPyBpbWFnZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwKICAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1h
Z2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKICAgICAgICAgaW1hZ2VPcmllbnRhdGlvbigpLAot
ICAgICAgICBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250
ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9s
YXRpb25EZWZhdWx0CisgICAgICAgIGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHko
cGFpbnRJbmZvLmNvbnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUo
KSkpIDogSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQKICAgICB9OwogCiAgICAgYXV0byBk
cmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0
aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAppbmRleCA3MTMyZTg4YjQyOTQ1ODhhN2Q0ZmY4OTdiYTM4OWU5MmRjYjM1NDM4Li5lNWRiNDI0
YjVmNmExYWY3ZmQyNjIxNmMzOGVkMjEyY2MwYTc2NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0RhdGFiYXNlRGV0YWlscy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0
aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRyYWNraW5nUmVnaW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CkBAIC0xMTQzLDYgKzExNDQsMTgg
QEAgc3RhdGljIGJvb2wgZGVjb2RlT3B0aW9uYWxJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8SW1hZ2U+JiBpbWFnZSkKICAgICByZXR1cm4gZGVjb2RlSW1hZ2UoZGVjb2RlciwgaW1hZ2Up
OwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZSYgaW1h
Z2VIYW5kbGUpCit7CisgICAgZW5jb2RlT3B0aW9uYWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRs
ZS5pbWFnZS5nZXQoKSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxEaXNwbGF5TGlzdDo6SW1h
Z2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRGlzcGxheUxpc3Q6OkltYWdlSGFu
ZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICBpZiAoIWRlY29kZU9wdGlvbmFsSW1hZ2UoZGVjb2Rl
ciwgaW1hZ2VIYW5kbGUuaW1hZ2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgQXJndW1lbnRDb2Rl
cjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3Ip
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDYwNmRiY2E4ZTMyNmIxZDRmOTgyMmRkYTkzYjc4YzgxZDFiZTQ0MzIuLjIzNWQ1ZTkyMmFlYTQy
Nzg1ODRjNDdkZjE1MGIyMDlhYjM0YmMzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xODksOCArMTg5LDEzIEBAIG5hbWVzcGFjZSBET01D
YWNoZUVuZ2luZSB7CiBzdHJ1Y3QgQ2FjaGVJbmZvOwogc3RydWN0IFJlY29yZDsKIH0KKworbmFt
ZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIEltYWdlSGFuZGxlOwogfQogCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKIG5hbWVzcGFjZSBJUEMgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewpAQCAtMzgzLDYgKzM4OCwxMSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1cnNvcj4gewogICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFn
ZUhhbmRsZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGUmKTsKK307CisKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KaW5kZXggMDVkMDNlMDEyNDg3OTJjY2VmNTdmOWU3NWRhZTgwMDQ5MmRm
NjRkYi4uZTMyMWNlOGUxMTlkYjQ2MDllMTJmMWNiMGJhYTc5MGIxZTBkNjRiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC01
NzksNyArNTc5LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoRmxvYXQ6LTEuMGZdLCBXZWJLaXRNYXhQYXJzZUR1cmF0aW9uUHJlZmVyZW5jZUtleSwK
ICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd011bHRpRWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1pc3Np
b25QcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdEFsd2F5c1JlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEludDpJbnRlcnBvbGF0aW9uTG93XSwgV2ViS2l0SW50ZXJwb2xhdGlvblF1YWxpdHlQcmVmZXJl
bmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6TG93XSwgV2ViS2l0SW50ZXJwb2xhdGlvblF1YWxpdHlQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBAWUVTLCBXZWJLaXRQYXNzd29yZEVjaG9FbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhGbG9hdDoyLjBmXSwgV2ViS2l0UGFzc3dvcmRFY2hvRHVy
YXRpb25QcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdE5ldHdvcmtEYXRhVXNhZ2VU
cmFja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385091</attachid>
            <date>2019-12-07 03:20:25 -0800</date>
            <delta_ts>2019-12-07 03:59:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204881-20191207032025.patch</filename>
            <type>text/plain</type>
            <size>46169</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMjk5OWJjNmVlMDAy
NjFkMjExOGNmZGQ2ZTY1NTVkYWRjODFhZi4uZjAxYWRlNWExMGFlZWM0MjE3YTJhNGQxZmIxYWRj
ZDc3ZGE2YmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTA1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZyBmb3IgRHJhd0ltYWdlIGFuZCBEcmF3Um91bmRlZFJlY3QgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgTWFrZSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBhbiBlbnVtIGNsYXNzLgorICAgICAgICBNYWtlIEltYWdlUGFp
bnRpbmdPcHRpb25zIGFuZCBhbGwgb2YgaXRzIGNoaWxkcmVuIGVuY29kYWJsZS4KKyAgICAgICAg
TWFrZSBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVkUmVjdCBlbmNvZGFibGUuCisgICAgICAgIEFk
ZCBJbWFnZUhhbmRsZSwgd2hpY2ggcmlnaHQgbm93IGp1c3Qgd3JhcHMgV2ViQ29yZTo6SW1hZ2Us
IGJ1dAorICAgICAgICBsYXRlciBjb3VsZCBjYXJyeSBpZGVudGlmaWVycy4gVGhpcyBhbGxvd3Mg
dXMgdG8gaW1wbGVtZW50IGltYWdlIGVuY29kaW5nCisgICAgICAgIGluIFdlYktpdCBjb2RlLCB3
aGljaCBjYW4gdGhlbiB1c2UgU2hhcmVhYmxlQml0bWFwIHRvIEEpIGRlY29kZSB0aGUgaW1hZ2UK
KyAgICAgICAgaW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgYW5kIEIpIHVzZSBzaGFyZWQgbWVt
b3J5IHRvIHRyYW5zbWl0IHRoZQorICAgICAgICBkZWNvZGVkIGltYWdlIGRhdGEgdG8gdGhlIEdQ
VSBwcm9jZXNzLgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNwcDoKKyAgICAgICAgKiBo
dG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXI6OkludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVBhaW50aW5nT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnM6OkltYWdlUGFpbnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2Fpcm86OmRyYXdTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW50ZXJw
b2xhdGlvblF1YWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tOgorICAgICAgICAodG9DR0ludGVycG9sYXRpb25R
dWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1
ZmZlciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6aW50ZXJwb2xh
dGlvblF1YWxpdHlGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29u
dHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJ
bnRvUmVjdCk6CisKIDIwMTktMTItMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgRHJhZ0NvbnRyb2xsZXI6OmNsaWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFlNWFiYjQ2ZDdhOTE2NmJiZjg5ZmYxZDU0NDg0ZGZmMDhlYjdmNTQuLjc3M2E4ZTMw
ZDUwY2E3NGQ2NWE1MjIzZDg0ZTBiNjRkMGJiYjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMTItMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IGVuY29kaW5nIGZvciBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVk
UmVjdCBkaXNwbGF5IGxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKIDIw
MTktMTItMDMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgZGlzYWJsZWQgaGlnaGxpZ2h0IEFQSSBza2VsZXRvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGEzMmFkZjdjMTQ1MDMwYTE5MDE4YmE4NTU0MTYzNGZiMzYxOGRiMDAu
LjcxMjAwNjYwMjllYjMwZGQ5MGU1OWU2MTM4MmE2OGM1NzcyNDE5ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNyAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZW5jb2Rpbmcg
Zm9yIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5kZWRSZWN0IGRpc3BsYXkgbGlzdCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgor
CiAyMDE5LTEyLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGRpc2FibGVkIGhpZ2hsaWdodCBBUEkgc2tlbGV0b24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwCmluZGV4IDhkMzcwMDQ5ZTlhZDgyNDRmM2Q0OWIzYTNkYzJlZGMxY2Iy
ZDI1MWQuLjEyMmY0ZTQwZGU2ZjdkOTU3NTViMjIxMWFlZGU4Y2FhMTAxMTU1NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgVVNFKENHKQogLy8gRklYTUU6IEl0IHNlZW1zIHN0cmFuZ2UgdGhhdCB0aGUgZGVm
YXVsdCBxdWFsaXR5IGlzIG5vdCB0aGUgb25lIHRoYXQgaXMgbGl0ZXJhbGx5IG5hbWVkICJkZWZh
dWx0Ii4KIC8vIFNob3VsZCBmaXggbmFtZXMgdG8gbWFrZSB0aGlzIGVhc2llciB0byB1bmRlcnN0
YW5kLCBvciB3cml0ZSBhbiBleGNlbGxlbnQgY29tbWVudCBoZXJlIGV4cGxhaW5pbmcgd2h5IG5v
dC4KLWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0
eSA9IEludGVycG9sYXRpb25Mb3c7Citjb25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0
SW50ZXJwb2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogI2Vsc2UK
LWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
IEludGVycG9sYXRpb25EZWZhdWx0OworY29uc3QgSW50ZXJwb2xhdGlvblF1YWxpdHkgZGVmYXVs
dEludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAj
ZW5kaWYKIAogQ2FudmFzQmFzZTo6Q2FudmFzQmFzZShJbnRTaXplIHNpemUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDAxMzUzMWJhMTA5NGVkMmI1ZTNhNDM4ZjEwN2VlZGFk
NTAzNDU5ZWMuLmFiMzk3ZDEwYjE2M2QwYzllZTIyYjYwMGFhMmY2MTE2NGQyNTU4YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC0yMDYsMTYgKzIwNiwxNiBAQCBzdGF0aWMg
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5
KEltYWdlQml0bWFwT3B0aQogewogICAgIHN3aXRjaCAocmVzaXplUXVhbGl0eSkgewogICAgIGNh
c2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5OjpQaXhlbGF0ZWQ6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpOb25lOwogICAgIGNhc2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5
OjpMb3c6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsgLy8gTG93IGlzIHRo
ZSBkZWZhdWx0LgorICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7
IC8vIExvdyBpcyB0aGUgZGVmYXVsdC4KICAgICBjYXNlIEltYWdlQml0bWFwT3B0aW9uczo6UmVz
aXplUXVhbGl0eTo6TWVkaXVtOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk1lZGl1bTsK
KyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW07CiAgICAgY2FzZSBJ
bWFnZUJpdG1hcE9wdGlvbnM6OlJlc2l6ZVF1YWxpdHk6OkhpZ2g6Ci0gICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uSGlnaDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpI
aWdoOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJw
b2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0
OwogfQogCiAvLyBGSVhNRTogTW9yZSBzdGVwcyBmcm9tIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2ltYWdlYml0bWFwLWFuZC1hbmltYXRpb25zLmh0bWwjY3JvcHBlZC10
by10aGUtc291cmNlLXJlY3RhbmdsZS13aXRoLWZvcm1hdHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKaW5kZXggOTI4Mjg4NDU2YjM1ODIxNGYzZmRlMWU1YzAyNDgxYmU5NWRlODg5My4uZGEyNGEx
YzRiZjJhNjZjNjk4YTE2N2I5MzJlMTJlMzc4MTcxNzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKQEAgLTIyODgsMTUgKzIyODgsMTUgQEAgc3RhdGljIGlubGluZSBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRpb25RdWFsaXR5KEltYWdlU21vb3RoaW4KIHsKICAg
ICBzd2l0Y2ggKHF1YWxpdHkpIHsKICAgICBjYXNlIEltYWdlU21vb3RoaW5nUXVhbGl0eTo6TG93
OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgcmV0dXJuIEludGVy
cG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgY2FzZSBJbWFnZVNtb290aGluZ1F1YWxpdHk6Ok1l
ZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07CisgICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2UgSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5OjpIaWdoOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkhpZ2g7CisgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICByZXR1cm4g
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKIH07CiAKIGF1dG8gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6aW1hZ2VTbW9vdGhpbmdRdWFsaXR5KCkgY29uc3QgLT4gSW1hZ2VTbW9vdGhp
bmdRdWFsaXR5CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbW9k
aWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZW5hYmxlZDsKICAgICBhdXRv
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoYykKLSAgICAgICAgYy0+c2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShlbmFibGVkID8gc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVh
bGl0eShzdGF0ZSgpLmltYWdlU21vb3RoaW5nUXVhbGl0eSkgOiBJbnRlcnBvbGF0aW9uTm9uZSk7
CisgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoZW5hYmxlZCA/IHNtb290
aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFnZVNtb290aGluZ1F1YWxpdHkp
IDogSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OnNldFBhdGgoUGF0aDJEJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaAppbmRleCBmM2EwYjQ3OWUy
NTljZWQ4MWQ0MTIzMjBmMTk4ODg0YjFjNzkzMmNkLi44NDkzZDNhNTQ2NmY4MTdhNjQzMGI3NzVm
NzQxY2E1NTVmOWZlODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EZWNvZGluZ09wdGlvbnMuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBEZWNvZGluZ01vZGUgeworZW51bSBjbGFzcyBE
ZWNvZGluZ01vZGUgOiB1aW50OF90IHsKICAgICBBdXRvLAogICAgIFN5bmNocm9ub3VzLAogICAg
IEFzeW5jaHJvbm91cwpAQCAtMTQ0LDQgKzE0NSwxNyBAQCBwcml2YXRlOgogICAgIERlY29kaW5n
TW9kZU9yU2l6ZSBtX2RlY29kaW5nTW9kZU9yU2l6ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6RGVjb2RpbmdNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICBXZWJDb3JlOjpEZWNvZGluZ01vZGUsCisgICAgV2ViQ29yZTo6RGVjb2RpbmdNb2Rl
OjpBdXRvLAorICAgIFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsCisgICAgV2Vi
Q29yZTo6RGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDIyNWFiYWFiZThhYTJhOGFlYWVlMWE1MmM2MTZhMjk4ZjFlMjAw
YjEuLmIxNWZmZmNhN2MwM2U5Yzk2OTZhZmIwM2JhNGJiYTZlNjRhZDIzMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0x
OTYsNyArMTk2LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICAgICBmbG9hdCBh
bHBoYSB7IDEgfTsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciB7IENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSB7
IEJsZW5kTW9kZTo6Tm9ybWFsIH07Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25EZWZhdWx0IH07CisgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0IH07CiAKICAgICBib29sIHNob3VsZEFudGlhbGlhcyA6IDE7CiAgICAgYm9v
bCBzaG91bGRTbW9vdGhGb250cyA6IDE7CkBAIC02OTksNyArNjk5LDcgQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcihHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxp
dHlUb1VzZSkKICAgICAgICAgOiBtX2dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQpCiAg
ICAgICAgICwgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1YWxpdHkoZ3JhcGhpY3NDb250ZXh0Lmlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSkKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFs
aXR5Q2hhbmdlZChpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlICE9IEludGVycG9sYXRpb25EZWZh
dWx0ICYmIG1fY3VycmVudEludGVycG9sYXRpb25RdWFsaXR5ICE9IGludGVycG9sYXRpb25RdWFs
aXR5VG9Vc2UpCisgICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZWQoaW50ZXJw
b2xhdGlvblF1YWxpdHlUb1VzZSAhPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCAmJiBt
X2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNl
KQogICAgIHsKICAgICAgICAgaWYgKG1faW50ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2VkKQogICAg
ICAgICAgICAgbV9ncmFwaGljc0NvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShp
bnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAppbmRleCAyY2U2YjBjYmEwMDBjOTE2ZjFhNGRhNDcy
NDUyOTkzZWY0YzkwNTUzLi41MjQxYzdhOGFlNmUwNjkzZWU3NjFjZjNiOTgwZTY0ODQyMzU3OTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5oCkBAIC03OSwxMiArNzksMTIgQEAgZW51bSBHcmFkaWVudFNwcmVhZE1ldGhvZCB7CiAgICAg
U3ByZWFkTWV0aG9kUmVwZWF0CiB9OwogCi1lbnVtIEludGVycG9sYXRpb25RdWFsaXR5IHsKLSAg
ICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwKLSAgICBJbnRlcnBvbGF0aW9uTm9uZSwKLSAgICBJbnRl
cnBvbGF0aW9uTG93LAotICAgIEludGVycG9sYXRpb25NZWRpdW0sCi0gICAgSW50ZXJwb2xhdGlv
bkhpZ2gKK2VudW0gY2xhc3MgSW50ZXJwb2xhdGlvblF1YWxpdHkgOiB1aW50OF90IHsKKyAgICBE
ZWZhdWx0LAorICAgIE5vbmUsCisgICAgTG93LAorICAgIE1lZGl1bSwKKyAgICBIaWdoCiB9Owog
CiBlbnVtIExpbmVDYXAgewpAQCAtMTMzLDE3ICsxMzMsMTcgQEAgZW51bSBjbGFzcyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIHsKICAgICBVbnByZW11bHRpcGxpZWQKIH07CiAKLVN0cmluZyBjb21w
b3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Ci1TdHJpbmcg
YmxlbmRNb2RlTmFtZShCbGVuZE1vZGUpOwotYm9vbCBwYXJzZUJsZW5kTW9kZShjb25zdCBTdHJp
bmcmLCBCbGVuZE1vZGUmKTsKLWJvb2wgcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKGNv
bnN0IFN0cmluZyYsIENvbXBvc2l0ZU9wZXJhdG9yJiwgQmxlbmRNb2RlJik7CitTdHJpbmcgY29t
cG9zaXRlT3BlcmF0b3JOYW1lKFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3JlOjpC
bGVuZE1vZGUpOworU3RyaW5nIGJsZW5kTW9kZU5hbWUoV2ViQ29yZTo6QmxlbmRNb2RlKTsKK2Jv
b2wgcGFyc2VCbGVuZE1vZGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6QmxlbmRNb2RlJik7Citi
b29sIHBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpDb21wb3NpdGVPcGVyYXRvciYsIFdlYkNvcmU6OkJsZW5kTW9kZSYpOwogCi1XRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQmxlbmRN
b2RlKTsKLVdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBDb21wb3NpdGVPcGVyYXRvcik7Ci1XRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2luZFJ1bGUpOwotV0VCQ09SRV9F
WFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVD
YXApOwotV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIExpbmVKb2luKTsKLVdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbHBoYVByZW11bHRpcGxpY2F0aW9uKTsKK1dFQkNP
UkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBX
ZWJDb3JlOjpCbGVuZE1vZGUpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yKTsKK1dF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBXZWJDb3JlOjpXaW5kUnVsZSk7CitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6TGluZUNhcCk7CitXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29y
ZTo6TGluZUpvaW4pOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24pOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTE5Myw0ICsxOTMsMTUgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpCbGVuZE1vZGU+IHsKICAgICA+OwogfTsKIAordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6SW50ZXJwb2xh
dGlvblF1YWxpdHksCisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQs
CisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmUsCisgICAgV2ViQ29yZTo6
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdywKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6TWVkaXVtLAorICAgIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoCisg
ICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCmluZGV4IDU1OWU1YjNhNjU3ZDFm
ODg0N2M0MTk3ODcxNTcwYjA1ODk0NzUxNTQuLmQ5OTBhM2RjNTU1ZmNkZGI2MTM3NGRiN2QwY2Q3
NWRhOGRmNDk4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT3JpZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFmZmlu
ZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVt
VHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIxLDMgKzEyMiwyMiBAQCBw
cml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9u
OjpPcmllbnRhdGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2Vi
Q29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24sCisgICAgV2ViQ29yZTo6SW1hZ2VP
cmllbnRhdGlvbjo6T3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAgICBXZWJDb3JlOjpJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCwKKyAgICBXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQsCisgICAgV2ViQ29yZTo6
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0LAorICAgIFdl
YkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0LAor
ICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9w
LAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5SaWdo
dFRvcCwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRCb3R0b20sCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b20KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09w
dGlvbnMuaAppbmRleCBkZWE3ZDJhNTM1MzNlYmJiMDZkMGNjOTYyNDVhMThhY2M1MWI4YmUwLi44
OTc4ZTZhZjcxMmU4M2NkNjcwOGFhMzNmYjVjMjU0ZmZjNDJiMTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgK
QEAgLTM4LDExICszOCwxMSBAQCBzdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnMgewogICAgICAg
ICBzZXRPcHRpb24ob3B0aW9ucy4uLik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gT3ZlcnJyaWRlcz4KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3RoZXIsIE92ZXJycmlkZXMuLi4gb3ZlcnJyaWRlcykKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBPdmVycmlkZXM+CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG90aGVyLCBPdmVycmlkZXMuLi4gb3ZlcnJpZGVzKQogICAg
ICAgICA6IEltYWdlUGFpbnRpbmdPcHRpb25zKG90aGVyKQogICAgIHsKLSAgICAgICAgc2V0T3B0
aW9uKG92ZXJycmlkZXMuLi4pOworICAgICAgICBzZXRPcHRpb24ob3ZlcnJpZGVzLi4uKTsKICAg
ICB9CiAKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucygpID0gZGVmYXVsdDsKQEAgLTU0LDYgKzU0
LDkgQEAgc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKICAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogICAgIEludGVy
cG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bnRlcnBvbGF0aW9uUXVhbGl0eTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKKwog
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lLi4uIFJlc3Q+
CiAgICAgdm9pZCBzZXRPcHRpb24oRmlyc3QgZmlyc3QsIFJlc3QuLi4gcmVzdCkKQEAgLTczLDcg
Kzc2LDQ4IEBAIHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRNb2Rl
OjpOb3JtYWwgfTsKICAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGluZ01v
ZGU6OlN5bmNocm9ub3VzIH07CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uIHsg
SW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OwotICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50
ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworICAgIEludGVycG9s
YXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6RGVmYXVsdCB9OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSW1hZ2VQ
YWludGluZ09wdGlvbnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9jb21wb3NpdGVPcGVyYXRvcjsKKyAgICBlbmNvZGVyIDw8IG1fYmxlbmRNb2Rl
OworICAgIGVuY29kZXIgPDwgbV9kZWNvZGluZ01vZGU7CisgICAgZW5jb2RlciA8PCBJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKKyAgICBlbmNvZGVyIDw8IG1f
aW50ZXJwb2xhdGlvblF1YWxpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gSW1hZ2VQYWludGluZ09wdGlvbnM6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdG9yPiBjb21w
b3NpdGVPcGVyYXRvcjsKKyAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOworICAgIGlm
ICghY29tcG9zaXRlT3BlcmF0b3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsKKyAgICBkZWNvZGVyID4+IGJsZW5kTW9k
ZTsKKyAgICBpZiAoIWJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPERlY29kaW5nTW9kZT4gZGVjb2RpbmdNb2RlOworICAgIGRlY29kZXIgPj4g
ZGVjb2RpbmdNb2RlOworICAgIGlmICghZGVjb2RpbmdNb2RlKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24+
IG9yaWVudGF0aW9uOworICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmll
bnRhdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPElu
dGVycG9sYXRpb25RdWFsaXR5PiBpbnRlcnBvbGF0aW9uUXVhbGl0eTsKKyAgICBkZWNvZGVyID4+
IGludGVycG9sYXRpb25RdWFsaXR5OworICAgIGlmICghaW50ZXJwb2xhdGlvblF1YWxpdHkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gSW1hZ2VQYWludGluZ09w
dGlvbnMgeyAqY29tcG9zaXRlT3BlcmF0b3IsICpibGVuZE1vZGUsICpkZWNvZGluZ01vZGUsICpv
cmllbnRhdGlvbiwgKmludGVycG9sYXRpb25RdWFsaXR5IH07Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCmluZGV4IDNiNzBlNzY2MzllNTk0MGFmMWYyYjFkNWJmMjY3M2FlMzJkZWNhMTAuLjBjZThj
ZWI0OGJkNzg4Y2ViMTlhYTlkZDg5N2Y5Mjk5ZGVhYmRkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApA
QCAtODU5LDcgKzg1OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvCiAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkg
KyByZWN0LmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMS4wZiwg
LTEuMGYpKTsKLSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25Mb3cpOworICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7CiAgICAgICAgIEZsb2F0UmVjdCBwYWlu
dFJlY3QoRmxvYXRQb2ludCgpLCByZWN0LnNpemUoKSk7CiAjaWYgVVNFKERJUkVDVDJEKQogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggODQyMTEy
Mzc0YTVkNmE4MTViOGM3NmRhNGUwZjkzMDVhNTRmYjFlYi4uZjhjZWI5NTI1M2ZmOWI3ZjMwNDVi
MDUxYTczOGI3NjViN2E5ZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNTQ3LDcg
KzE1NDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50
V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dAogICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQudHJhbnNs
YXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0
LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgICAgIGNvbnRleHQu
c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsK
ICAgICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53
aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7CiAgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgp
LCBwYWludFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9u
cy5jcHAKaW5kZXggN2UzZDc0NDBkMjYwN2JjNmUxNWMyYjMxNmIwYmQyYmMxZjIwZGYzNy4uZjZj
MDc3YjBhNWYwZDVlYTk1MDM0ZWVmZjJmMmYwMGI0M2Q1OWE1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMu
Y3BwCkBAIC05MzYsMTUgKzkzNiwxNSBAQCB2b2lkIGRyYXdTdXJmYWNlKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZQogICAgIFJl
ZlB0cjxjYWlyb19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2Ny
ZWF0ZV9mb3Jfc3VyZmFjZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgc3dpdGNoIChp
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9uZToK
LSAgICBjYXNlIEludGVycG9sYXRpb25Mb3c6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6Tm9uZToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIGNh
aXJvX3BhdHRlcm5fc2V0X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfRkFTVCk7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICBjYXNl
IEludGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1l
ZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAgICAgICBj
YWlyb19wYXR0ZXJuX3NldF9maWx0ZXIocGF0dGVybi5nZXQoKSwgQ0FJUk9fRklMVEVSX0dPT0Qp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2Ug
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fc2V0X2Zp
bHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfQkVTVCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKaW5kZXggM2FmYWEwYWIwMWQ0YTQwYzJkYjE1OWZm
NDkyOWEwYzRiYThjMTExMC4uNjhiNTI4YTFlOTUxNzUxYjBhZmExMDZhNDliODI3NjFhNTE2Yjhh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4
ZWxzLCBjb25zdCBJbgogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihj
b250ZXh0KTsKICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRl
eHQudHJhbnNsYXRlKDAsIC1pbWFnZVNpemUuaGVpZ2h0KCkpOwotICAgIGNvbnRleHQuc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CisgICAgY29udGV4dC5z
ZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpOb25lKTsK
ICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShjZ0ltYWdlLCBpbWFnZVNpemUsIGNhbnZhc1Jl
Y3QsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSksIHsgQ29tcG9zaXRlT3BlcmF0
b3I6OkNvcHkgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCAyZGYyZTU0MzI0OWZkZGRm
NTNlZjhmMThlYzc5MzgwY2ZlNDdhOTc3Li43YWY5ZWRiZWZjYTMwY2JiN2RkNGZjODYxZjEzZGRh
NDQ3YjMzZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNDMsMTcgKzE0MywxNyBAQCBzdGF0
aWMgSW50ZXJwb2xhdGlvblF1YWxpdHkgY29udmVydEludGVycG9sYXRpb25RdWFsaXR5KENHSW50
ZXJwb2xhdGlvblF1YWxpdHkgcQogewogICAgIHN3aXRjaCAocXVhbGl0eSkgewogICAgIGNhc2Ug
a0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVm
YXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAg
IGNhc2Uga0NHSW50ZXJwb2xhdGlvbk5vbmU6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
Tm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpOb25lOwogICAgIGNh
c2Uga0NHSW50ZXJwb2xhdGlvbkxvdzoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIGNhc2Uga0NH
SW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2Ug
a0NHSW50ZXJwb2xhdGlvbkhpZ2g6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uSGlnaDsK
KyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOwogICAgIH0KLSAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0OwogfQogCiBzdGF0aWMgQ0dCbGVuZE1vZGUgc2VsZWN0Q0dCbGVuZE1vZGUo
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUp
CkBAIC0xNjY3LDE5ICsxNjY3LDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkKIAogICAgIENH
SW50ZXJwb2xhdGlvblF1YWxpdHkgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25EZWZhdWx0Owog
ICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAg
Y2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDoKICAgICAgICAgcXVhbGl0eSA9IGtD
R0ludGVycG9sYXRpb25EZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9s
YXRpb25Ob25lOgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok5vbmU6CiAgICAgICAg
IHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uTm9uZTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoK
ICAgICAgICAgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25Mb3c7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFs
aXR5OjpNZWRpdW06CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2UgSW50
ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0
aW9uSGlnaDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCmluZGV4IDkxY2JiOWZlZjJmMjNmNjA5Mjg2M2MwMjQwZmU3M2VkZGNkMzI1YjQu
Ljc2NDc3OTMzOTBhMzg5ZTQzODUxZWRkNWY4ZTYxY2QwMzJhM2U4MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTQ5Miw2ICs0OTIsOCBAQCBEcmF3SW1hZ2U6OkRy
YXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdAogewogfQogCitEcmF3SW1hZ2U6On5EcmF3SW1hZ2UoKSA9IGRlZmF1bHQ7CisK
IHZvaWQgRHJhd0ltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7
CiAgICAgY29udGV4dC5kcmF3SW1hZ2UobV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV9z
b3VyY2UsIG1faW1hZ2VQYWludGluZ09wdGlvbnMpOwpAQCAtODc2LDYgKzg3OCwxNiBAQCBzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmlsbENvbXBv
c2l0ZWRSZWN0JiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAorRmlsbFJvdW5kZWRSZWN0OjpG
aWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3Im
IGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6
OkZpbGxSb3VuZGVkUmVjdCkKKyAgICAsIG1fcmVjdChyZWN0KQorICAgICwgbV9jb2xvcihjb2xv
cikKKyAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKK3sKK30KKworRmlsbFJvdW5kZWRSZWN0
Ojp+RmlsbFJvdW5kZWRSZWN0KCkgPSBkZWZhdWx0OworCiB2b2lkIEZpbGxSb3VuZGVkUmVjdDo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIGNvbnRleHQuZmls
bFJvdW5kZWRSZWN0KG1fcmVjdCwgbV9jb2xvciwgbV9ibGVuZE1vZGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZGM0MmZmZWFlZWFhMGE0NTVmZDA4N2E4NDU1MGE5ZjM1
Zjg4ZDg2Ny4uNTUxYWMxMTMwMzI4MmI3OTc4NjIyMjhiNzY4MTIyMTk5MTJkZDBjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC03NDEsMTIgKzc0MSwxNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRp
b24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpKTsKICAgICB9CiAKKyAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIH5EcmF3SW1hZ2UoKTsKKwogICAgIGNvbnN0IEltYWdlJiBpbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KICAgICBGbG9hdFJlY3Qgc291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxEcmF3SW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwor
CiBwcml2YXRlOgotICAgIERyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpOworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBv
dmVycmlkZTsKIApAQCAtNzU4LDYgKzc2Myw0OSBAQCBwcml2YXRlOgogICAgIEltYWdlUGFpbnRp
bmdPcHRpb25zIG1faW1hZ2VQYWludGluZ09wdGlvbnM7CiB9OwogCitjbGFzcyBJbWFnZUhhbmRs
ZSB7CitwdWJsaWM6CisgICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7CisgICAgaW1hZ2VIYW5kbGUuaW1h
Z2UgPSBtX2ltYWdlLnB0cigpOworCisgICAgZW5jb2RlciA8PCBpbWFnZUhhbmRsZTsKKyAgICBl
bmNvZGVyIDw8IG1fZGVzdGluYXRpb247CisgICAgZW5jb2RlciA8PCBtX3NvdXJjZTsKKyAgICBl
bmNvZGVyIDw8IG1faW1hZ2VQYWludGluZ09wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxSZWY8RHJhd0ltYWdlPj4gRHJhd0ltYWdlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxJbWFnZUhhbmRsZT4gaW1hZ2VIYW5kbGU7Cisg
ICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKKyAgICBpZiAoIWltYWdlSGFuZGxlKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBkZXN0aW5h
dGlvbjsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uOworICAgIGlmICghZGVzdGluYXRpb24p
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+
IHNvdXJjZTsKKyAgICBkZWNvZGVyID4+IHNvdXJjZTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRp
b25zPiBpbWFnZVBhaW50aW5nT3B0aW9uczsKKyAgICBkZWNvZGVyID4+IGltYWdlUGFpbnRpbmdP
cHRpb25zOworICAgIGlmICghaW1hZ2VQYWludGluZ09wdGlvbnMpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRHJhd0ltYWdlOjpjcmVhdGUoKmltYWdlSGFuZGxl
LT5pbWFnZSwgKmRlc3RpbmF0aW9uLCAqc291cmNlLCAqaW1hZ2VQYWludGluZ09wdGlvbnMpOwor
fQorCiBjbGFzcyBEcmF3VGlsZWRJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxEcmF3VGlsZWRJbWFnZT4gY3JlYXRlKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTEzODQsMTggKzE0
MzIsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxsUm91bmRl
ZFJlY3QocmVjdCwgY29sb3IsIGJsZW5kTW9kZSkpOwogICAgIH0KIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgfkZpbGxSb3VuZGVkUmVjdCgpOworCiAgICAgY29uc3QgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KICAgICBjb25zdCBD
b2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yOyB9CiAgICAgQmxlbmRNb2RlIGJs
ZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRNb2RlOyB9CiAKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxGaWxsUm91bmRlZFJlY3Q+PiBkZWNv
ZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgotICAgIEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9h
dFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUpCi0gICAgICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdCkKLSAg
ICAgICAgLCBtX3JlY3QocmVjdCkKLSAgICAgICAgLCBtX2NvbG9yKGNvbG9yKQotICAgICAgICAs
IG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAgICB7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JU
IEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImLCBC
bGVuZE1vZGUpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVy
cmlkZTsKICAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVjdC5yZWN0KCk7IH0KQEAgLTE0
MDUsNiArMTQ1MiwzNSBAQCBwcml2YXRlOgogICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKIH07
CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbGxSb3VuZGVkUmVjdDo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlY3Q7CisgICAg
ZW5jb2RlciA8PCBtX2NvbG9yOworICAgIGVuY29kZXIgPDwgbV9ibGVuZE1vZGU7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxSZWY8RmlsbFJvdW5kZWRSZWN0Pj4gRmls
bFJvdW5kZWRSZWN0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxG
bG9hdFJvdW5kZWRSZWN0PiByZWN0OworICAgIGRlY29kZXIgPj4gcmVjdDsKKyAgICBpZiAoIXJl
Y3QpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb2xvcj4g
Y29sb3I7CisgICAgZGVjb2RlciA+PiBjb2xvcjsKKyAgICBpZiAoIWNvbG9yKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8QmxlbmRNb2RlPiBibGVuZE1vZGU7
CisgICAgZGVjb2RlciA+PiBibGVuZE1vZGU7CisgICAgaWYgKCFibGVuZE1vZGUpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRmlsbFJvdW5kZWRSZWN0OjpjcmVh
dGUoKnJlY3QsICpjb2xvciwgKmJsZW5kTW9kZSk7Cit9CisKIGNsYXNzIEZpbGxSZWN0V2l0aFJv
dW5kZWRIb2xlIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkSG9sZVJlY3QsIGNvbnN0IENvbG9yJiBjb2xv
cikKQEAgLTE3MzEsNyArMTgwNyw3IEBAIHZvaWQgSXRlbTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29k
ZSBjYW5ub3QgeWV0IGVuY29kZSBEcmF3R2x5cGhzIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdJbWFnZToKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlz
dDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIERyYXdJbWFnZSIpOworICAgICAgICBl
bmNvZGVyIDw8IGRvd25jYXN0PERyYXdJbWFnZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRJbWFnZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJE
aXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIERyYXdUaWxlZEltYWdl
Iik7CkBAIC0xNzg0LDcgKzE4NjAsNyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PEZpbGxDb21wb3NpdGVkUmVj
dD4oKnRoaXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRl
ZFJlY3Q6Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBj
YW5ub3QgeWV0IGVuY29kZSBGaWxsUm91bmRlZFJlY3QiKTsKKyAgICAgICAgZW5jb2RlciA8PCBk
b3duY2FzdDxGaWxsUm91bmRlZFJlY3Q+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6CiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBGaWxsUmVjdFdp
dGhSb3VuZGVkSG9sZSIpOwpAQCAtMTg5NSw3ICsxOTcxLDggQEAgT3B0aW9uYWw8UmVmPEl0ZW0+
PiBJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJE
aXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIERyYXdHbHlwaHMiKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICBX
VEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUg
RHJhd0ltYWdlIik7CisgICAgICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3SW1hZ2U6OmRlY29kZShk
ZWNvZGVyKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4o
V1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
VGlsZWRJbWFnZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVj
b2RlIGNhbm5vdCB5ZXQgZGVjb2RlIERyYXdUaWxlZEltYWdlIik7CkBAIC0xOTUzLDcgKzIwMzAs
OCBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCpp
dGVtKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVj
dDoKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5v
dCB5ZXQgZGVjb2RlIEZpbGxSb3VuZGVkUmVjdCIpOworICAgICAgICBpZiAoYXV0byBpdGVtID0g
RmlsbFJvdW5kZWRSZWN0OjpkZWNvZGUoZGVjb2RlcikpCisgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX3JlZmVyZW5jZV9jYXN0PEl0ZW0+KFdURk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6CiAgICAgICAgIFdU
RkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29kZSBG
aWxsUmVjdFdpdGhSb3VuZGVkSG9sZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvSWNvbklPUy5tbQppbmRleCBhN2VlOWY2NmMwMDNkMDM5NWY4MTg4Mjc4YTQz
YmRjY2MwMTVhZWM4Li44MTM2YzFmZmY0NWI5YTMxNzdhOTY4YmI2ZjYyYjJkZjg5MDdkYTU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQpA
QCAtNjcsNyArNjcsNyBAQCB2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKICAgICBGbG9hdFNpemUgc2l6ZSh3aWR0aCwg
aGVpZ2h0KTsKICAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogCi0g
ICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25IaWdo
KTsKKyAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlv
blF1YWxpdHk6OkhpZ2gpOwogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5n
ZXQoKSwgc2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKaW5k
ZXggMzMzMjI5YjRjZTRhNDYzMTg3ODFlZDgwNjI4MTFlNzYzODk2YjBmNi4uN2QyY2VmZDYyNjFk
ZWUyYTM5YTg5ZDEwMTcwMmViNTAyNTJmNGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcApAQCAtNDQs
NyArNDQsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBw
ZXImLCBHcmFwaGljc0xheWVyKiBzb3VyY2VMYXllciwgYwogICAgICAgICByZXR1cm47CiAKICAg
ICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAg
IGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVmYXVs
dCk7CisgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRp
b25RdWFsaXR5OjpEZWZhdWx0KTsKICAgICBjb250ZXh0LnNldFRleHREcmF3aW5nTW9kZShUZXh0
TW9kZUZpbGwpOwogCiAgICAgSW50UmVjdCBzb3VyY2VSZWN0KHRhcmdldFJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHREaXJlY3QyRC5jcHAKaW5kZXggZjUzODcwZjJmNDE3NTkzYmE5NzM0NTA0Yjk1
OGQ2ZDIzMzg4NTViZC4uNDM0MDdmZDljMWNiMDVkMWI5ZmRiOTRiMDI1MGE5OWQ4Yjg3YWFmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNz
Q29udGV4dERpcmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC0xMDYyLDE5ICsxMDYyLDE5IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkoSW50ZXJwb2xhdGlvblF1YWxpdHkKICAgICBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERSBxdWFs
aXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfTkVBUkVTVF9ORUlHSEJPUjsKIAogICAgIHN3
aXRjaCAobW9kZSkgewotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAgY2FzZSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDoKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5U
RVJQT0xBVElPTl9NT0RFX05FQVJFU1RfTkVJR0hCT1I7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW50ZXJwb2xhdGlvbk5vbmU6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6Tm9u
ZToKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX05FQVJFU1RfTkVJ
R0hCT1I7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkxvdzoKKyAgICBj
YXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIHF1YWxpdHkgPSBEMkQxX0lO
VEVSUE9MQVRJT05fTU9ERV9MSU5FQVI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJw
b2xhdGlvbk1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW06CiAg
ICAgICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQzsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uSGlnaDoKKyAgICBjYXNlIEludGVycG9sYXRp
b25RdWFsaXR5OjpIaWdoOgogICAgICAgICBxdWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01P
REVfSElHSF9RVUFMSVRZX0NVQklDOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KaW5kZXggZDAxOTQ4OWRhOGJlY2FiNGE1
NTJmMGMwOTdjODQ1MjMyNjU1OTAyMy4uOTlhNTM0NzIyNzU0YzU4YzQwMWVkZGQ1MjcwN2JjMWRj
YzVkNmQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpA
QCAtNDcxLDE1ICs0NzEsMTUgQEAgLSAodm9pZClfdW5sb2NrRm9jdXNWaWV3SW5Db250ZXh0OihD
R0NvbnRleHRSZWYpY29udGV4dAogc3RhdGljIENHSW50ZXJwb2xhdGlvblF1YWxpdHkgdG9DR0lu
dGVycG9sYXRpb25RdWFsaXR5KFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkp
CiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0
aW9uRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpEZWZh
dWx0OgogICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpJbnRlcnBvbGF0aW9uTm9uZToKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRp
b25RdWFsaXR5OjpOb25lOgogICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbk5vbmU7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgV2ViQ29yZTo6SW50
ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAgICAgICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25M
b3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uTWVkaXVtOgorICAgIGNhc2UgV2Vi
Q29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1lZGl1bToKICAgICAgICAgcmV0dXJuIGtDR0lu
dGVycG9sYXRpb25NZWRpdW07Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uSGlnaDoK
KyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOgogICAgICAgICBy
ZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkhpZ2g7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDkxNjQ4NzNkNTgyNTFkMzJjODAw
OTJhMmZjNmY4Yzk2NGRkOWEyNzUuLjFjNjZhZDc5Y2U0MGMxNDU1OGY2NjUyNTJiMjVlM2JiN2Rl
ZDE2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAgSW1hZ2VCdWZmZXIq
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgaWYgKCFt
X2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1faW1hZ2VCdWZm
ZXItPmNvbnRleHQoKS5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25E
ZWZhdWx0KTsKKyAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCkuc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCk7CiAgICAgbV9pbWFnZUJ1
ZmZlci0+Y29udGV4dCgpLnNldFN0cm9rZVRoaWNrbmVzcygxKTsKIAogICAgIHJldHVybiBtX2lt
YWdlQnVmZmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lt
YWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdl
UXVhbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IDIwYjZhMWEyZmJmODMwYWFjYjkyNWFjNTQ0OTNj
MGVjNmYwODA2ZjAuLjhiNjNiNjg0YjYwZDc4ZDQxMTdiMmVmMWM1Y2Y3OTVkNmZlNjQ2MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbWFnZVF1YWxpdHlDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxl
ci5jcHAKQEAgLTEwMiwxMiArMTAyLDEyIEBAIE9wdGlvbmFsPEludGVycG9sYXRpb25RdWFsaXR5
PiBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjppbnRlcnBvbGF0aW9uUXVhbGl0eUZyb21TCiB7CiAg
ICAgc3dpdGNoIChzdHlsZS5pbWFnZVJlbmRlcmluZygpKSB7CiAgICAgY2FzZSBJbWFnZVJlbmRl
cmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7Cisg
ICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmc6OkNyaXNwRWRnZXM6CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6UGl4ZWxhdGVk
OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk5vbmU7CisgICAgICAgIHJldHVybiBJbnRl
cnBvbGF0aW9uUXVhbGl0eTo6Tm9uZTsKICAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpPcHRpbWl6
ZVF1YWxpdHk6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsgLy8gRklYTUU6
IENTUyAzIEltYWdlcyBzYXlzIHRoYXQgb3B0aW1pemVRdWFsaXR5IHNob3VsZCBiZWhhdmUgbGlr
ZSAnYXV0bycsIGJ1dCB0aGF0IHByZXZlbnRzIGF1dGhvcnMgZnJvbSBvdmVycmlkaW5nIHRoaXMg
bG93IHF1YWxpdHkgcmVuZGVyaW5nIGJlaGF2aW9yLgorICAgICAgICByZXR1cm4gSW50ZXJwb2xh
dGlvblF1YWxpdHk6OkRlZmF1bHQ7IC8vIEZJWE1FOiBDU1MgMyBJbWFnZXMgc2F5cyB0aGF0IG9w
dGltaXplUXVhbGl0eSBzaG91bGQgYmVoYXZlIGxpa2UgJ2F1dG8nLCBidXQgdGhhdCBwcmV2ZW50
cyBhdXRob3JzIGZyb20gb3ZlcnJpZGluZyB0aGlzIGxvdyBxdWFsaXR5IHJlbmRlcmluZyBiZWhh
dmlvci4KICAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpBdXRvOgogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC0xMTgsNyArMTE4LDcgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFsaXR5
Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3MKIHsKICAgICAv
LyBJZiB0aGUgaW1hZ2UgaXMgbm90IGEgYml0bWFwIGltYWdlLCB0aGVuIG5vbmUgb2YgdGhpcyBp
cyByZWxldmFudCBhbmQgd2UganVzdCBwYWludCBhdCBoaWdoIHF1YWxpdHkuCiAgICAgaWYgKCEo
aW1hZ2UuaXNCaXRtYXBJbWFnZSgpIHx8IGltYWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKSB8fCBj
b250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25E
ZWZhdWx0OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAK
ICAgICBpZiAoT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IHN0eWxlSW50ZXJwb2xhdGlv
biA9IGludGVycG9sYXRpb25RdWFsaXR5RnJvbVN0eWxlKG9iamVjdC0+c3R5bGUoKSkpCiAgICAg
ICAgIHJldHVybiBzdHlsZUludGVycG9sYXRpb24udmFsdWUoKTsKQEAgLTE0NywxMCArMTQ3LDEw
IEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUlu
dGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAgICAgICAgICAgICBzZXQob2JqZWN0LCBpbm5l
ck1hcCwgbGF5ZXIsIHNpemUpOwogICAgICAgICAgICAgcmVzdGFydFRpbWVyKCk7CiAgICAgICAg
ICAgICBtX2xpdmVSZXNpemVPcHRpbWl6YXRpb25Jc0FjdGl2ZSA9IHRydWU7Ci0gICAgICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0
aW9uUXVhbGl0eTo6TG93OwogICAgICAgICB9CiAgICAgICAgIGlmIChtX2xpdmVSZXNpemVPcHRp
bWl6YXRpb25Jc0FjdGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVs
dDsKKyAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAg
ICB9CiAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN1cnJlbnRUcmFuc2Zvcm0gPSBjb250
ZXh0LmdldENUTSgpOwpAQCAtMTU4LDIxICsxNTgsMjEgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkg
SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhp
Y3MKICAgICBpZiAoIWNvbnRleHRJc1NjYWxlZCAmJiBzaXplID09IGltYWdlU2l6ZSkgewogICAg
ICAgICAvLyBUaGVyZSBpcyBubyBzY2FsZSBpbiBlZmZlY3QuIElmIHdlIGhhZCBhIHNjYWxlIGlu
IGVmZmVjdCBiZWZvcmUsIHdlIGNhbiBqdXN0IHJlbW92ZSB0aGlzIG9iamVjdCBmcm9tIHRoZSBs
aXN0LgogICAgICAgICByZW1vdmVMYXllcihvYmplY3QsIGlubmVyTWFwLCBsYXllcik7Ci0gICAg
ICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9s
YXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAgIH0KIAogICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQg
dG8gaGFzaCBzY2FsZWQgaW1hZ2VzIHRoYXQgYWx3YXlzIHVzZSBsb3cgcXVhbGl0eSBtb2RlIHdo
ZW4gdGhlIHBhZ2UgZGVtYW5kcyBpdC4gVGhpcyBpcyB0aGUgaUNoYXQgY2FzZS4KICAgICBpZiAo
bV9yZW5kZXJWaWV3LnBhZ2UoKS5pbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlKCkp
IHsKICAgICAgICAgZG91YmxlIHRvdGFsUGl4ZWxzID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihpbWFn
ZS53aWR0aCgpKSAqIHN0YXRpY19jYXN0PGRvdWJsZT4oaW1hZ2UuaGVpZ2h0KCkpOwogICAgICAg
ICBpZiAodG90YWxQaXhlbHMgPiBjSW50ZXJwb2xhdGlvbkN1dG9mZikKLSAgICAgICAgICAgIHJl
dHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpMb3c7CiAgICAgfQogCiAgICAgLy8gSWYgYW4gYW5pbWF0ZWQgcmVzaXplIGlzIGFj
dGl2ZSwgcGFpbnQgaW4gbG93IHF1YWxpdHkgYW5kIGtpY2sgdGhlIHRpbWVyIGFoZWFkLgogICAg
IGlmIChtX2FuaW1hdGVkUmVzaXplSXNBY3RpdmUpIHsKICAgICAgICAgc2V0KG9iamVjdCwgaW5u
ZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICAgICAgcmVzdGFydFRpbWVyKCk7Ci0gICAgICAgIHJl
dHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxp
dHk6OkxvdzsKICAgICB9CiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSByZXNpemlu
ZyB0aGlzIGltYWdlLCBvciBpdHMgc2l6ZSBpcyB0aGUKICAgICAvLyBzYW1lIGFzIHRoZSBsYXN0
IHJlc2l6ZSwgZHJhdyBhdCBoaWdoIHJlcywgYnV0IHJlY29yZCB0aGUgcGFpbnQKQEAgLTE4MCwx
MyArMTgwLDEzIEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6
OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAgICAgaWYgKGlzRmlyc3RSZXNp
emUgfHwgb2xkU2l6ZSA9PSBzaXplKSB7CiAgICAgICAgIHJlc3RhcnRUaW1lcigpOwogICAgICAg
ICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwotICAgICAgICByZXR1cm4gSW50
ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6
RGVmYXVsdDsKICAgICB9CiAgICAgLy8gSWYgdGhlIHRpbWVyIGlzIG5vIGxvbmdlciBhY3RpdmUs
IGRyYXcgYXQgaGlnaCBxdWFsaXR5IGFuZCBkb24ndAogICAgIC8vIHNldCB0aGUgdGltZXIuCiAg
ICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAgcmVtb3ZlTGF5ZXIob2JqZWN0
LCBpbm5lck1hcCwgbGF5ZXIpOwotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAg
ICAgLy8gVGhpcyBvYmplY3QgaGFzIGJlZW4gcmVzaXplZCB0byB0d28gZGlmZmVyZW50IHNpemVz
IHdoaWxlIHRoZSB0aW1lcgogICAgIC8vIGlzIGFjdGl2ZSwgc28gZHJhdyBhdCBsb3cgcXVhbGl0
eSwgc2V0IHRoZSBmbGFnIGZvciBhbmltYXRlZCByZXNpemVzIGFuZApAQCAtMTk0LDcgKzE5NCw3
IEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUlu
dGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAgICAgc2V0KG9iamVjdCwgaW5uZXJNYXAsIGxh
eWVyLCBzaXplKTsKICAgICBtX2FuaW1hdGVkUmVzaXplSXNBY3RpdmUgPSB0cnVlOwogICAgIHJl
c3RhcnRUaW1lcigpOwotICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCBiMmM0OWE2NjY2NTRhMTQxMzhjODI2NjZiZmU4Y2FlZmJk
NWRmZTdlLi5kN2M5MTZjZTY0NmJkYjdlZWVlODUwNTFiNGM1ODM4MjNjOTZiZjJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTY0OCw3ICs2NDgsNyBAQCBJ
bWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAgICAgICBpbWFnZUVsZW1lbnQgPyBpbWFnZUVsZW1l
bnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwK
ICAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKICAg
ICAgICAgaW1hZ2VPcmllbnRhdGlvbigpLAotICAgICAgICBpbWFnZSA/IGNob29zZUludGVycG9s
YXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNp
emUocmVjdC5zaXplKCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0CisgICAgICAgIGltYWdlID8g
Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQoKSwgKmltYWdlLCBp
bWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRl
ZmF1bHQKICAgICB9OwogCiAgICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRleHQo
KS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA3MTMyZTg4YjQyOTQ1ODhhN2Q0ZmY4
OTdiYTM4OWU5MmRjYjM1NDM4Li5lNWRiNDI0YjVmNmExYWY3ZmQyNjIxNmMzOGVkMjEyY2MwYTc2
NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlRGV0YWlscy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9FdmVudFRyYWNraW5nUmVnaW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRp
b25zLmg+CkBAIC0xMTQzLDYgKzExNDQsMTggQEAgc3RhdGljIGJvb2wgZGVjb2RlT3B0aW9uYWxJ
bWFnZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8SW1hZ2U+JiBpbWFnZSkKICAgICByZXR1cm4g
ZGVjb2RlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8RGlz
cGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERp
c3BsYXlMaXN0OjpJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCit7CisgICAgZW5jb2RlT3B0aW9u
YWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQoKSk7Cit9CisKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgRGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICBpZiAo
IWRlY29kZU9wdGlvbmFsSW1hZ2UoZGVjb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDYwNmRiY2E4ZTMyNmIxZDRmOTgyMmRkYTkzYjc4
YzgxZDFiZTQ0MzIuLjIzNWQ1ZTkyMmFlYTQyNzg1ODRjNDdkZjE1MGIyMDlhYjM0YmMzYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xODks
OCArMTg5LDEzIEBAIG5hbWVzcGFjZSBET01DYWNoZUVuZ2luZSB7CiBzdHJ1Y3QgQ2FjaGVJbmZv
Owogc3RydWN0IFJlY29yZDsKIH0KKworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIElt
YWdlSGFuZGxlOwogfQogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIG5hbWVzcGFjZSBJUEMg
ewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybT4gewpAQCAtMzgzLDYgKzM4OCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkN1cnNvcj4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT4geworICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SW1hZ2VIYW5kbGUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMDVkMDNlMDEy
NDg3OTJjY2VmNTdmOWU3NWRhZTgwMDQ5MmRmNjRkYi4uZTMyMWNlOGUxMTlkYjQ2MDllMTJmMWNi
MGJhYTc5MGIxZTBkNjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC01NzksNyArNTc5LDcgQEAgKyAodm9pZClpbml0aWFs
aXplCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6LTEuMGZdLCBXZWJLaXRNYXhQ
YXJzZUR1cmF0aW9uUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd011bHRp
RWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1pc3Npb25QcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8s
IFdlYktpdEFsd2F5c1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25QcmVmZXJlbmNlS2V5LAot
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpJbnRlcnBvbGF0aW9uTG93XSwgV2ViS2l0
SW50ZXJwb2xhdGlvblF1YWxpdHlQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEludDpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93XSwgV2ViS2l0SW50ZXJwb2xhdGlv
blF1YWxpdHlQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBXZWJLaXRQYXNzd29yZEVjaG9F
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhGbG9hdDoy
LjBmXSwgV2ViS2l0UGFzc3dvcmRFY2hvRHVyYXRpb25QcmVmZXJlbmNlS2V5LAogICAgICAgICBA
Tk8sIFdlYktpdE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385093</attachid>
            <date>2019-12-07 03:59:03 -0800</date>
            <delta_ts>2019-12-07 04:24:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204881-20191207035902.patch</filename>
            <type>text/plain</type>
            <size>45845</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMjk5OWJjNmVlMDAy
NjFkMjExOGNmZGQ2ZTY1NTVkYWRjODFhZi4uZjAxYWRlNWExMGFlZWM0MjE3YTJhNGQxZmIxYWRj
ZDc3ZGE2YmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTA1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZyBmb3IgRHJhd0ltYWdlIGFuZCBEcmF3Um91bmRlZFJlY3QgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgTWFrZSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBhbiBlbnVtIGNsYXNzLgorICAgICAgICBNYWtlIEltYWdlUGFp
bnRpbmdPcHRpb25zIGFuZCBhbGwgb2YgaXRzIGNoaWxkcmVuIGVuY29kYWJsZS4KKyAgICAgICAg
TWFrZSBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVkUmVjdCBlbmNvZGFibGUuCisgICAgICAgIEFk
ZCBJbWFnZUhhbmRsZSwgd2hpY2ggcmlnaHQgbm93IGp1c3Qgd3JhcHMgV2ViQ29yZTo6SW1hZ2Us
IGJ1dAorICAgICAgICBsYXRlciBjb3VsZCBjYXJyeSBpZGVudGlmaWVycy4gVGhpcyBhbGxvd3Mg
dXMgdG8gaW1wbGVtZW50IGltYWdlIGVuY29kaW5nCisgICAgICAgIGluIFdlYktpdCBjb2RlLCB3
aGljaCBjYW4gdGhlbiB1c2UgU2hhcmVhYmxlQml0bWFwIHRvIEEpIGRlY29kZSB0aGUgaW1hZ2UK
KyAgICAgICAgaW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgYW5kIEIpIHVzZSBzaGFyZWQgbWVt
b3J5IHRvIHRyYW5zbWl0IHRoZQorICAgICAgICBkZWNvZGVkIGltYWdlIGRhdGEgdG8gdGhlIEdQ
VSBwcm9jZXNzLgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNwcDoKKyAgICAgICAgKiBo
dG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXI6OkludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVBhaW50aW5nT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnM6OkltYWdlUGFpbnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2Fpcm86OmRyYXdTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW50ZXJw
b2xhdGlvblF1YWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tOgorICAgICAgICAodG9DR0ludGVycG9sYXRpb25R
dWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1
ZmZlciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6aW50ZXJwb2xh
dGlvblF1YWxpdHlGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29u
dHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJ
bnRvUmVjdCk6CisKIDIwMTktMTItMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgRHJhZ0NvbnRyb2xsZXI6OmNsaWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFlNWFiYjQ2ZDdhOTE2NmJiZjg5ZmYxZDU0NDg0ZGZmMDhlYjdmNTQuLjc3M2E4ZTMw
ZDUwY2E3NGQ2NWE1MjIzZDg0ZTBiNjRkMGJiYjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMTItMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IGVuY29kaW5nIGZvciBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVk
UmVjdCBkaXNwbGF5IGxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKIDIw
MTktMTItMDMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgZGlzYWJsZWQgaGlnaGxpZ2h0IEFQSSBza2VsZXRvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGEzMmFkZjdjMTQ1MDMwYTE5MDE4YmE4NTU0MTYzNGZiMzYxOGRiMDAu
LjcxMjAwNjYwMjllYjMwZGQ5MGU1OWU2MTM4MmE2OGM1NzcyNDE5ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNyAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZW5jb2Rpbmcg
Zm9yIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5kZWRSZWN0IGRpc3BsYXkgbGlzdCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgor
CiAyMDE5LTEyLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGRpc2FibGVkIGhpZ2hsaWdodCBBUEkgc2tlbGV0b24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwCmluZGV4IDhkMzcwMDQ5ZTlhZDgyNDRmM2Q0OWIzYTNkYzJlZGMxY2Iy
ZDI1MWQuLjEyMmY0ZTQwZGU2ZjdkOTU3NTViMjIxMWFlZGU4Y2FhMTAxMTU1NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgVVNFKENHKQogLy8gRklYTUU6IEl0IHNlZW1zIHN0cmFuZ2UgdGhhdCB0aGUgZGVm
YXVsdCBxdWFsaXR5IGlzIG5vdCB0aGUgb25lIHRoYXQgaXMgbGl0ZXJhbGx5IG5hbWVkICJkZWZh
dWx0Ii4KIC8vIFNob3VsZCBmaXggbmFtZXMgdG8gbWFrZSB0aGlzIGVhc2llciB0byB1bmRlcnN0
YW5kLCBvciB3cml0ZSBhbiBleGNlbGxlbnQgY29tbWVudCBoZXJlIGV4cGxhaW5pbmcgd2h5IG5v
dC4KLWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0
eSA9IEludGVycG9sYXRpb25Mb3c7Citjb25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0
SW50ZXJwb2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogI2Vsc2UK
LWNvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
IEludGVycG9sYXRpb25EZWZhdWx0OworY29uc3QgSW50ZXJwb2xhdGlvblF1YWxpdHkgZGVmYXVs
dEludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAj
ZW5kaWYKIAogQ2FudmFzQmFzZTo6Q2FudmFzQmFzZShJbnRTaXplIHNpemUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDAxMzUzMWJhMTA5NGVkMmI1ZTNhNDM4ZjEwN2VlZGFk
NTAzNDU5ZWMuLjVmNDlmNzM5YTFmNWMzYmUwZWUxNzFmMzRmOTYzZTAyNjZiYzQ0OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC0yMDYsMTYgKzIwNiwxNiBAQCBzdGF0aWMg
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5
KEltYWdlQml0bWFwT3B0aQogewogICAgIHN3aXRjaCAocmVzaXplUXVhbGl0eSkgewogICAgIGNh
c2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5OjpQaXhlbGF0ZWQ6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpEb05vdEludGVycG9sYXRlOwogICAgIGNhc2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpS
ZXNpemVRdWFsaXR5OjpMb3c6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsg
Ly8gTG93IGlzIHRoZSBkZWZhdWx0LgorICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxp
dHk6OkRlZmF1bHQ7IC8vIExvdyBpcyB0aGUgZGVmYXVsdC4KICAgICBjYXNlIEltYWdlQml0bWFw
T3B0aW9uczo6UmVzaXplUXVhbGl0eTo6TWVkaXVtOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xh
dGlvbk1lZGl1bTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW07
CiAgICAgY2FzZSBJbWFnZUJpdG1hcE9wdGlvbnM6OlJlc2l6ZVF1YWxpdHk6OkhpZ2g6Ci0gICAg
ICAgIHJldHVybiBJbnRlcnBvbGF0aW9uSGlnaDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRp
b25RdWFsaXR5OjpIaWdoOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0OwogfQogCiAvLyBGSVhNRTogTW9yZSBzdGVwcyBmcm9tIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2ltYWdlYml0bWFwLWFuZC1hbmltYXRpb25zLmh0
bWwjY3JvcHBlZC10by10aGUtc291cmNlLXJlY3RhbmdsZS13aXRoLWZvcm1hdHRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAKaW5kZXggOTI4Mjg4NDU2YjM1ODIxNGYzZmRlMWU1YzAyNDgxYmU5NWRl
ODg5My4uOTcyNzc0M2FhZmRkZTEwMzRjMDBiYjhiMzM2NDBiMzllMmE3NWY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAKQEAgLTIyODgsMTUgKzIyODgsMTUgQEAgc3RhdGljIGlubGluZSBJbnRl
cnBvbGF0aW9uUXVhbGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRpb25RdWFsaXR5KEltYWdlU21v
b3RoaW4KIHsKICAgICBzd2l0Y2ggKHF1YWxpdHkpIHsKICAgICBjYXNlIEltYWdlU21vb3RoaW5n
UXVhbGl0eTo6TG93OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAg
cmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgY2FzZSBJbWFnZVNtb290aGlu
Z1F1YWxpdHk6Ok1lZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07Cisg
ICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2UgSW1h
Z2VTbW9vdGhpbmdRdWFsaXR5OjpIaWdoOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkhp
Z2g7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsK
KyAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKIH07CiAKIGF1dG8gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6aW1hZ2VTbW9vdGhpbmdRdWFsaXR5KCkgY29uc3QgLT4g
SW1hZ2VTbW9vdGhpbmdRdWFsaXR5CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZW5hYmxl
ZDsKICAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoYykKLSAgICAgICAg
Yy0+c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShlbmFibGVkID8gc21vb3RoaW5nVG9JbnRl
cnBvbGF0aW9uUXVhbGl0eShzdGF0ZSgpLmltYWdlU21vb3RoaW5nUXVhbGl0eSkgOiBJbnRlcnBv
bGF0aW9uTm9uZSk7CisgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoZW5h
YmxlZCA/IHNtb290aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFnZVNtb290
aGluZ1F1YWxpdHkpIDogSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGUpOwog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnNldFBhdGgoUGF0aDJEJiBw
YXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2Rp
bmdPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09w
dGlvbnMuaAppbmRleCBmM2EwYjQ3OWUyNTljZWQ4MWQ0MTIzMjBmMTk4ODg0YjFjNzkzMmNkLi44
NDkzZDNhNTQ2NmY4MTdhNjQzMGI3NzVmNzQxY2E1NTVmOWZlODFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaApAQCAtMjYsMTIg
KzI2LDEzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUg
PHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBEZWNv
ZGluZ01vZGUgeworZW51bSBjbGFzcyBEZWNvZGluZ01vZGUgOiB1aW50OF90IHsKICAgICBBdXRv
LAogICAgIFN5bmNocm9ub3VzLAogICAgIEFzeW5jaHJvbm91cwpAQCAtMTQ0LDQgKzE0NSwxNyBA
QCBwcml2YXRlOgogICAgIERlY29kaW5nTW9kZU9yU2l6ZSBtX2RlY29kaW5nTW9kZU9yU2l6ZTsK
IH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGVjb2RpbmdNb2RlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpEZWNvZGluZ01vZGUsCisg
ICAgV2ViQ29yZTo6RGVjb2RpbmdNb2RlOjpBdXRvLAorICAgIFdlYkNvcmU6OkRlY29kaW5nTW9k
ZTo6U3luY2hyb25vdXMsCisgICAgV2ViQ29yZTo6RGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDIyNWFiYWFiZThhYTJh
OGFlYWVlMWE1MmM2MTZhMjk4ZjFlMjAwYjEuLmIxNWZmZmNhN2MwM2U5Yzk2OTZhZmIwM2JhNGJi
YTZlNjRhZDIzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCkBAIC0xOTYsNyArMTk2LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlIHsKICAgICBmbG9hdCBhbHBoYSB7IDEgfTsKICAgICBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAg
ICAgQmxlbmRNb2RlIGJsZW5kTW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFsIH07Ci0gICAgSW50ZXJw
b2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVycG9sYXRpb25E
ZWZhdWx0IH07CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eSB7IEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0IH07CiAKICAgICBib29sIHNob3Vs
ZEFudGlhbGlhcyA6IDE7CiAgICAgYm9vbCBzaG91bGRTbW9vdGhGb250cyA6IDE7CkBAIC02OTks
NyArNjk5LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEludGVycG9sYXRpb25RdWFsaXR5TWFp
bnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgSW50ZXJwb2xhdGlvblF1
YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHlUb1VzZSkKICAgICAgICAgOiBtX2dyYXBoaWNzQ29u
dGV4dChncmFwaGljc0NvbnRleHQpCiAgICAgICAgICwgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1
YWxpdHkoZ3JhcGhpY3NDb250ZXh0LmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSkKLSAgICAg
ICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlZChpbnRlcnBvbGF0aW9uUXVhbGl0eVRv
VXNlICE9IEludGVycG9sYXRpb25EZWZhdWx0ICYmIG1fY3VycmVudEludGVycG9sYXRpb25RdWFs
aXR5ICE9IGludGVycG9sYXRpb25RdWFsaXR5VG9Vc2UpCisgICAgICAgICwgbV9pbnRlcnBvbGF0
aW9uUXVhbGl0eUNoYW5nZWQoaW50ZXJwb2xhdGlvblF1YWxpdHlUb1VzZSAhPSBJbnRlcnBvbGF0
aW9uUXVhbGl0eTo6RGVmYXVsdCAmJiBtX2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBp
bnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKQogICAgIHsKICAgICAgICAgaWYgKG1faW50ZXJwb2xh
dGlvblF1YWxpdHlDaGFuZ2VkKQogICAgICAgICAgICAgbV9ncmFwaGljc0NvbnRleHQuc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAppbmRleCAy
Y2U2YjBjYmEwMDBjOTE2ZjFhNGRhNDcyNDUyOTkzZWY0YzkwNTUzLi41OTgzZDI2OTllZDM2OWIw
MWY3NWEwNWZkZjU0NDU0ZDVjODdmZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCkBAIC03OSwxMiArNzksMTIgQEAgZW51bSBHcmFk
aWVudFNwcmVhZE1ldGhvZCB7CiAgICAgU3ByZWFkTWV0aG9kUmVwZWF0CiB9OwogCi1lbnVtIElu
dGVycG9sYXRpb25RdWFsaXR5IHsKLSAgICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwKLSAgICBJbnRl
cnBvbGF0aW9uTm9uZSwKLSAgICBJbnRlcnBvbGF0aW9uTG93LAotICAgIEludGVycG9sYXRpb25N
ZWRpdW0sCi0gICAgSW50ZXJwb2xhdGlvbkhpZ2gKK2VudW0gY2xhc3MgSW50ZXJwb2xhdGlvblF1
YWxpdHkgOiB1aW50OF90IHsKKyAgICBEZWZhdWx0LAorICAgIERvTm90SW50ZXJwb2xhdGUsCisg
ICAgTG93LAorICAgIE1lZGl1bSwKKyAgICBIaWdoCiB9OwogCiBlbnVtIExpbmVDYXAgewpAQCAt
MTMzLDEzICsxMzMsMTMgQEAgZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHsKICAg
ICBVbnByZW11bHRpcGxpZWQKIH07CiAKLVN0cmluZyBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Ci1TdHJpbmcgYmxlbmRNb2RlTmFtZShCbGVuZE1v
ZGUpOwotYm9vbCBwYXJzZUJsZW5kTW9kZShjb25zdCBTdHJpbmcmLCBCbGVuZE1vZGUmKTsKLWJv
b2wgcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKGNvbnN0IFN0cmluZyYsIENvbXBvc2l0
ZU9wZXJhdG9yJiwgQmxlbmRNb2RlJik7CitTdHJpbmcgY29tcG9zaXRlT3BlcmF0b3JOYW1lKFdl
YkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3JlOjpCbGVuZE1vZGUpOworU3RyaW5nIGJs
ZW5kTW9kZU5hbWUoV2ViQ29yZTo6QmxlbmRNb2RlKTsKK2Jvb2wgcGFyc2VCbGVuZE1vZGUoY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6QmxlbmRNb2RlJik7Citib29sIHBhcnNlQ29tcG9zaXRlQW5k
QmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvciYs
IFdlYkNvcmU6OkJsZW5kTW9kZSYpOwogCi1XRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQmxlbmRNb2RlKTsKLVdFQkNPUkVfRVhQT1JU
IFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDb21wb3NpdGVP
cGVyYXRvcik7CitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RG
OjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKK1dFQkNPUkVfRVhQT1JUIFdURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXZWJDb3JlOjpDb21wb3Np
dGVPcGVyYXRvcik7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgV2luZFJ1bGUpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVDYXApOwogV0VCQ09SRV9FWFBP
UlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVKb2lu
KTsKQEAgLTE5Myw0ICsxOTMsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpCbGVuZE1vZGU+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHksCisgICAgV2Vi
Q29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQsCisgICAgV2ViQ29yZTo6SW50ZXJw
b2xhdGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGUsCisgICAgV2ViQ29yZTo6SW50ZXJwb2xh
dGlvblF1YWxpdHk6OkxvdywKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVk
aXVtLAorICAgIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoCisgICAgPjsKK307
CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCmluZGV4IDU1OWU1YjNhNjU3ZDFmODg0N2M0MTk3
ODcxNTcwYjA1ODk0NzUxNTQuLmQ5OTBhM2RjNTU1ZmNkZGI2MTM3NGRiN2QwY2Q3NWRhOGRmNDk4
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3Jp
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9y
bS5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIxLDMgKzEyMiwyMiBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRh
dGlvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6SW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24sCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9u
OjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdCwKKyAgICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0
aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQsCisgICAgV2ViQ29yZTo6SW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0LAorICAgIFdlYkNvcmU6Oklt
YWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0LAorICAgIFdlYkNv
cmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wLAorICAgIFdl
YkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcCwKKyAg
ICBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0
b20sCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpbkxl
ZnRCb3R0b20KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaApp
bmRleCBkZWE3ZDJhNTM1MzNlYmJiMDZkMGNjOTYyNDVhMThhY2M1MWI4YmUwLi44OTc4ZTZhZjcx
MmU4M2NkNjcwOGFhMzNmYjVjMjU0ZmZjNDJiMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKQEAgLTM4LDEx
ICszOCwxMSBAQCBzdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnMgewogICAgICAgICBzZXRPcHRp
b24ob3B0aW9ucy4uLik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gT3ZlcnJy
aWRlcz4KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3RoZXIsIE92ZXJycmlkZXMuLi4gb3ZlcnJyaWRlcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBPdmVycmlkZXM+CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG90aGVyLCBPdmVycmlkZXMuLi4gb3ZlcnJpZGVzKQogICAgICAgICA6IElt
YWdlUGFpbnRpbmdPcHRpb25zKG90aGVyKQogICAgIHsKLSAgICAgICAgc2V0T3B0aW9uKG92ZXJy
cmlkZXMuLi4pOworICAgICAgICBzZXRPcHRpb24ob3ZlcnJpZGVzLi4uKTsKICAgICB9CiAKICAg
ICBJbWFnZVBhaW50aW5nT3B0aW9ucygpID0gZGVmYXVsdDsKQEAgLTU0LDYgKzU0LDkgQEAgc3Ry
dWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogICAgIEludGVycG9sYXRpb25R
dWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnBvbGF0
aW9uUXVhbGl0eTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToK
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lLi4uIFJlc3Q+CiAgICAgdm9p
ZCBzZXRPcHRpb24oRmlyc3QgZmlyc3QsIFJlc3QuLi4gcmVzdCkKQEAgLTczLDcgKzc2LDQ4IEBA
IHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRNb2RlOjpOb3JtYWwg
fTsKICAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGluZ01vZGU6OlN5bmNo
cm9ub3VzIH07CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uIHsgSW1hZ2VPcmll
bnRhdGlvbjo6Tm9uZSB9OwotICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlv
blF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworICAgIEludGVycG9sYXRpb25RdWFs
aXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVs
dCB9OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSW1hZ2VQYWludGluZ09w
dGlvbnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bV9jb21wb3NpdGVPcGVyYXRvcjsKKyAgICBlbmNvZGVyIDw8IG1fYmxlbmRNb2RlOworICAgIGVu
Y29kZXIgPDwgbV9kZWNvZGluZ01vZGU7CisgICAgZW5jb2RlciA8PCBJbWFnZU9yaWVudGF0aW9u
OjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKKyAgICBlbmNvZGVyIDw8IG1faW50ZXJwb2xh
dGlvblF1YWxpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxJbWFn
ZVBhaW50aW5nT3B0aW9ucz4gSW1hZ2VQYWludGluZ09wdGlvbnM6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdG9yPiBjb21wb3NpdGVPcGVy
YXRvcjsKKyAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOworICAgIGlmICghY29tcG9z
aXRlT3BlcmF0b3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsKKyAgICBkZWNvZGVyID4+IGJsZW5kTW9kZTsKKyAgICBp
ZiAoIWJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPERlY29kaW5nTW9kZT4gZGVjb2RpbmdNb2RlOworICAgIGRlY29kZXIgPj4gZGVjb2RpbmdN
b2RlOworICAgIGlmICghZGVjb2RpbmdNb2RlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24+IG9yaWVudGF0
aW9uOworICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmllbnRhdGlvbikK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEludGVycG9sYXRp
b25RdWFsaXR5PiBpbnRlcnBvbGF0aW9uUXVhbGl0eTsKKyAgICBkZWNvZGVyID4+IGludGVycG9s
YXRpb25RdWFsaXR5OworICAgIGlmICghaW50ZXJwb2xhdGlvblF1YWxpdHkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gSW1hZ2VQYWludGluZ09wdGlvbnMgeyAq
Y29tcG9zaXRlT3BlcmF0b3IsICpibGVuZE1vZGUsICpkZWNvZGluZ01vZGUsICpvcmllbnRhdGlv
biwgKmludGVycG9sYXRpb25RdWFsaXR5IH07Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4
IDNiNzBlNzY2MzllNTk0MGFmMWYyYjFkNWJmMjY3M2FlMzJkZWNhMTAuLjBjZThjZWI0OGJkNzg4
Y2ViMTlhYTlkZDg5N2Y5Mjk5ZGVhYmRkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtODU5LDcg
Kzg1OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvCiAgICAgICAgIGNvbnRleHQuc2F2ZSgp
OwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0Lmhl
aWdodCgpKTsKICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMS4wZiwgLTEuMGYpKTsK
LSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRp
b25Mb3cpOworICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50
ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7CiAgICAgICAgIEZsb2F0UmVjdCBwYWludFJlY3QoRmxv
YXRQb2ludCgpLCByZWN0LnNpemUoKSk7CiAjaWYgVVNFKERJUkVDVDJEKQogICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggODQyMTEyMzc0YTVkNmE4
MTViOGM3NmRhNGUwZjkzMDVhNTRmYjFlYi4uZjhjZWI5NTI1M2ZmOWI3ZjMwNDViMDUxYTczOGI3
NjViN2E5ZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNTQ3LDcgKzE1NDcsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdl
R2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dAogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3Qu
eCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LnNjYWxlKEZs
b2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKICAgICAgICAg
SW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCBy
ZWN0LmhlaWdodCgpKSk7CiAgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJl
Y3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5k
ZXggN2UzZDc0NDBkMjYwN2JjNmUxNWMyYjMxNmIwYmQyYmMxZjIwZGYzNy4uYmUwYzVhMzliNzcw
ODdiMWFkMjg5NWRiNGNiNDU5ZTg2ZTBmNjdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC05
MzYsMTUgKzkzNiwxNSBAQCB2b2lkIGRyYXdTdXJmYWNlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBw
bGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZQogICAgIFJlZlB0cjxjYWly
b19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jf
c3VyZmFjZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgc3dpdGNoIChpbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KSB7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9uZToKLSAgICBjYXNl
IEludGVycG9sYXRpb25Mb3c6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RG9Ob3RJ
bnRlcnBvbGF0ZToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAg
IGNhaXJvX3BhdHRlcm5fc2V0X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfRkFT
VCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICBj
YXNlIEludGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6
Ok1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgogICAgICAg
ICBjYWlyb19wYXR0ZXJuX3NldF9maWx0ZXIocGF0dGVybi5nZXQoKSwgQ0FJUk9fRklMVEVSX0dP
T0QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNh
c2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g6CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fc2V0
X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfQkVTVCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKaW5kZXggM2FmYWEwYWIwMWQ0YTQwYzJkYjE1
OWZmNDkyOWEwYzRiYThjMTExMC4uNDE4YmYzNWI5Mjk3MzFiYjNmOTM5MjczYmQ5MWFkODY4ZmY0
YTYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdl
UGl4ZWxzLCBjb25zdCBJbgogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cihjb250ZXh0KTsKICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNv
bnRleHQudHJhbnNsYXRlKDAsIC1pbWFnZVNpemUuaGVpZ2h0KCkpOwotICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CisgICAgY29udGV4
dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpEb05v
dEludGVycG9sYXRlKTsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShjZ0ltYWdlLCBpbWFn
ZVNpemUsIGNhbnZhc1JlY3QsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSksIHsg
Q29tcG9zaXRlT3BlcmF0b3I6OkNvcHkgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCAy
ZGYyZTU0MzI0OWZkZGRmNTNlZjhmMThlYzc5MzgwY2ZlNDdhOTc3Li40OTZlY2EzMjRkM2U0ZGEy
MmZjYTU5OTk4ZWI1ZWY1ZWU3M2QyMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNDMsMTcg
KzE0MywxNyBAQCBzdGF0aWMgSW50ZXJwb2xhdGlvblF1YWxpdHkgY29udmVydEludGVycG9sYXRp
b25RdWFsaXR5KENHSW50ZXJwb2xhdGlvblF1YWxpdHkgcQogewogICAgIHN3aXRjaCAocXVhbGl0
eSkgewogICAgIGNhc2Uga0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5
OjpEZWZhdWx0OwogICAgIGNhc2Uga0NHSW50ZXJwb2xhdGlvbk5vbmU6Ci0gICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5
OjpEb05vdEludGVycG9sYXRlOwogICAgIGNhc2Uga0NHSW50ZXJwb2xhdGlvbkxvdzoKLSAgICAg
ICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
UXVhbGl0eTo6TG93OwogICAgIGNhc2Uga0NHSW50ZXJwb2xhdGlvbk1lZGl1bToKLSAgICAgICAg
cmV0dXJuIEludGVycG9sYXRpb25NZWRpdW07CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
UXVhbGl0eTo6TWVkaXVtOwogICAgIGNhc2Uga0NHSW50ZXJwb2xhdGlvbkhpZ2g6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uSGlnaDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25R
dWFsaXR5OjpIaWdoOwogICAgIH0KLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7Cisg
ICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogfQogCiBzdGF0aWMgQ0dC
bGVuZE1vZGUgc2VsZWN0Q0dCbGVuZE1vZGUoQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCkBAIC0xNjY3LDE5ICsxNjY3LDE5IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50
ZXJwb2xhdGlvblF1YWxpdHkKIAogICAgIENHSW50ZXJwb2xhdGlvblF1YWxpdHkgcXVhbGl0eSA9
IGtDR0ludGVycG9sYXRpb25EZWZhdWx0OwogICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2Ug
SW50ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVm
YXVsdDoKICAgICAgICAgcXVhbGl0eSA9IGtDR0ludGVycG9sYXRpb25EZWZhdWx0OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25Ob25lOgorICAgIGNhc2UgSW50ZXJwb2xh
dGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGU6CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRl
cnBvbGF0aW9uTm9uZTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTG93
OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAgICAgICAgcXVhbGl0eSA9
IGtDR0ludGVycG9sYXRpb25Mb3c7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xh
dGlvbk1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW06CiAgICAg
ICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEludGVycG9sYXRpb25IaWdoOgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6
OkhpZ2g6CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uSGlnaDsKICAgICAgICAg
YnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDkx
Y2JiOWZlZjJmMjNmNjA5Mjg2M2MwMjQwZmU3M2VkZGNkMzI1YjQuLjc2NDc3OTMzOTBhMzg5ZTQz
ODUxZWRkNWY4ZTYxY2QwMzJhM2U4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKQEAgLTQ5Miw2ICs0OTIsOCBAQCBEcmF3SW1hZ2U6OkRyYXdJbWFnZShJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdAogewogfQog
CitEcmF3SW1hZ2U6On5EcmF3SW1hZ2UoKSA9IGRlZmF1bHQ7CisKIHZvaWQgRHJhd0ltYWdlOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5kcmF3
SW1hZ2UobV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV9zb3VyY2UsIG1faW1hZ2VQYWlu
dGluZ09wdGlvbnMpOwpAQCAtODc2LDYgKzg3OCwxNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmlsbENvbXBvc2l0ZWRSZWN0JiBpdGVtKQog
ICAgIHJldHVybiB0czsKIH0KIAorRmlsbFJvdW5kZWRSZWN0OjpGaWxsUm91bmRlZFJlY3QoY29u
c3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUg
YmxlbmRNb2RlKQorICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdCkK
KyAgICAsIG1fcmVjdChyZWN0KQorICAgICwgbV9jb2xvcihjb2xvcikKKyAgICAsIG1fYmxlbmRN
b2RlKGJsZW5kTW9kZSkKK3sKK30KKworRmlsbFJvdW5kZWRSZWN0Ojp+RmlsbFJvdW5kZWRSZWN0
KCkgPSBkZWZhdWx0OworCiB2b2lkIEZpbGxSb3VuZGVkUmVjdDo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIGNvbnRleHQuZmlsbFJvdW5kZWRSZWN0KG1fcmVj
dCwgbV9jb2xvciwgbV9ibGVuZE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
aW5kZXggZGM0MmZmZWFlZWFhMGE0NTVmZDA4N2E4NDU1MGE5ZjM1Zjg4ZDg2Ny4uNTUxYWMxMTMw
MzI4MmI3OTc4NjIyMjhiNzY4MTIyMTk5MTJkZDBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCkBAIC03NDEsMTIgKzc0MSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMpKTsKICAgICB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5E
cmF3SW1hZ2UoKTsKKwogICAgIGNvbnN0IEltYWdlJiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2UuZ2V0KCk7IH0KICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2U7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rl
c3RpbmF0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFJlZjxEcmF3SW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgotICAgIERy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOworICAgIFdFQkNPUkVf
RVhQT1JUIERyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiAg
ICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNzU4
LDYgKzc2Myw0OSBAQCBwcml2YXRlOgogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1faW1hZ2VQ
YWludGluZ09wdGlvbnM7CiB9OwogCitjbGFzcyBJbWFnZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
UmVmUHRyPEltYWdlPiBpbWFnZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IERyYXdJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgSW1hZ2VI
YW5kbGUgaW1hZ2VIYW5kbGU7CisgICAgaW1hZ2VIYW5kbGUuaW1hZ2UgPSBtX2ltYWdlLnB0cigp
OworCisgICAgZW5jb2RlciA8PCBpbWFnZUhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGlu
YXRpb247CisgICAgZW5jb2RlciA8PCBtX3NvdXJjZTsKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VQ
YWludGluZ09wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxS
ZWY8RHJhd0ltYWdlPj4gRHJhd0ltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBPcHRpb25hbDxJbWFnZUhhbmRsZT4gaW1hZ2VIYW5kbGU7CisgICAgZGVjb2RlciA+PiBpbWFn
ZUhhbmRsZTsKKyAgICBpZiAoIWltYWdlSGFuZGxlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBkZXN0aW5hdGlvbjsKKyAgICBkZWNvZGVy
ID4+IGRlc3RpbmF0aW9uOworICAgIGlmICghZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IHNvdXJjZTsKKyAgICBkZWNv
ZGVyID4+IHNvdXJjZTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIE9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBpbWFnZVBhaW50aW5n
T3B0aW9uczsKKyAgICBkZWNvZGVyID4+IGltYWdlUGFpbnRpbmdPcHRpb25zOworICAgIGlmICgh
aW1hZ2VQYWludGluZ09wdGlvbnMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gRHJhd0ltYWdlOjpjcmVhdGUoKmltYWdlSGFuZGxlLT5pbWFnZSwgKmRlc3RpbmF0
aW9uLCAqc291cmNlLCAqaW1hZ2VQYWludGluZ09wdGlvbnMpOworfQorCiBjbGFzcyBEcmF3VGls
ZWRJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxE
cmF3VGlsZWRJbWFnZT4gY3JlYXRlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVT
aXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTEzODQsMTggKzE0MzIsMTcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxsUm91bmRlZFJlY3QocmVjdCwgY29sb3Is
IGJsZW5kTW9kZSkpOwogICAgIH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkZpbGxS
b3VuZGVkUmVjdCgpOworCiAgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25z
dCB7IHJldHVybiBtX2NvbG9yOyB9CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYmxlbmRNb2RlOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPFJlZjxGaWxsUm91bmRlZFJlY3Q+PiBkZWNvZGUoRGVjb2RlciYpOworCiBw
cml2YXRlOgotICAgIEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0
LCBjb25zdCBDb2xvciYgY29sb3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCi0gICAgICAgIDogRHJh
d2luZ0l0ZW0oSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdCkKLSAgICAgICAgLCBtX3JlY3QocmVj
dCkKLSAgICAgICAgLCBtX2NvbG9yKGNvbG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5k
TW9kZSkKLSAgICB7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JUIEZpbGxSb3VuZGVkUmVjdChj
b25zdCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImLCBCbGVuZE1vZGUpOwogCiAgICAg
dm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25h
bDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fcmVjdC5yZWN0KCk7IH0KQEAgLTE0MDUsNiArMTQ1MiwzNSBAQCBw
cml2YXRlOgogICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIEZpbGxSb3VuZGVkUmVjdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlY3Q7CisgICAgZW5jb2RlciA8PCBtX2NvbG9y
OworICAgIGVuY29kZXIgPDwgbV9ibGVuZE1vZGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxSZWY8RmlsbFJvdW5kZWRSZWN0Pj4gRmlsbFJvdW5kZWRSZWN0OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9hdFJvdW5kZWRSZWN0PiBy
ZWN0OworICAgIGRlY29kZXIgPj4gcmVjdDsKKyAgICBpZiAoIXJlY3QpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb2xvcj4gY29sb3I7CisgICAgZGVjb2Rl
ciA+PiBjb2xvcjsKKyAgICBpZiAoIWNvbG9yKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8QmxlbmRNb2RlPiBibGVuZE1vZGU7CisgICAgZGVjb2RlciA+PiBi
bGVuZE1vZGU7CisgICAgaWYgKCFibGVuZE1vZGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gRmlsbFJvdW5kZWRSZWN0OjpjcmVhdGUoKnJlY3QsICpjb2xvciwg
KmJsZW5kTW9kZSk7Cit9CisKIGNsYXNzIEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlIDogcHVibGlj
IERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZpbGxSZWN0V2l0aFJvdW5k
ZWRIb2xlPiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRS
ZWN0JiByb3VuZGVkSG9sZVJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTE3MzEsNyArMTgw
Nyw3IEBAIHZvaWQgSXRlbTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAg
IFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29k
ZSBEcmF3R2x5cGhzIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJ
bWFnZToKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNh
bm5vdCB5ZXQgZW5jb2RlIERyYXdJbWFnZSIpOworICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0
PERyYXdJbWFnZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3VGlsZWRJbWFnZToKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6
ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIERyYXdUaWxlZEltYWdlIik7CkBAIC0xNzg0LDcgKzE4
NjAsNyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAg
ICBlbmNvZGVyIDw8IGRvd25jYXN0PEZpbGxDb21wb3NpdGVkUmVjdD4oKnRoaXMpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3Q6Ci0gICAgICAgIFdU
RkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBG
aWxsUm91bmRlZFJlY3QiKTsKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxGaWxsUm91bmRl
ZFJlY3Q+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJl
Y3RXaXRoUm91bmRlZEhvbGU6CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0
ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSIpOwpA
QCAtMTg5NSw3ICsxOTcxLDggQEAgT3B0aW9uYWw8UmVmPEl0ZW0+PiBJdGVtOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6
ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIERyYXdHbHlwaHMiKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOgotICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3Bs
YXlMaXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUgRHJhd0ltYWdlIik7CisgICAg
ICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3SW1hZ2U6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRJbWFnZToKICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVj
b2RlIERyYXdUaWxlZEltYWdlIik7CkBAIC0xOTUzLDcgKzIwMzAsOCBAQCBPcHRpb25hbDxSZWY8
SXRlbT4+IEl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdDoKLSAgICAgICAgV1RGTG9n
QWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIEZpbGxS
b3VuZGVkUmVjdCIpOworICAgICAgICBpZiAoYXV0byBpdGVtID0gRmlsbFJvdW5kZWRSZWN0Ojpk
ZWNvZGUoZGVjb2RlcikpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0
PEl0ZW0+KFdURk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxh
eUxpc3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29kZSBGaWxsUmVjdFdpdGhSb3VuZGVk
SG9sZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9z
L0ljb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklP
Uy5tbQppbmRleCBhN2VlOWY2NmMwMDNkMDM5NWY4MTg4Mjc4YTQzYmRjY2MwMTVhZWM4Li44MTM2
YzFmZmY0NWI5YTMxNzdhOTY4YmI2ZjYyYjJkZjg5MDdkYTU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQpAQCAtNjcsNyArNjcsNyBAQCB2
b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCkKICAgICBGbG9hdFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICBGbG9h
dFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogCi0gICAgY29udGV4dC5zZXRJbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25IaWdoKTsKKyAgICBjb250ZXh0LnNl
dEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2gpOwog
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5nZXQoKSwgc2l6ZSwgZGVzdFJl
Y3QsIHNyY1JlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKaW5kZXggMzMzMjI5YjRjZTRhNDYz
MTg3ODFlZDgwNjI4MTFlNzYzODk2YjBmNi4uN2QyY2VmZDYyNjFkZWUyYTM5YTg5ZDEwMTcwMmVi
NTAyNTJmNGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lkIEJp
dG1hcFRleHR1cmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXImLCBHcmFwaGljc0xheWVy
KiBzb3VyY2VMYXllciwgYwogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGNvbnRleHQuc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVmYXVsdCk7CisgICAgY29udGV4dC5z
ZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0
KTsKICAgICBjb250ZXh0LnNldFRleHREcmF3aW5nTW9kZShUZXh0TW9kZUZpbGwpOwogCiAgICAg
SW50UmVjdCBzb3VyY2VSZWN0KHRhcmdldFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3Qy
RC5jcHAKaW5kZXggZjUzODcwZjJmNDE3NTkzYmE5NzM0NTA0Yjk1OGQ2ZDIzMzg4NTViZC4uZWYz
NTQwYTI4NDFhMTc1MmE4NjRmNzM2NTg2N2VhYzY3YjIxNDI3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0RGlyZWN0MkQuY3BwCkBAIC0xMDYyLDE5ICsxMDYyLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpzZXRQbGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1
YWxpdHkKICAgICBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERSBxdWFsaXR5ID0gRDJEMV9JTlRFUlBP
TEFUSU9OX01PREVfTkVBUkVTVF9ORUlHSEJPUjsKIAogICAgIHN3aXRjaCAobW9kZSkgewotICAg
IGNhc2UgSW50ZXJwb2xhdGlvbkRlZmF1bHQ6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6RGVmYXVsdDoKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX05F
QVJFU1RfTkVJR0hCT1I7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk5v
bmU6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RG9Ob3RJbnRlcnBvbGF0ZToKICAg
ICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX05FQVJFU1RfTkVJR0hCT1I7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkxvdzoKKyAgICBjYXNlIElu
dGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9M
QVRJT05fTU9ERV9MSU5FQVI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlv
bk1lZGl1bToKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW06CiAgICAgICAg
IHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQzsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uSGlnaDoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFs
aXR5OjpIaWdoOgogICAgICAgICBxdWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfSElH
SF9RVUFMSVRZX0NVQklDOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KaW5kZXggZDAxOTQ4OWRhOGJlY2FiNGE1NTJmMGMw
OTdjODQ1MjMyNjU1OTAyMy4uZTMzNWQ3NWJkY2E0ZmE3OWU1ZjNkZDAyOWEwNjhjMzRiNjdkMzYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpAQCAtNDcx
LDE1ICs0NzEsMTUgQEAgLSAodm9pZClfdW5sb2NrRm9jdXNWaWV3SW5Db250ZXh0OihDR0NvbnRl
eHRSZWYpY29udGV4dAogc3RhdGljIENHSW50ZXJwb2xhdGlvblF1YWxpdHkgdG9DR0ludGVycG9s
YXRpb25RdWFsaXR5KFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkpCiB7CiAg
ICAgc3dpdGNoIChxdWFsaXR5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uRGVm
YXVsdDoKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0Ogog
ICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpJbnRlcnBvbGF0aW9uTm9uZToKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFs
aXR5OjpEb05vdEludGVycG9sYXRlOgogICAgICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbk5v
bmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgV2ViQ29y
ZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzoKICAgICAgICAgcmV0dXJuIGtDR0ludGVycG9s
YXRpb25Mb3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uTWVkaXVtOgorICAgIGNh
c2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1lZGl1bToKICAgICAgICAgcmV0dXJu
IGtDR0ludGVycG9sYXRpb25NZWRpdW07Ci0gICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9u
SGlnaDoKKyAgICBjYXNlIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOgogICAg
ICAgICByZXR1cm4ga0NHSW50ZXJwb2xhdGlvbkhpZ2g7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDkxNjQ4NzNkNTgyNTFk
MzJjODAwOTJhMmZjNmY4Yzk2NGRkOWEyNzUuLjFjNjZhZDc5Y2U0MGMxNDU1OGY2NjUyNTJiMjVl
M2JiN2RlZDE2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAgSW1hZ2VC
dWZmZXIqIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAg
aWYgKCFtX2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1faW1h
Z2VCdWZmZXItPmNvbnRleHQoKS5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9s
YXRpb25EZWZhdWx0KTsKKyAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCkuc2V0SW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCk7CiAgICAgbV9p
bWFnZUJ1ZmZlci0+Y29udGV4dCgpLnNldFN0cm9rZVRoaWNrbmVzcygxKTsKIAogICAgIHJldHVy
biBtX2ltYWdlQnVmZmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IDIwYjZhMWEyZmJmODMwYWFjYjkyNWFj
NTQ0OTNjMGVjNmYwODA2ZjAuLjJiYzE5ZDFlNGRhZTYwMDRiMzUyMDQ4YTA0YTVmZjFhMWIxMDlh
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbWFnZVF1YWxpdHlDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29u
dHJvbGxlci5jcHAKQEAgLTEwMiwxMiArMTAyLDEyIEBAIE9wdGlvbmFsPEludGVycG9sYXRpb25R
dWFsaXR5PiBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjppbnRlcnBvbGF0aW9uUXVhbGl0eUZyb21T
CiB7CiAgICAgc3dpdGNoIChzdHlsZS5pbWFnZVJlbmRlcmluZygpKSB7CiAgICAgY2FzZSBJbWFn
ZVJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25M
b3c7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIGNhc2Ug
SW1hZ2VSZW5kZXJpbmc6OkNyaXNwRWRnZXM6CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6UGl4
ZWxhdGVkOgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbk5vbmU7CisgICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RG9Ob3RJbnRlcnBvbGF0ZTsKICAgICBjYXNlIEltYWdl
UmVuZGVyaW5nOjpPcHRpbWl6ZVF1YWxpdHk6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
RGVmYXVsdDsgLy8gRklYTUU6IENTUyAzIEltYWdlcyBzYXlzIHRoYXQgb3B0aW1pemVRdWFsaXR5
IHNob3VsZCBiZWhhdmUgbGlrZSAnYXV0bycsIGJ1dCB0aGF0IHByZXZlbnRzIGF1dGhvcnMgZnJv
bSBvdmVycmlkaW5nIHRoaXMgbG93IHF1YWxpdHkgcmVuZGVyaW5nIGJlaGF2aW9yLgorICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7IC8vIEZJWE1FOiBDU1MgMyBJ
bWFnZXMgc2F5cyB0aGF0IG9wdGltaXplUXVhbGl0eSBzaG91bGQgYmVoYXZlIGxpa2UgJ2F1dG8n
LCBidXQgdGhhdCBwcmV2ZW50cyBhdXRob3JzIGZyb20gb3ZlcnJpZGluZyB0aGlzIGxvdyBxdWFs
aXR5IHJlbmRlcmluZyBiZWhhdmlvci4KICAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpBdXRvOgog
ICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMTgsNyArMTE4LDcgQEAgSW50ZXJwb2xhdGlvblF1
YWxpdHkgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHko
R3JhcGhpY3MKIHsKICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgbm90IGEgYml0bWFwIGltYWdlLCB0
aGVuIG5vbmUgb2YgdGhpcyBpcyByZWxldmFudCBhbmQgd2UganVzdCBwYWludCBhdCBoaWdoIHF1
YWxpdHkuCiAgICAgaWYgKCEoaW1hZ2UuaXNCaXRtYXBJbWFnZSgpIHx8IGltYWdlLmlzUERGRG9j
dW1lbnRJbWFnZSgpKSB8fCBjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1
YWxpdHk6OkRlZmF1bHQ7CiAKICAgICBpZiAoT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+
IHN0eWxlSW50ZXJwb2xhdGlvbiA9IGludGVycG9sYXRpb25RdWFsaXR5RnJvbVN0eWxlKG9iamVj
dC0+c3R5bGUoKSkpCiAgICAgICAgIHJldHVybiBzdHlsZUludGVycG9sYXRpb24udmFsdWUoKTsK
QEAgLTE0NywxMCArMTQ3LDEwIEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNv
bnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAgICAgICAgICAg
ICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwogICAgICAgICAgICAgcmVzdGFy
dFRpbWVyKCk7CiAgICAgICAgICAgICBtX2xpdmVSZXNpemVPcHRpbWl6YXRpb25Jc0FjdGl2ZSA9
IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgICAgICB9CiAgICAgICAgIGlm
IChtX2xpdmVSZXNpemVPcHRpbWl6YXRpb25Jc0FjdGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6RGVmYXVsdDsKICAgICB9CiAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN1cnJl
bnRUcmFuc2Zvcm0gPSBjb250ZXh0LmdldENUTSgpOwpAQCAtMTU4LDIxICsxNTgsMjEgQEAgSW50
ZXJwb2xhdGlvblF1YWxpdHkgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xh
dGlvblF1YWxpdHkoR3JhcGhpY3MKICAgICBpZiAoIWNvbnRleHRJc1NjYWxlZCAmJiBzaXplID09
IGltYWdlU2l6ZSkgewogICAgICAgICAvLyBUaGVyZSBpcyBubyBzY2FsZSBpbiBlZmZlY3QuIElm
IHdlIGhhZCBhIHNjYWxlIGluIGVmZmVjdCBiZWZvcmUsIHdlIGNhbiBqdXN0IHJlbW92ZSB0aGlz
IG9iamVjdCBmcm9tIHRoZSBsaXN0LgogICAgICAgICByZW1vdmVMYXllcihvYmplY3QsIGlubmVy
TWFwLCBsYXllcik7Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAg
ICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogICAgIH0KIAogICAgIC8v
IFRoZXJlIGlzIG5vIG5lZWQgdG8gaGFzaCBzY2FsZWQgaW1hZ2VzIHRoYXQgYWx3YXlzIHVzZSBs
b3cgcXVhbGl0eSBtb2RlIHdoZW4gdGhlIHBhZ2UgZGVtYW5kcyBpdC4gVGhpcyBpcyB0aGUgaUNo
YXQgY2FzZS4KICAgICBpZiAobV9yZW5kZXJWaWV3LnBhZ2UoKS5pbkxvd1F1YWxpdHlJbWFnZUlu
dGVycG9sYXRpb25Nb2RlKCkpIHsKICAgICAgICAgZG91YmxlIHRvdGFsUGl4ZWxzID0gc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpbWFnZS53aWR0aCgpKSAqIHN0YXRpY19jYXN0PGRvdWJsZT4oaW1hZ2Uu
aGVpZ2h0KCkpOwogICAgICAgICBpZiAodG90YWxQaXhlbHMgPiBjSW50ZXJwb2xhdGlvbkN1dG9m
ZikKLSAgICAgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAgICAgICAgcmV0
dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgfQogCiAgICAgLy8gSWYgYW4gYW5p
bWF0ZWQgcmVzaXplIGlzIGFjdGl2ZSwgcGFpbnQgaW4gbG93IHF1YWxpdHkgYW5kIGtpY2sgdGhl
IHRpbWVyIGFoZWFkLgogICAgIGlmIChtX2FuaW1hdGVkUmVzaXplSXNBY3RpdmUpIHsKICAgICAg
ICAgc2V0KG9iamVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICAgICAgcmVzdGFydFRp
bWVyKCk7Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAgICByZXR1cm4g
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICAgICB9CiAgICAgLy8gSWYgdGhpcyBpcyB0aGUg
Zmlyc3QgdGltZSByZXNpemluZyB0aGlzIGltYWdlLCBvciBpdHMgc2l6ZSBpcyB0aGUKICAgICAv
LyBzYW1lIGFzIHRoZSBsYXN0IHJlc2l6ZSwgZHJhdyBhdCBoaWdoIHJlcywgYnV0IHJlY29yZCB0
aGUgcGFpbnQKQEAgLTE4MCwxMyArMTgwLDEzIEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdl
UXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAg
ICAgaWYgKGlzRmlyc3RSZXNpemUgfHwgb2xkU2l6ZSA9PSBzaXplKSB7CiAgICAgICAgIHJlc3Rh
cnRUaW1lcigpOwogICAgICAgICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwot
ICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRl
cnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAgICAgLy8gSWYgdGhlIHRpbWVyIGlz
IG5vIGxvbmdlciBhY3RpdmUsIGRyYXcgYXQgaGlnaCBxdWFsaXR5IGFuZCBkb24ndAogICAgIC8v
IHNldCB0aGUgdGltZXIuCiAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAg
cmVtb3ZlTGF5ZXIob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIpOwotICAgICAgICByZXR1cm4gSW50
ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6
RGVmYXVsdDsKICAgICB9CiAgICAgLy8gVGhpcyBvYmplY3QgaGFzIGJlZW4gcmVzaXplZCB0byB0
d28gZGlmZmVyZW50IHNpemVzIHdoaWxlIHRoZSB0aW1lcgogICAgIC8vIGlzIGFjdGl2ZSwgc28g
ZHJhdyBhdCBsb3cgcXVhbGl0eSwgc2V0IHRoZSBmbGFnIGZvciBhbmltYXRlZCByZXNpemVzIGFu
ZApAQCAtMTk0LDcgKzE5NCw3IEBAIEludGVycG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNv
bnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdyYXBoaWNzCiAgICAgc2V0KG9i
amVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICBtX2FuaW1hdGVkUmVzaXplSXNBY3Rp
dmUgPSB0cnVlOwogICAgIHJlc3RhcnRUaW1lcigpOwotICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
TG93OworICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBiMmM0OWE2NjY2NTRhMTQx
MzhjODI2NjZiZmU4Y2FlZmJkNWRmZTdlLi5kN2M5MTZjZTY0NmJkYjdlZWVlODUwNTFiNGM1ODM4
MjNjOTZiZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAg
LTY0OCw3ICs2NDgsNyBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1Jl
Y3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAgICAgICBpbWFnZUVs
ZW1lbnQgPyBpbWFnZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVPcGVy
YXRvcjo6U291cmNlT3ZlciwKICAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFn
ZSwgcGFpbnRJbmZvKSwKICAgICAgICAgaW1hZ2VPcmllbnRhdGlvbigpLAotICAgICAgICBpbWFn
ZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250ZXh0KCksICppbWFn
ZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0
CisgICAgICAgIGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNv
bnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJw
b2xhdGlvblF1YWxpdHk6OkRlZmF1bHQKICAgICB9OwogCiAgICAgYXV0byBkcmF3UmVzdWx0ID0g
cGFpbnRJbmZvLmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0aW9ucyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA3MTMy
ZTg4YjQyOTQ1ODhhN2Q0ZmY4OTdiYTM4OWU5MmRjYjM1NDM4Li5lNWRiNDI0YjVmNmExYWY3ZmQy
NjIxNmMzOGVkMjEyY2MwYTc2NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0RhdGFiYXNlRGV0YWlscy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRp
dmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRyYWNraW5nUmVnaW9ucy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CkBAIC0xMTQzLDYgKzExNDQsMTggQEAgc3RhdGljIGJv
b2wgZGVjb2RlT3B0aW9uYWxJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8SW1hZ2U+JiBp
bWFnZSkKICAgICByZXR1cm4gZGVjb2RlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOwogfQogCit2b2lk
IEFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCit7
CisgICAgZW5jb2RlT3B0aW9uYWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQo
KSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJiBpbWFnZUhh
bmRsZSkKK3sKKyAgICBpZiAoIWRlY29kZU9wdGlvbmFsSW1hZ2UoZGVjb2RlciwgaW1hZ2VIYW5k
bGUuaW1hZ2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDYwNmRiY2E4ZTMy
NmIxZDRmOTgyMmRkYTkzYjc4YzgxZDFiZTQ0MzIuLjIzNWQ1ZTkyMmFlYTQyNzg1ODRjNDdkZjE1
MGIyMDlhYjM0YmMzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC0xODksOCArMTg5LDEzIEBAIG5hbWVzcGFjZSBET01DYWNoZUVuZ2luZSB7
CiBzdHJ1Y3QgQ2FjaGVJbmZvOwogc3RydWN0IFJlY29yZDsKIH0KKworbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKK2NsYXNzIEltYWdlSGFuZGxlOwogfQogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKIG5hbWVzcGFjZSBJUEMgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewpAQCAtMzgzLDYgKzM4OCwxMSBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1cnNvcj4gewogICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT4gewor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkltYWdlSGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KaW5kZXggMDVkMDNlMDEyNDg3OTJjY2VmNTdmOWU3NWRhZTgwMDQ5MmRmNjRkYi4uZTMyMWNl
OGUxMTlkYjQ2MDllMTJmMWNiMGJhYTc5MGIxZTBkNjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC01NzksNyArNTc5LDcg
QEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6
LTEuMGZdLCBXZWJLaXRNYXhQYXJzZUR1cmF0aW9uUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5P
LCBXZWJLaXRBbGxvd011bHRpRWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1pc3Npb25QcmVmZXJlbmNl
S2V5LAogICAgICAgICBATk8sIFdlYktpdEFsd2F5c1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpJbnRlcnBv
bGF0aW9uTG93XSwgV2ViS2l0SW50ZXJwb2xhdGlvblF1YWxpdHlQcmVmZXJlbmNlS2V5LAorICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93XSwg
V2ViS2l0SW50ZXJwb2xhdGlvblF1YWxpdHlQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBX
ZWJLaXRQYXNzd29yZEVjaG9FbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhGbG9hdDoyLjBmXSwgV2ViS2l0UGFzc3dvcmRFY2hvRHVyYXRpb25QcmVmZXJl
bmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385094</attachid>
            <date>2019-12-07 04:24:53 -0800</date>
            <delta_ts>2019-12-07 05:30:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204881-20191207042452.patch</filename>
            <type>text/plain</type>
            <size>46374</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMjk5OWJjNmVlMDAy
NjFkMjExOGNmZGQ2ZTY1NTVkYWRjODFhZi4uZjAxYWRlNWExMGFlZWM0MjE3YTJhNGQxZmIxYWRj
ZDc3ZGE2YmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTA1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZyBmb3IgRHJhd0ltYWdlIGFuZCBEcmF3Um91bmRlZFJlY3QgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgTWFrZSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBhbiBlbnVtIGNsYXNzLgorICAgICAgICBNYWtlIEltYWdlUGFp
bnRpbmdPcHRpb25zIGFuZCBhbGwgb2YgaXRzIGNoaWxkcmVuIGVuY29kYWJsZS4KKyAgICAgICAg
TWFrZSBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVkUmVjdCBlbmNvZGFibGUuCisgICAgICAgIEFk
ZCBJbWFnZUhhbmRsZSwgd2hpY2ggcmlnaHQgbm93IGp1c3Qgd3JhcHMgV2ViQ29yZTo6SW1hZ2Us
IGJ1dAorICAgICAgICBsYXRlciBjb3VsZCBjYXJyeSBpZGVudGlmaWVycy4gVGhpcyBhbGxvd3Mg
dXMgdG8gaW1wbGVtZW50IGltYWdlIGVuY29kaW5nCisgICAgICAgIGluIFdlYktpdCBjb2RlLCB3
aGljaCBjYW4gdGhlbiB1c2UgU2hhcmVhYmxlQml0bWFwIHRvIEEpIGRlY29kZSB0aGUgaW1hZ2UK
KyAgICAgICAgaW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgYW5kIEIpIHVzZSBzaGFyZWQgbWVt
b3J5IHRvIHRyYW5zbWl0IHRoZQorICAgICAgICBkZWNvZGVkIGltYWdlIGRhdGEgdG8gdGhlIEdQ
VSBwcm9jZXNzLgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNwcDoKKyAgICAgICAgKiBo
dG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXI6OkludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVBhaW50aW5nT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnM6OkltYWdlUGFpbnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2Fpcm86OmRyYXdTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW50ZXJw
b2xhdGlvblF1YWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q6OkZpbGxSb3VuZGVkUmVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tOgorICAgICAgICAodG9DR0ludGVycG9sYXRpb25R
dWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1
ZmZlciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6aW50ZXJwb2xh
dGlvblF1YWxpdHlGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29u
dHJvbGxlcjo6Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJ
bnRvUmVjdCk6CisKIDIwMTktMTItMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgRHJhZ0NvbnRyb2xsZXI6OmNsaWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFlNWFiYjQ2ZDdhOTE2NmJiZjg5ZmYxZDU0NDg0ZGZmMDhlYjdmNTQuLjc3M2E4ZTMw
ZDUwY2E3NGQ2NWE1MjIzZDg0ZTBiNjRkMGJiYjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMTItMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IGVuY29kaW5nIGZvciBEcmF3SW1hZ2UgYW5kIERyYXdSb3VuZGVk
UmVjdCBkaXNwbGF5IGxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKIDIw
MTktMTItMDMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgZGlzYWJsZWQgaGlnaGxpZ2h0IEFQSSBza2VsZXRvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGEzMmFkZjdjMTQ1MDMwYTE5MDE4YmE4NTU0MTYzNGZiMzYxOGRiMDAu
LjcxMjAwNjYwMjllYjMwZGQ5MGU1OWU2MTM4MmE2OGM1NzcyNDE5ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNyAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZW5jb2Rpbmcg
Zm9yIERyYXdJbWFnZSBhbmQgRHJhd1JvdW5kZWRSZWN0IGRpc3BsYXkgbGlzdCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgor
CiAyMDE5LTEyLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGRpc2FibGVkIGhpZ2hsaWdodCBBUEkgc2tlbGV0b24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IGNiNGZlMWFjZWRkODc3NzNkOGE1ZDBmZjJjYWU1NDM2NDJlOTg3MmYuLmRkZjVj
OGNmYWIyOGUyMjJlMGQ3NjcyMjRhNTAzZTgxZTFkOTRmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTEyMyw2ICsxMTIzLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uczNEQU5HTEUuaAogCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCiAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
YW52YXNCYXNlLmNwcAppbmRleCA4ZDM3MDA0OWU5YWQ4MjQ0ZjNkNDliM2EzZGMyZWRjMWNiMmQy
NTFkLi4xMjJmNGU0MGRlNmY3ZDk1NzU1YjIyMTFhZWRlOGNhYTEwMTE1NTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ2FudmFzQmFzZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2lmIFVTRShDRykKIC8vIEZJWE1FOiBJdCBzZWVtcyBzdHJhbmdlIHRoYXQgdGhlIGRlZmF1
bHQgcXVhbGl0eSBpcyBub3QgdGhlIG9uZSB0aGF0IGlzIGxpdGVyYWxseSBuYW1lZCAiZGVmYXVs
dCIuCiAvLyBTaG91bGQgZml4IG5hbWVzIHRvIG1ha2UgdGhpcyBlYXNpZXIgdG8gdW5kZXJzdGFu
ZCwgb3Igd3JpdGUgYW4gZXhjZWxsZW50IGNvbW1lbnQgaGVyZSBleHBsYWluaW5nIHdoeSBub3Qu
Ci1jb25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0SW50ZXJwb2xhdGlvblF1YWxpdHkg
PSBJbnRlcnBvbGF0aW9uTG93OworY29uc3QgSW50ZXJwb2xhdGlvblF1YWxpdHkgZGVmYXVsdElu
dGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICNlbHNlCi1j
b25zdCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBkZWZhdWx0SW50ZXJwb2xhdGlvblF1YWxpdHkgPSBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsKK2NvbnN0IEludGVycG9sYXRpb25RdWFsaXR5IGRlZmF1bHRJ
bnRlcnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OwogI2Vu
ZGlmCiAKIENhbnZhc0Jhc2U6OkNhbnZhc0Jhc2UoSW50U2l6ZSBzaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCAwMTM1MzFiYTEwOTRlZDJiNWUzYTQzOGYxMDdlZWRhZDUw
MzQ1OWVjLi41ZjQ5ZjczOWExZjVjM2JlMGVlMTcxZjM0Zjk2M2UwMjY2YmM0NDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtMjA2LDE2ICsyMDYsMTYgQEAgc3RhdGljIElu
dGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShJ
bWFnZUJpdG1hcE9wdGkKIHsKICAgICBzd2l0Y2ggKHJlc2l6ZVF1YWxpdHkpIHsKICAgICBjYXNl
IEltYWdlQml0bWFwT3B0aW9uczo6UmVzaXplUXVhbGl0eTo6UGl4ZWxhdGVkOgotICAgICAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvbk5vbmU7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6RG9Ob3RJbnRlcnBvbGF0ZTsKICAgICBjYXNlIEltYWdlQml0bWFwT3B0aW9uczo6UmVz
aXplUXVhbGl0eTo6TG93OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7IC8v
IExvdyBpcyB0aGUgZGVmYXVsdC4KKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5
OjpEZWZhdWx0OyAvLyBMb3cgaXMgdGhlIGRlZmF1bHQuCiAgICAgY2FzZSBJbWFnZUJpdG1hcE9w
dGlvbnM6OlJlc2l6ZVF1YWxpdHk6Ok1lZGl1bToKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRp
b25NZWRpdW07CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOwog
ICAgIGNhc2UgSW1hZ2VCaXRtYXBPcHRpb25zOjpSZXNpemVRdWFsaXR5OjpIaWdoOgotICAgICAg
ICByZXR1cm4gSW50ZXJwb2xhdGlvbkhpZ2g7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9u
UXVhbGl0eTo6SGlnaDsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6RGVmYXVsdDsKIH0KIAogLy8gRklYTUU6IE1vcmUgc3RlcHMgZnJvbSBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbWFnZWJpdG1hcC1hbmQtYW5pbWF0aW9ucy5odG1s
I2Nyb3BwZWQtdG8tdGhlLXNvdXJjZS1yZWN0YW5nbGUtd2l0aC1mb3JtYXR0aW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCmluZGV4IDkyODI4ODQ1NmIzNTgyMTRmM2ZkZTFlNWMwMjQ4MWJlOTVkZTg4
OTMuLjk3Mjc3NDNhYWZkZGUxMDM0YzAwYmI4YjMzNjQwYjM5ZTJhNzVmN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCkBAIC0yMjg4LDE1ICsyMjg4LDE1IEBAIHN0YXRpYyBpbmxpbmUgSW50ZXJw
b2xhdGlvblF1YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShJbWFnZVNtb290
aGluCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CiAgICAgY2FzZSBJbWFnZVNtb290aGluZ1F1
YWxpdHk6OkxvdzoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgIHJl
dHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIGNhc2UgSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5OjpNZWRpdW06Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTWVkaXVtOworICAg
ICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1lZGl1bTsKICAgICBjYXNlIEltYWdl
U21vb3RoaW5nUXVhbGl0eTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25IaWdo
OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkhpZ2g7CiAgICAgfQogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7Cisg
ICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiB9OwogCiBhdXRvIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmltYWdlU21vb3RoaW5nUXVhbGl0eSgpIGNvbnN0IC0+IElt
YWdlU21vb3RoaW5nUXVhbGl0eQpAQCAtMjMzMyw3ICsyMzMzLDcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgIG1vZGlmaWFibGVTdGF0ZSgpLmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGVuYWJsZWQ7
CiAgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKGMpCi0gICAgICAgIGMt
PnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoZW5hYmxlZCA/IHNtb290aGluZ1RvSW50ZXJw
b2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFnZVNtb290aGluZ1F1YWxpdHkpIDogSW50ZXJwb2xh
dGlvbk5vbmUpOworICAgICAgICBjLT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJs
ZWQgPyBzbW9vdGhpbmdUb0ludGVycG9sYXRpb25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhp
bmdRdWFsaXR5KSA6IEludGVycG9sYXRpb25RdWFsaXR5OjpEb05vdEludGVycG9sYXRlKTsKIH0K
IAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRQYXRoKFBhdGgyRCYgcGF0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5n
T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRp
b25zLmgKaW5kZXggZjNhMGI0NzllMjU5Y2VkODFkNDEyMzIwZjE5ODg4NGIxYzc5MzJjZC4uODQ5
M2QzYTU0NjZmODE3YTY0MzBiNzc1Zjc0MWNhNTU1ZjlmZTgxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmgKQEAgLTI2LDEyICsy
NiwxMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgRGVjb2Rp
bmdNb2RlIHsKK2VudW0gY2xhc3MgRGVjb2RpbmdNb2RlIDogdWludDhfdCB7CiAgICAgQXV0bywK
ICAgICBTeW5jaHJvbm91cywKICAgICBBc3luY2hyb25vdXMKQEAgLTE0NCw0ICsxNDUsMTcgQEAg
cHJpdmF0ZToKICAgICBEZWNvZGluZ01vZGVPclNpemUgbV9kZWNvZGluZ01vZGVPclNpemU7CiB9
OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRlY29kaW5nTW9kZT4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6RGVjb2RpbmdNb2RlLAorICAg
IFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6QXV0bywKKyAgICBXZWJDb3JlOjpEZWNvZGluZ01vZGU6
OlN5bmNocm9ub3VzLAorICAgIFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6QXN5bmNocm9ub3VzCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAyMjVhYmFhYmU4YWEyYThh
ZWFlZTFhNTJjNjE2YTI5OGYxZTIwMGIxLi5iMTVmZmZjYTdjMDNlOWM5Njk2YWZiMDNiYTRiYmE2
ZTY0YWQyMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaApAQCAtMTk2LDcgKzE5Niw3IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSB7CiAgICAgZmxvYXQgYWxwaGEgeyAxIH07CiAgICAgQ29tcG9zaXRlT3BlcmF0b3Ig
Y29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogICAg
IEJsZW5kTW9kZSBibGVuZE1vZGUgeyBCbGVuZE1vZGU6Ok5vcm1hbCB9OwotICAgIEludGVycG9s
YXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVm
YXVsdCB9OworICAgIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkgeyBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCB9OwogCiAgICAgYm9vbCBzaG91bGRB
bnRpYWxpYXMgOiAxOwogICAgIGJvb2wgc2hvdWxkU21vb3RoRm9udHMgOiAxOwpAQCAtNjk5LDcg
KzY5OSw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50
YWluZXIoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEludGVycG9sYXRpb25RdWFs
aXR5IGludGVycG9sYXRpb25RdWFsaXR5VG9Vc2UpCiAgICAgICAgIDogbV9ncmFwaGljc0NvbnRl
eHQoZ3JhcGhpY3NDb250ZXh0KQogICAgICAgICAsIG1fY3VycmVudEludGVycG9sYXRpb25RdWFs
aXR5KGdyYXBoaWNzQ29udGV4dC5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkpCi0gICAgICAg
ICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZWQoaW50ZXJwb2xhdGlvblF1YWxpdHlUb1Vz
ZSAhPSBJbnRlcnBvbGF0aW9uRGVmYXVsdCAmJiBtX2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0
eSAhPSBpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKQorICAgICAgICAsIG1faW50ZXJwb2xhdGlv
blF1YWxpdHlDaGFuZ2VkKGludGVycG9sYXRpb25RdWFsaXR5VG9Vc2UgIT0gSW50ZXJwb2xhdGlv
blF1YWxpdHk6OkRlZmF1bHQgJiYgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1YWxpdHkgIT0gaW50
ZXJwb2xhdGlvblF1YWxpdHlUb1VzZSkKICAgICB7CiAgICAgICAgIGlmIChtX2ludGVycG9sYXRp
b25RdWFsaXR5Q2hhbmdlZCkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0LnNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoaW50ZXJwb2xhdGlvblF1YWxpdHlUb1VzZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKaW5kZXggMmNl
NmIwY2JhMDAwYzkxNmYxYTRkYTQ3MjQ1Mjk5M2VmNGM5MDU1My4uNTk4M2QyNjk5ZWQzNjliMDFm
NzVhMDVmZGY1NDQ1NGQ1Yzg3ZmUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaApAQCAtNzksMTIgKzc5LDEyIEBAIGVudW0gR3JhZGll
bnRTcHJlYWRNZXRob2QgewogICAgIFNwcmVhZE1ldGhvZFJlcGVhdAogfTsKIAotZW51bSBJbnRl
cnBvbGF0aW9uUXVhbGl0eSB7Ci0gICAgSW50ZXJwb2xhdGlvbkRlZmF1bHQsCi0gICAgSW50ZXJw
b2xhdGlvbk5vbmUsCi0gICAgSW50ZXJwb2xhdGlvbkxvdywKLSAgICBJbnRlcnBvbGF0aW9uTWVk
aXVtLAotICAgIEludGVycG9sYXRpb25IaWdoCitlbnVtIGNsYXNzIEludGVycG9sYXRpb25RdWFs
aXR5IDogdWludDhfdCB7CisgICAgRGVmYXVsdCwKKyAgICBEb05vdEludGVycG9sYXRlLAorICAg
IExvdywKKyAgICBNZWRpdW0sCisgICAgSGlnaAogfTsKIAogZW51bSBMaW5lQ2FwIHsKQEAgLTEz
MywxMyArMTMzLDEzIEBAIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiB7CiAgICAg
VW5wcmVtdWx0aXBsaWVkCiB9OwogCi1TdHJpbmcgY29tcG9zaXRlT3BlcmF0b3JOYW1lKENvbXBv
c2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwotU3RyaW5nIGJsZW5kTW9kZU5hbWUoQmxlbmRNb2Rl
KTsKLWJvb2wgcGFyc2VCbGVuZE1vZGUoY29uc3QgU3RyaW5nJiwgQmxlbmRNb2RlJik7Ci1ib29s
IHBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmLCBDb21wb3NpdGVP
cGVyYXRvciYsIEJsZW5kTW9kZSYpOworU3RyaW5nIGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShXZWJD
b3JlOjpDb21wb3NpdGVPcGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKK1N0cmluZyBibGVu
ZE1vZGVOYW1lKFdlYkNvcmU6OkJsZW5kTW9kZSk7Citib29sIHBhcnNlQmxlbmRNb2RlKGNvbnN0
IFN0cmluZyYsIFdlYkNvcmU6OkJsZW5kTW9kZSYpOworYm9vbCBwYXJzZUNvbXBvc2l0ZUFuZEJs
ZW5kT3BlcmF0b3IoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3ImLCBX
ZWJDb3JlOjpCbGVuZE1vZGUmKTsKIAotV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJsZW5kTW9kZSk7Ci1XRUJDT1JFX0VYUE9SVCBX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29tcG9zaXRlT3Bl
cmF0b3IpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIFdlYkNvcmU6OkJsZW5kTW9kZSk7CitXRUJDT1JFX0VYUE9SVCBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6Q29tcG9zaXRl
T3BlcmF0b3IpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIFdpbmRSdWxlKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5lQ2FwKTsKIFdFQkNPUkVfRVhQT1JU
IFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5lSm9pbik7
CkBAIC0xOTMsNCArMTkzLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6QmxlbmRNb2RlPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5LAorICAgIFdlYkNv
cmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0LAorICAgIFdlYkNvcmU6OkludGVycG9s
YXRpb25RdWFsaXR5OjpEb05vdEludGVycG9sYXRlLAorICAgIFdlYkNvcmU6OkludGVycG9sYXRp
b25RdWFsaXR5OjpMb3csCisgICAgV2ViQ29yZTo6SW50ZXJwb2xhdGlvblF1YWxpdHk6Ok1lZGl1
bSwKKyAgICBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaAorICAgID47Cit9Owor
CiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAppbmRleCA1NTllNWIzYTY1N2QxZjg4NDdjNDE5Nzg3
MTU3MGIwNTg5NDc1MTU0Li5kOTkwYTNkYzU1NWZjZGRiNjEzNzRkYjdkMGNkNzVkYThkZjQ5ODhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0u
aCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyMSwzICsxMjIsMjIgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRp
b24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkltYWdl
T3JpZW50YXRpb246Ok9yaWVudGF0aW9uLAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246
Ok9yaWVudGF0aW9uOjpGcm9tSW1hZ2UsCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb246Ok9yaWdpblRvcExlZnQsCisgICAgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0LAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50
YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodCwKKyAgICBXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tTGVmdCwKKyAgICBXZWJDb3Jl
OjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCwKKyAgICBXZWJD
b3JlOjpJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3AsCisgICAg
V2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok9yaWdpblJpZ2h0Qm90dG9t
LAorICAgIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0
Qm90dG9tCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKaW5k
ZXggZGVhN2QyYTUzNTMzZWJiYjA2ZDBjYzk2MjQ1YTE4YWNjNTFiOGJlMC4uODk3OGU2YWY3MTJl
ODNjZDY3MDhhYTMzZmI1YzI1NGZmYzQyYjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCkBAIC0zOCwxMSAr
MzgsMTEgQEAgc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKICAgICAgICAgc2V0T3B0aW9u
KG9wdGlvbnMuLi4pOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE92ZXJycmlk
ZXM+Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG90aGVyLCBPdmVycnJpZGVzLi4uIG92ZXJycmlkZXMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gT3ZlcnJpZGVzPgorICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvdGhlciwgT3ZlcnJpZGVzLi4uIG92ZXJyaWRlcykKICAgICAgICAgOiBJbWFn
ZVBhaW50aW5nT3B0aW9ucyhvdGhlcikKICAgICB7Ci0gICAgICAgIHNldE9wdGlvbihvdmVycnJp
ZGVzLi4uKTsKKyAgICAgICAgc2V0T3B0aW9uKG92ZXJyaWRlcy4uLik7CiAgICAgfQogCiAgICAg
SW1hZ2VQYWludGluZ09wdGlvbnMoKSA9IGRlZmF1bHQ7CkBAIC01NCw2ICs1NCw5IEBAIHN0cnVj
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KICAgICBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJwb2xhdGlv
blF1YWxpdHk7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZS4uLiBSZXN0PgogICAgIHZvaWQg
c2V0T3B0aW9uKEZpcnN0IGZpcnN0LCBSZXN0Li4uIHJlc3QpCkBAIC03Myw3ICs3Niw0OCBAQCBw
cml2YXRlOgogICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFsIH07
CiAgICAgRGVjb2RpbmdNb2RlIG1fZGVjb2RpbmdNb2RlIHsgRGVjb2RpbmdNb2RlOjpTeW5jaHJv
bm91cyB9OwogICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEltYWdlT3JpZW50
YXRpb246Ok5vbmUgfTsKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBtX2ludGVycG9sYXRpb25R
dWFsaXR5IHsgSW50ZXJwb2xhdGlvbkRlZmF1bHQgfTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eSBtX2ludGVycG9sYXRpb25RdWFsaXR5IHsgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQg
fTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEltYWdlUGFpbnRpbmdPcHRp
b25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1f
Y29tcG9zaXRlT3BlcmF0b3I7CisgICAgZW5jb2RlciA8PCBtX2JsZW5kTW9kZTsKKyAgICBlbmNv
ZGVyIDw8IG1fZGVjb2RpbmdNb2RlOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisgICAgZW5jb2RlciA8PCBtX2ludGVycG9sYXRp
b25RdWFsaXR5OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8SW1hZ2VQ
YWludGluZ09wdGlvbnM+IEltYWdlUGFpbnRpbmdPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBPcHRpb25hbDxDb21wb3NpdGVPcGVyYXRvcj4gY29tcG9zaXRlT3BlcmF0
b3I7CisgICAgZGVjb2RlciA+PiBjb21wb3NpdGVPcGVyYXRvcjsKKyAgICBpZiAoIWNvbXBvc2l0
ZU9wZXJhdG9yKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8
QmxlbmRNb2RlPiBibGVuZE1vZGU7CisgICAgZGVjb2RlciA+PiBibGVuZE1vZGU7CisgICAgaWYg
KCFibGVuZE1vZGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxEZWNvZGluZ01vZGU+IGRlY29kaW5nTW9kZTsKKyAgICBkZWNvZGVyID4+IGRlY29kaW5nTW9k
ZTsKKyAgICBpZiAoIWRlY29kaW5nTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlv
bjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICghb3JpZW50YXRpb24pCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbnRlcnBvbGF0aW9u
UXVhbGl0eT4gaW50ZXJwb2xhdGlvblF1YWxpdHk7CisgICAgZGVjb2RlciA+PiBpbnRlcnBvbGF0
aW9uUXVhbGl0eTsKKyAgICBpZiAoIWludGVycG9sYXRpb25RdWFsaXR5KQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIEltYWdlUGFpbnRpbmdPcHRpb25zIHsgKmNv
bXBvc2l0ZU9wZXJhdG9yLCAqYmxlbmRNb2RlLCAqZGVjb2RpbmdNb2RlLCAqb3JpZW50YXRpb24s
ICppbnRlcnBvbGF0aW9uUXVhbGl0eSB9OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCAz
YjcwZTc2NjM5ZTU5NDBhZjFmMmIxZDViZjI2NzNhZTMyZGVjYTEwLi4wY2U4Y2ViNDhiZDc4OGNl
YjE5YWE5ZGQ4OTdmOTI5OWRlYWJkZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTg1OSw3ICs4
NTksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludChHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsbwogICAgICAgICBjb250ZXh0LnNhdmUoKTsK
ICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWln
aHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0g
ICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9u
TG93KTsKKyAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVy
cG9sYXRpb25RdWFsaXR5OjpMb3cpOwogICAgICAgICBGbG9hdFJlY3QgcGFpbnRSZWN0KEZsb2F0
UG9pbnQoKSwgcmVjdC5zaXplKCkpOwogI2lmIFVTRShESVJFQ1QyRCkKICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDg0MjExMjM3NGE1ZDZhODE1
YjhjNzZkYTRlMGY5MzA1YTU0ZmIxZWIuLmY4Y2ViOTUyNTNmZjliN2YzMDQ1YjA1MWE3MzhiNzY1
YjdhOWQzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFnZUdl
bmVyYXRvcihHcmFwaGljc0NvbnRleHQKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0Lngo
KSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC5zY2FsZShGbG9h
dFNpemUoMS4wZiwgLTEuMGYpKTsKLSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRp
b25RdWFsaXR5KEludGVycG9sYXRpb25Mb3cpOworICAgICAgICBjb250ZXh0LnNldEltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7CiAgICAgICAgIElu
dFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgoKSwgcmVj
dC5oZWlnaHQoKSkpOwogICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0
LmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4
IDdlM2Q3NDQwZDI2MDdiYzZlMTVjMmIzMTZiMGJkMmJjMWYyMGRmMzcuLmJlMGM1YTM5Yjc3MDg3
YjFhZDI4OTVkYjRjYjQ1OWU4NmUwZjY3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtOTM2
LDE1ICs5MzYsMTUgQEAgdm9pZCBkcmF3U3VyZmFjZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UKICAgICBSZWZQdHI8Y2Fpcm9f
cGF0dGVybl90PiBwYXR0ZXJuID0gYWRvcHRSZWYoY2Fpcm9fcGF0dGVybl9jcmVhdGVfZm9yX3N1
cmZhY2UocGF0dGVyblN1cmZhY2UuZ2V0KCkpKTsKIAogICAgIHN3aXRjaCAoaW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eSkgewotICAgIGNhc2UgSW50ZXJwb2xhdGlvbk5vbmU6Ci0gICAgY2FzZSBJ
bnRlcnBvbGF0aW9uTG93OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRvTm90SW50
ZXJwb2xhdGU6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OgogICAgICAgICBj
YWlyb19wYXR0ZXJuX3NldF9maWx0ZXIocGF0dGVybi5nZXQoKSwgQ0FJUk9fRklMVEVSX0ZBU1Qp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25NZWRpdW06Ci0gICAgY2Fz
ZSBJbnRlcnBvbGF0aW9uRGVmYXVsdDoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpN
ZWRpdW06CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDoKICAgICAgICAg
Y2Fpcm9fcGF0dGVybl9zZXRfZmlsdGVyKHBhdHRlcm4uZ2V0KCksIENBSVJPX0ZJTFRFUl9HT09E
KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uSGlnaDoKKyAgICBjYXNl
IEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOgogICAgICAgICBjYWlyb19wYXR0ZXJuX3NldF9m
aWx0ZXIocGF0dGVybi5nZXQoKSwgQ0FJUk9fRklMVEVSX0JFU1QpOwogICAgICAgICBicmVhazsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHQzRENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCmluZGV4IDNhZmFhMGFiMDFkNGE0MGMyZGIxNTlm
ZjQ5MjlhMGM0YmE4YzExMTAuLjQxOGJmMzViOTI5NzMxYmIzZjkzOTI3M2JkOTFhZDg2OGZmNGE2
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBpbWFnZVBp
eGVscywgY29uc3QgSW4KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CiAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAgICBjb250
ZXh0LnRyYW5zbGF0ZSgwLCAtaW1hZ2VTaXplLmhlaWdodCgpKTsKLSAgICBjb250ZXh0LnNldElt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOworICAgIGNvbnRleHQu
c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RG9Ob3RJ
bnRlcnBvbGF0ZSk7CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJbWFnZSwgaW1hZ2VT
aXplLCBjYW52YXNSZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpLCB7IENv
bXBvc2l0ZU9wZXJhdG9yOjpDb3B5IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggMmRm
MmU1NDMyNDlmZGRkZjUzZWY4ZjE4ZWM3OTM4MGNmZTQ3YTk3Ny4uNDk2ZWNhMzI0ZDNlNGRhMjJm
Y2E1OTk5OGViNWVmNWVlNzNkMjA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMTQzLDE3ICsx
NDMsMTcgQEAgc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IGNvbnZlcnRJbnRlcnBvbGF0aW9u
UXVhbGl0eShDR0ludGVycG9sYXRpb25RdWFsaXR5IHEKIHsKICAgICBzd2l0Y2ggKHF1YWxpdHkp
IHsKICAgICBjYXNlIGtDR0ludGVycG9sYXRpb25EZWZhdWx0OgotICAgICAgICByZXR1cm4gSW50
ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6
RGVmYXVsdDsKICAgICBjYXNlIGtDR0ludGVycG9sYXRpb25Ob25lOgotICAgICAgICByZXR1cm4g
SW50ZXJwb2xhdGlvbk5vbmU7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6
RG9Ob3RJbnRlcnBvbGF0ZTsKICAgICBjYXNlIGtDR0ludGVycG9sYXRpb25Mb3c6Ci0gICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uTG93OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1
YWxpdHk6OkxvdzsKICAgICBjYXNlIGtDR0ludGVycG9sYXRpb25NZWRpdW06Ci0gICAgICAgIHJl
dHVybiBJbnRlcnBvbGF0aW9uTWVkaXVtOworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1
YWxpdHk6Ok1lZGl1bTsKICAgICBjYXNlIGtDR0ludGVycG9sYXRpb25IaWdoOgotICAgICAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvbkhpZ2g7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVh
bGl0eTo6SGlnaDsKICAgICB9Ci0gICAgcmV0dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKIH0KIAogc3RhdGljIENHQmxl
bmRNb2RlIHNlbGVjdENHQmxlbmRNb2RlKENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQpAQCAtMTY2NywxOSArMTY2NywxOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1JbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVy
cG9sYXRpb25RdWFsaXR5CiAKICAgICBDR0ludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkgPSBr
Q0dJbnRlcnBvbGF0aW9uRGVmYXVsdDsKICAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIElu
dGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1
bHQ6CiAgICAgICAgIHF1YWxpdHkgPSBrQ0dJbnRlcnBvbGF0aW9uRGVmYXVsdDsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9uZToKKyAgICBjYXNlIEludGVycG9sYXRp
b25RdWFsaXR5OjpEb05vdEludGVycG9sYXRlOgogICAgICAgICBxdWFsaXR5ID0ga0NHSW50ZXJw
b2xhdGlvbk5vbmU7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50ZXJwb2xhdGlvbkxvdzoK
KyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIHF1YWxpdHkgPSBr
Q0dJbnRlcnBvbGF0aW9uTG93OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRp
b25NZWRpdW06CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOgogICAgICAg
ICBxdWFsaXR5ID0ga0NHSW50ZXJwb2xhdGlvbk1lZGl1bTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnRlcnBvbGF0aW9uSGlnaDoKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpI
aWdoOgogICAgICAgICBxdWFsaXR5ID0ga0NHSW50ZXJwb2xhdGlvbkhpZ2g7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCA5MWNi
YjlmZWYyZjIzZjYwOTI4NjNjMDI0MGZlNzNlZGRjZDMyNWI0Li43NjQ3NzkzMzkwYTM4OWU0Mzg1
MWVkZDVmOGU2MWNkMDMyYTNlODM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwCkBAIC00OTIsNiArNDkyLDggQEAgRHJhd0ltYWdlOjpEcmF3SW1hZ2UoSW1hZ2UmIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QKIHsKIH0KIAor
RHJhd0ltYWdlOjp+RHJhd0ltYWdlKCkgPSBkZWZhdWx0OworCiB2b2lkIERyYXdJbWFnZTo6YXBw
bHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd0lt
YWdlKG1faW1hZ2UuZ2V0KCksIG1fZGVzdGluYXRpb24sIG1fc291cmNlLCBtX2ltYWdlUGFpbnRp
bmdPcHRpb25zKTsKQEAgLTg3Niw2ICs4NzgsMTYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZpbGxDb21wb3NpdGVkUmVjdCYgaXRlbSkKICAg
ICByZXR1cm4gdHM7CiB9CiAKK0ZpbGxSb3VuZGVkUmVjdDo6RmlsbFJvdW5kZWRSZWN0KGNvbnN0
IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQmxlbmRNb2RlIGJs
ZW5kTW9kZSkKKyAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3QpCisg
ICAgLCBtX3JlY3QocmVjdCkKKyAgICAsIG1fY29sb3IoY29sb3IpCisgICAgLCBtX2JsZW5kTW9k
ZShibGVuZE1vZGUpCit7Cit9CisKK0ZpbGxSb3VuZGVkUmVjdDo6fkZpbGxSb3VuZGVkUmVjdCgp
ID0gZGVmYXVsdDsKKwogdm9pZCBGaWxsUm91bmRlZFJlY3Q6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChtX3JlY3Qs
IG1fY29sb3IsIG1fYmxlbmRNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmlu
ZGV4IGRjNDJmZmVhZWVhYTBhNDU1ZmQwODdhODQ1NTBhOWYzNWY4OGQ4NjcuLjU1MWFjMTEzMDMy
ODJiNzk3ODYyMjI4Yjc2ODEyMjE5OTEyZGQwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaApAQCAtNzQxLDEyICs3NDEsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFp
bnRpbmdPcHRpb25zKSk7CiAgICAgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJh
d0ltYWdlKCk7CisKICAgICBjb25zdCBJbWFnZSYgaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlLmdldCgpOyB9CiAgICAgRmxvYXRSZWN0IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlOyB9CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbjsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxSZWY8RHJhd0ltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKLSAgICBEcmF3
SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBEcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTc1OCw2
ICs3NjMsNDkgQEAgcHJpdmF0ZToKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX2ltYWdlUGFp
bnRpbmdPcHRpb25zOwogfTsKIAorY2xhc3MgSW1hZ2VIYW5kbGUgeworcHVibGljOgorICAgIFJl
ZlB0cjxJbWFnZT4gaW1hZ2U7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBE
cmF3SW1hZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEltYWdlSGFu
ZGxlIGltYWdlSGFuZGxlOworICAgIGltYWdlSGFuZGxlLmltYWdlID0gbV9pbWFnZS5wdHIoKTsK
KworICAgIGVuY29kZXIgPDwgaW1hZ2VIYW5kbGU7CisgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0
aW9uOworICAgIGVuY29kZXIgPDwgbV9zb3VyY2U7CisgICAgZW5jb2RlciA8PCBtX2ltYWdlUGFp
bnRpbmdPcHRpb25zOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UmVm
PERyYXdJbWFnZT4+IERyYXdJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
T3B0aW9uYWw8SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOworICAgIGRlY29kZXIgPj4gaW1hZ2VI
YW5kbGU7CisgICAgaWYgKCFpbWFnZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb247CisgICAgZGVjb2RlciA+
PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9uKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBzb3VyY2U7CisgICAgZGVjb2Rl
ciA+PiBzb3VyY2U7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gaW1hZ2VQYWludGluZ09w
dGlvbnM7CisgICAgZGVjb2RlciA+PiBpbWFnZVBhaW50aW5nT3B0aW9uczsKKyAgICBpZiAoIWlt
YWdlUGFpbnRpbmdPcHRpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIERyYXdJbWFnZTo6Y3JlYXRlKCppbWFnZUhhbmRsZS0+aW1hZ2UsICpkZXN0aW5hdGlv
biwgKnNvdXJjZSwgKmltYWdlUGFpbnRpbmdPcHRpb25zKTsKK30KKwogY2xhc3MgRHJhd1RpbGVk
SW1hZ2UgOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RHJh
d1RpbGVkSW1hZ2U+IGNyZWF0ZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
aW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0xMzg0LDE4ICsxNDMyLDE3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsbFJvdW5kZWRSZWN0KHJlY3QsIGNvbG9yLCBi
bGVuZE1vZGUpKTsKICAgICB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5GaWxsUm91
bmRlZFJlY3QoKTsKKwogICAgIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAgICAgY29uc3QgQ29sb3ImIGNvbG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2xvcjsgfQogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX2JsZW5kTW9kZTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxSZWY8RmlsbFJvdW5kZWRSZWN0Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJp
dmF0ZToKLSAgICBGaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQotICAgICAgICA6IERyYXdp
bmdJdGVtKEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3QpCi0gICAgICAgICwgbV9yZWN0KHJlY3Qp
Ci0gICAgICAgICwgbV9jb2xvcihjb2xvcikKLSAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1v
ZGUpCi0gICAgewotICAgIH0KKyAgICBXRUJDT1JFX0VYUE9SVCBGaWxsUm91bmRlZFJlY3QoY29u
c3QgRmxvYXRSb3VuZGVkUmVjdCYsIGNvbnN0IENvbG9yJiwgQmxlbmRNb2RlKTsKIAogICAgIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8
RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3JlY3QucmVjdCgpOyB9CkBAIC0xNDA1LDYgKzE0NTIsMzUgQEAgcHJp
dmF0ZToKICAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPgordm9pZCBGaWxsUm91bmRlZFJlY3Q6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbV9yZWN0OworICAgIGVuY29kZXIgPDwgbV9jb2xvcjsK
KyAgICBlbmNvZGVyIDw8IG1fYmxlbmRNb2RlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PgorT3B0aW9uYWw8UmVmPEZpbGxSb3VuZGVkUmVjdD4+IEZpbGxSb3VuZGVkUmVjdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8RmxvYXRSb3VuZGVkUmVjdD4gcmVj
dDsKKyAgICBkZWNvZGVyID4+IHJlY3Q7CisgICAgaWYgKCFyZWN0KQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Q29sb3I+IGNvbG9yOworICAgIGRlY29kZXIg
Pj4gY29sb3I7CisgICAgaWYgKCFjb2xvcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOworICAgIGRlY29kZXIgPj4gYmxl
bmRNb2RlOworICAgIGlmICghYmxlbmRNb2RlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIEZpbGxSb3VuZGVkUmVjdDo6Y3JlYXRlKCpyZWN0LCAqY29sb3IsICpi
bGVuZE1vZGUpOworfQorCiBjbGFzcyBGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSA6IHB1YmxpYyBE
cmF3aW5nSXRlbSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxGaWxsUmVjdFdpdGhSb3VuZGVk
SG9sZT4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVj
dCYgcm91bmRlZEhvbGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCkBAIC0xNzMxLDcgKzE4MDcs
NyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBX
VEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY2Fubm90IHlldCBlbmNvZGUg
RHJhd0dseXBocyIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1h
Z2U6Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5u
b3QgeWV0IGVuY29kZSBEcmF3SW1hZ2UiKTsKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxE
cmF3SW1hZ2U+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d1RpbGVkSW1hZ2U6CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVu
Y29kZSBjYW5ub3QgeWV0IGVuY29kZSBEcmF3VGlsZWRJbWFnZSIpOwpAQCAtMTc4NCw3ICsxODYw
LDcgQEAgdm9pZCBJdGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAg
ZW5jb2RlciA8PCBkb3duY2FzdDxGaWxsQ29tcG9zaXRlZFJlY3Q+KCp0aGlzKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJvdW5kZWRSZWN0OgotICAgICAgICBXVEZM
b2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY2Fubm90IHlldCBlbmNvZGUgRmls
bFJvdW5kZWRSZWN0Iik7CisgICAgICAgIGVuY29kZXIgPDwgZG93bmNhc3Q8RmlsbFJvdW5kZWRS
ZWN0PigqdGhpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0
V2l0aFJvdW5kZWRIb2xlOgogICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVt
OjplbmNvZGUgY2Fubm90IHlldCBlbmNvZGUgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUiKTsKQEAg
LTE4OTUsNyArMTk3MSw4IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRlbTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRl
Y29kZSBjYW5ub3QgeWV0IGRlY29kZSBEcmF3R2x5cGhzIik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZToKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5
TGlzdDo6SXRlbTo6ZGVjb2RlIGNhbm5vdCB5ZXQgZGVjb2RlIERyYXdJbWFnZSIpOworICAgICAg
ICBpZiAoYXV0byBpdGVtID0gRHJhd0ltYWdlOjpkZWNvZGUoZGVjb2RlcikpCisgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PEl0ZW0+KFdURk1vdmUoKml0ZW0pKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkSW1hZ2U6CiAgICAgICAg
IFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29k
ZSBEcmF3VGlsZWRJbWFnZSIpOwpAQCAtMTk1Myw3ICsyMDMwLDggQEAgT3B0aW9uYWw8UmVmPEl0
ZW0+PiBJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3Q6Ci0gICAgICAgIFdURkxvZ0Fs
d2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29kZSBGaWxsUm91
bmRlZFJlY3QiKTsKKyAgICAgICAgaWYgKGF1dG8gaXRlbSA9IEZpbGxSb3VuZGVkUmVjdDo6ZGVj
b2RlKGRlY29kZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJ
dGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlOgogICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlM
aXN0OjpJdGVtOjpkZWNvZGUgY2Fubm90IHlldCBkZWNvZGUgRmlsbFJlY3RXaXRoUm91bmRlZEhv
bGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9J
Y29uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1Mu
bW0KaW5kZXggYTdlZTlmNjZjMDAzZDAzOTVmODE4ODI3OGE0M2JkY2NjMDE1YWVjOC4uODEzNmMx
ZmZmNDViOWEzMTc3YTk2OGJiNmY2MmIyZGY4OTA3ZGE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KQEAgLTY3LDcgKzY3LDcgQEAgdm9p
ZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QpCiAgICAgRmxvYXRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxvYXRS
ZWN0IHNyY1JlY3QoRmxvYXRQb2ludCgpLCBzaXplKTsKIAotICAgIGNvbnRleHQuc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uSGlnaCk7CisgICAgY29udGV4dC5zZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoKTsKICAg
ICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShtX2NnSW1hZ2UuZ2V0KCksIHNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwCmluZGV4IDMzMzIyOWI0Y2U0YTQ2MzE4
NzgxZWQ4MDYyODExZTc2Mzg5NmIwZjYuLjdkMmNlZmQ2MjYxZGVlMmEzOWE4OWQxMDE3MDJlYjUw
MjUyZjRmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBCaXRt
YXBUZXh0dXJlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiwgR3JhcGhpY3NMYXllciog
c291cmNlTGF5ZXIsIGMKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKLSAgICBjb250ZXh0LnNldEltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkRlZmF1bHQpOworICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdCk7
CiAgICAgY29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUoVGV4dE1vZGVGaWxsKTsKIAogICAgIElu
dFJlY3Qgc291cmNlUmVjdCh0YXJnZXRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwCmluZGV4IGY1Mzg3MGYyZjQxNzU5M2JhOTczNDUwNGI5NThkNmQyMzM4ODU1YmQuLmVmMzU0
MGEyODQxYTE3NTJhODY0ZjczNjU4NjdlYWM2N2IyMTQyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcApAQCAtMTA2MiwxOSArMTA2MiwxOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1JbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFs
aXR5CiAgICAgRDJEMV9JTlRFUlBPTEFUSU9OX01PREUgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xB
VElPTl9NT0RFX05FQVJFU1RfTkVJR0hCT1I7CiAKICAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBj
YXNlIEludGVycG9sYXRpb25EZWZhdWx0OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6
OkRlZmF1bHQ6CiAgICAgICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9ORUFS
RVNUX05FSUdIQk9SOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25Ob25l
OgorICAgIGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGU6CiAgICAg
ICAgIHF1YWxpdHkgPSBEMkQxX0lOVEVSUE9MQVRJT05fTU9ERV9ORUFSRVNUX05FSUdIQk9SOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25Mb3c6CisgICAgY2FzZSBJbnRl
cnBvbGF0aW9uUXVhbGl0eTo6TG93OgogICAgICAgICBxdWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFU
SU9OX01PREVfTElORUFSOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEludGVycG9sYXRpb25N
ZWRpdW06CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOgogICAgICAgICBx
dWFsaXR5ID0gRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfQ1VCSUM7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW50ZXJwb2xhdGlvbkhpZ2g6CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6SGlnaDoKICAgICAgICAgcXVhbGl0eSA9IEQyRDFfSU5URVJQT0xBVElPTl9NT0RFX0hJR0hf
UVVBTElUWV9DVUJJQzsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tCmluZGV4IGQwMTk0ODlkYThiZWNhYjRhNTUyZjBjMDk3
Yzg0NTIzMjY1NTkwMjMuLmUzMzVkNzViZGNhNGZhNzllNWYzZGQwMjlhMDY4YzM0YjY3ZDM2MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KQEAgLTQ3MSwx
NSArNDcxLDE1IEBAIC0gKHZvaWQpX3VubG9ja0ZvY3VzVmlld0luQ29udGV4dDooQ0dDb250ZXh0
UmVmKWNvbnRleHQKIHN0YXRpYyBDR0ludGVycG9sYXRpb25RdWFsaXR5IHRvQ0dJbnRlcnBvbGF0
aW9uUXVhbGl0eShXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAg
IHN3aXRjaCAocXVhbGl0eSkgewotICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvbkRlZmF1
bHQ6CisgICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25EZWZhdWx0OwotICAgIGNhc2UgV2ViQ29yZTo6
SW50ZXJwb2xhdGlvbk5vbmU6CisgICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0
eTo6RG9Ob3RJbnRlcnBvbGF0ZToKICAgICAgICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25Ob25l
OwotICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvbkxvdzoKKyAgICBjYXNlIFdlYkNvcmU6
OkludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CiAgICAgICAgIHJldHVybiBrQ0dJbnRlcnBvbGF0
aW9uTG93OwotICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvbk1lZGl1bToKKyAgICBjYXNl
IFdlYkNvcmU6OkludGVycG9sYXRpb25RdWFsaXR5OjpNZWRpdW06CiAgICAgICAgIHJldHVybiBr
Q0dJbnRlcnBvbGF0aW9uTWVkaXVtOwotICAgIGNhc2UgV2ViQ29yZTo6SW50ZXJwb2xhdGlvbkhp
Z2g6CisgICAgY2FzZSBXZWJDb3JlOjpJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDoKICAgICAg
ICAgcmV0dXJuIGtDR0ludGVycG9sYXRpb25IaWdoOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCA5MTY0ODczZDU4MjUxZDMy
YzgwMDkyYTJmYzZmOGM5NjRkZDlhMjc1Li4xYzY2YWQ3OWNlNDBjMTQ1NThmNjY1MjUyYjI1ZTNi
YjdkZWQxNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIEltYWdlQnVm
ZmVyKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6aW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlm
ICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBtX2ltYWdl
QnVmZmVyLT5jb250ZXh0KCkuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0
aW9uRGVmYXVsdCk7CisgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnNldEltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQpOwogICAgIG1faW1h
Z2VCdWZmZXItPmNvbnRleHQoKS5zZXRTdHJva2VUaGlja25lc3MoMSk7CiAKICAgICByZXR1cm4g
bV9pbWFnZUJ1ZmZlci5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbWFnZVF1YWxpdHlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bWFnZVF1YWxpdHlDb250cm9sbGVyLmNwcAppbmRleCAyMGI2YTFhMmZiZjgzMGFhY2I5MjVhYzU0
NDkzYzBlYzZmMDgwNmYwLi4yYmMxOWQxZTRkYWU2MDA0YjM1MjA0OGEwNGE1ZmYxYTFiMTA5YTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRy
b2xsZXIuY3BwCkBAIC0xMDIsMTIgKzEwMiwxMiBAQCBPcHRpb25hbDxJbnRlcnBvbGF0aW9uUXVh
bGl0eT4gSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6aW50ZXJwb2xhdGlvblF1YWxpdHlGcm9tUwog
ewogICAgIHN3aXRjaCAoc3R5bGUuaW1hZ2VSZW5kZXJpbmcoKSkgewogICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uTG93
OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICAgICBjYXNlIElt
YWdlUmVuZGVyaW5nOjpDcmlzcEVkZ2VzOgogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6OlBpeGVs
YXRlZDoKLSAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Ob25lOworICAgICAgICByZXR1cm4g
SW50ZXJwb2xhdGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGU7CiAgICAgY2FzZSBJbWFnZVJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRl
ZmF1bHQ7IC8vIEZJWE1FOiBDU1MgMyBJbWFnZXMgc2F5cyB0aGF0IG9wdGltaXplUXVhbGl0eSBz
aG91bGQgYmVoYXZlIGxpa2UgJ2F1dG8nLCBidXQgdGhhdCBwcmV2ZW50cyBhdXRob3JzIGZyb20g
b3ZlcnJpZGluZyB0aGlzIGxvdyBxdWFsaXR5IHJlbmRlcmluZyBiZWhhdmlvci4KKyAgICAgICAg
cmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OyAvLyBGSVhNRTogQ1NTIDMgSW1h
Z2VzIHNheXMgdGhhdCBvcHRpbWl6ZVF1YWxpdHkgc2hvdWxkIGJlaGF2ZSBsaWtlICdhdXRvJywg
YnV0IHRoYXQgcHJldmVudHMgYXV0aG9ycyBmcm9tIG92ZXJyaWRpbmcgdGhpcyBsb3cgcXVhbGl0
eSByZW5kZXJpbmcgYmVoYXZpb3IuCiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6QXV0bzoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTE4LDcgKzExOCw3IEBAIEludGVycG9sYXRpb25RdWFs
aXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KEdy
YXBoaWNzCiB7CiAgICAgLy8gSWYgdGhlIGltYWdlIGlzIG5vdCBhIGJpdG1hcCBpbWFnZSwgdGhl
biBub25lIG9mIHRoaXMgaXMgcmVsZXZhbnQgYW5kIHdlIGp1c3QgcGFpbnQgYXQgaGlnaCBxdWFs
aXR5LgogICAgIGlmICghKGltYWdlLmlzQml0bWFwSW1hZ2UoKSB8fCBpbWFnZS5pc1BERkRvY3Vt
ZW50SW1hZ2UoKSkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFs
aXR5OjpEZWZhdWx0OwogCiAgICAgaWYgKE9wdGlvbmFsPEludGVycG9sYXRpb25RdWFsaXR5PiBz
dHlsZUludGVycG9sYXRpb24gPSBpbnRlcnBvbGF0aW9uUXVhbGl0eUZyb21TdHlsZShvYmplY3Qt
PnN0eWxlKCkpKQogICAgICAgICByZXR1cm4gc3R5bGVJbnRlcnBvbGF0aW9uLnZhbHVlKCk7CkBA
IC0xNDcsMTAgKzE0NywxMCBAQCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbWFnZVF1YWxpdHlDb250
cm9sbGVyOjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShHcmFwaGljcwogICAgICAgICAgICAg
c2V0KG9iamVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKICAgICAgICAgICAgIHJlc3RhcnRU
aW1lcigpOwogICAgICAgICAgICAgbV9saXZlUmVzaXplT3B0aW1pemF0aW9uSXNBY3RpdmUgPSB0
cnVlOwotICAgICAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25Mb3c7CisgICAgICAgICAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKICAgICAgICAgfQogICAgICAgICBpZiAo
bV9saXZlUmVzaXplT3B0aW1pemF0aW9uSXNBY3RpdmUpCi0gICAgICAgICAgICByZXR1cm4gSW50
ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxp
dHk6OkRlZmF1bHQ7CiAgICAgfQogCiAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBjdXJyZW50
VHJhbnNmb3JtID0gY29udGV4dC5nZXRDVE0oKTsKQEAgLTE1OCwyMSArMTU4LDIxIEBAIEludGVy
cG9sYXRpb25RdWFsaXR5IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OmNob29zZUludGVycG9sYXRp
b25RdWFsaXR5KEdyYXBoaWNzCiAgICAgaWYgKCFjb250ZXh0SXNTY2FsZWQgJiYgc2l6ZSA9PSBp
bWFnZVNpemUpIHsKICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc2NhbGUgaW4gZWZmZWN0LiBJZiB3
ZSBoYWQgYSBzY2FsZSBpbiBlZmZlY3QgYmVmb3JlLCB3ZSBjYW4ganVzdCByZW1vdmUgdGhpcyBv
YmplY3QgZnJvbSB0aGUgbGlzdC4KICAgICAgICAgcmVtb3ZlTGF5ZXIob2JqZWN0LCBpbm5lck1h
cCwgbGF5ZXIpOwotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CisgICAgICAg
IHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RGVmYXVsdDsKICAgICB9CiAKICAgICAvLyBU
aGVyZSBpcyBubyBuZWVkIHRvIGhhc2ggc2NhbGVkIGltYWdlcyB0aGF0IGFsd2F5cyB1c2UgbG93
IHF1YWxpdHkgbW9kZSB3aGVuIHRoZSBwYWdlIGRlbWFuZHMgaXQuIFRoaXMgaXMgdGhlIGlDaGF0
IGNhc2UuCiAgICAgaWYgKG1fcmVuZGVyVmlldy5wYWdlKCkuaW5Mb3dRdWFsaXR5SW1hZ2VJbnRl
cnBvbGF0aW9uTW9kZSgpKSB7CiAgICAgICAgIGRvdWJsZSB0b3RhbFBpeGVscyA9IHN0YXRpY19j
YXN0PGRvdWJsZT4oaW1hZ2Uud2lkdGgoKSkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KGltYWdlLmhl
aWdodCgpKTsKICAgICAgICAgaWYgKHRvdGFsUGl4ZWxzID4gY0ludGVycG9sYXRpb25DdXRvZmYp
Ci0gICAgICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgICAgIHJldHVy
biBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93OwogICAgIH0KIAogICAgIC8vIElmIGFuIGFuaW1h
dGVkIHJlc2l6ZSBpcyBhY3RpdmUsIHBhaW50IGluIGxvdyBxdWFsaXR5IGFuZCBraWNrIHRoZSB0
aW1lciBhaGVhZC4KICAgICBpZiAobV9hbmltYXRlZFJlc2l6ZUlzQWN0aXZlKSB7CiAgICAgICAg
IHNldChvYmplY3QsIGlubmVyTWFwLCBsYXllciwgc2l6ZSk7CiAgICAgICAgIHJlc3RhcnRUaW1l
cigpOwotICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxvdzsKKyAgICAgICAgcmV0dXJuIElu
dGVycG9sYXRpb25RdWFsaXR5OjpMb3c7CiAgICAgfQogICAgIC8vIElmIHRoaXMgaXMgdGhlIGZp
cnN0IHRpbWUgcmVzaXppbmcgdGhpcyBpbWFnZSwgb3IgaXRzIHNpemUgaXMgdGhlCiAgICAgLy8g
c2FtZSBhcyB0aGUgbGFzdCByZXNpemUsIGRyYXcgYXQgaGlnaCByZXMsIGJ1dCByZWNvcmQgdGhl
IHBhaW50CkBAIC0xODAsMTMgKzE4MCwxMyBAQCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbWFnZVF1
YWxpdHlDb250cm9sbGVyOjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShHcmFwaGljcwogICAg
IGlmIChpc0ZpcnN0UmVzaXplIHx8IG9sZFNpemUgPT0gc2l6ZSkgewogICAgICAgICByZXN0YXJ0
VGltZXIoKTsKICAgICAgICAgc2V0KG9iamVjdCwgaW5uZXJNYXAsIGxheWVyLCBzaXplKTsKLSAg
ICAgICAgcmV0dXJuIEludGVycG9sYXRpb25EZWZhdWx0OworICAgICAgICByZXR1cm4gSW50ZXJw
b2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ7CiAgICAgfQogICAgIC8vIElmIHRoZSB0aW1lciBpcyBu
byBsb25nZXIgYWN0aXZlLCBkcmF3IGF0IGhpZ2ggcXVhbGl0eSBhbmQgZG9uJ3QKICAgICAvLyBz
ZXQgdGhlIHRpbWVyLgogICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKSB7CiAgICAgICAgIHJl
bW92ZUxheWVyKG9iamVjdCwgaW5uZXJNYXAsIGxheWVyKTsKLSAgICAgICAgcmV0dXJuIEludGVy
cG9sYXRpb25EZWZhdWx0OworICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRl
ZmF1bHQ7CiAgICAgfQogICAgIC8vIFRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlc2l6ZWQgdG8gdHdv
IGRpZmZlcmVudCBzaXplcyB3aGlsZSB0aGUgdGltZXIKICAgICAvLyBpcyBhY3RpdmUsIHNvIGRy
YXcgYXQgbG93IHF1YWxpdHksIHNldCB0aGUgZmxhZyBmb3IgYW5pbWF0ZWQgcmVzaXplcyBhbmQK
QEAgLTE5NCw3ICsxOTQsNyBAQCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbWFnZVF1YWxpdHlDb250
cm9sbGVyOjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShHcmFwaGljcwogICAgIHNldChvYmpl
Y3QsIGlubmVyTWFwLCBsYXllciwgc2l6ZSk7CiAgICAgbV9hbmltYXRlZFJlc2l6ZUlzQWN0aXZl
ID0gdHJ1ZTsKICAgICByZXN0YXJ0VGltZXIoKTsKLSAgICByZXR1cm4gSW50ZXJwb2xhdGlvbkxv
dzsKKyAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHk6OkxvdzsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjJjNDlhNjY2NjU0YTE0MTM4
YzgyNjY2YmZlOGNhZWZiZDVkZmU3ZS4uZDdjOTE2Y2U2NDZiZGI3ZWVlZTg1MDUxYjRjNTgzODIz
Yzk2YmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC02
NDgsNyArNjQ4LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICAgICAgaW1hZ2VFbGVt
ZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlT3BlcmF0
b3I6OlNvdXJjZU92ZXIsCiAgICAgICAgIGRlY29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2Us
IHBhaW50SW5mbyksCiAgICAgICAgIGltYWdlT3JpZW50YXRpb24oKSwKLSAgICAgICAgaW1hZ2Ug
PyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8uY29udGV4dCgpLCAqaW1hZ2Us
IGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0aW9uRGVmYXVsdAor
ICAgICAgICBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250
ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9s
YXRpb25RdWFsaXR5OjpEZWZhdWx0CiAgICAgfTsKIAogICAgIGF1dG8gZHJhd1Jlc3VsdCA9IHBh
aW50SW5mby5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWcsIHJlY3QsIG9wdGlvbnMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNzEzMmU4
OGI0Mjk0NTg4YTdkNGZmODk3YmEzODllOTJkY2IzNTQzOC4uZTVkYjQyNGI1ZjZhMWFmN2ZkMjYy
MTZjMzhlZDIxMmNjMGE3Njc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9E
YXRhYmFzZURldGFpbHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1JlZ2lvbnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgpAQCAtMTE0Myw2ICsxMTQ0LDE4IEBAIHN0YXRpYyBib29s
IGRlY29kZU9wdGlvbmFsSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEltYWdlPiYgaW1h
Z2UpCiAgICAgcmV0dXJuIGRlY29kZUltYWdlKGRlY29kZXIsIGltYWdlKTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZT46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQorewor
ICAgIGVuY29kZU9wdGlvbmFsSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UuZ2V0KCkp
OworfQorCitib29sIEFyZ3VtZW50Q29kZXI8RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIERpc3BsYXlMaXN0OjpJbWFnZUhhbmRsZSYgaW1hZ2VIYW5k
bGUpCit7CisgICAgaWYgKCFkZWNvZGVPcHRpb25hbEltYWdlKGRlY29kZXIsIGltYWdlSGFuZGxl
LmltYWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1cnNvciYgY3Vyc29yKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA2MDZkYmNhOGUzMjZi
MWQ0Zjk4MjJkZGE5M2I3OGM4MWQxYmU0NDMyLi4yMzVkNWU5MjJhZWE0Mjc4NTg0YzQ3ZGYxNTBi
MjA5YWIzNGJjM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaApAQCAtMTg5LDggKzE4OSwxMyBAQCBuYW1lc3BhY2UgRE9NQ2FjaGVFbmdpbmUgewog
c3RydWN0IENhY2hlSW5mbzsKIHN0cnVjdCBSZWNvcmQ7CiB9CisKK25hbWVzcGFjZSBEaXNwbGF5
TGlzdCB7CitjbGFzcyBJbWFnZUhhbmRsZTsKIH0KIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CiBuYW1lc3BhY2UgSVBDIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0+IHsKQEAgLTM4Myw2ICszODgsMTEgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdXJzb3I+IHsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkN1cnNvciYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VIYW5kbGU+IHsKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbWFnZUhhbmRsZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlSGFuZGxlJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CmluZGV4IDA1ZDAzZTAxMjQ4NzkyY2NlZjU3ZjllNzVkYWU4MDA0OTJkZjY0ZGIuLmIyYzg0MGI3
MTc1ODIzNjIxZjM5ZTY1NjJiOTljMjgxNjIwYWI2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTc5LDcgKzU3OSw3IEBA
ICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0Oi0x
LjBmXSwgV2ViS2l0TWF4UGFyc2VEdXJhdGlvblByZWZlcmVuY2VLZXksCiAgICAgICAgIEBOTywg
V2ViS2l0QWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdEZvcm1TdWJtaXNzaW9uUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgQE5PLCBXZWJLaXRBbHdheXNSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UHJlZmVyZW5jZUtleSwKLSAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6SW50ZXJwb2xh
dGlvbkxvd10sIFdlYktpdEludGVycG9sYXRpb25RdWFsaXR5UHJlZmVyZW5jZUtleSwKKyAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6c3RhdGljX2Nhc3Q8aW50PihJbnRlcnBvbGF0aW9u
UXVhbGl0eTo6TG93KV0sIFdlYktpdEludGVycG9sYXRpb25RdWFsaXR5UHJlZmVyZW5jZUtleSwK
ICAgICAgICAgQFlFUywgV2ViS2l0UGFzc3dvcmRFY2hvRW5hYmxlZFByZWZlcmVuY2VLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6Mi4wZl0sIFdlYktpdFBhc3N3b3JkRWNo
b0R1cmF0aW9uUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXROZXR3b3JrRGF0YVVz
YWdlVHJhY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>