<?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>236845</bug_id>
          
          <creation_ts>2022-02-18 10:19:21 -0800</creation_ts>
          <short_desc>[macOS] Hovering over &quot;Copy Cropped Image&quot; context menu item should reveal the cropped image</short_desc>
          <delta_ts>2022-02-19 11:25:19 -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>Platform</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>
          <dependson>236842</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>dino</cc>
    
    <cc>hi</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1843478</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-18 10:19:21 -0800</bug_when>
    <thetext>rdar://89152746</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843532</commentid>
    <comment_count>1</comment_count>
      <attachid>452552</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-18 11:41:29 -0800</bug_when>
    <thetext>Created attachment 452552
Depends on #236842</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843689</commentid>
    <comment_count>2</comment_count>
      <attachid>452594</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-18 16:03:47 -0800</bug_when>
    <thetext>Created attachment 452594
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843871</commentid>
    <comment_count>3</comment_count>
      <attachid>452594</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-19 10:48:03 -0800</bug_when>
    <thetext>Comment on attachment 452594
Rebase on trunk

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843879</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-19 11:25:15 -0800</bug_when>
    <thetext>Committed r290211 (247539@main): &lt;https://commits.webkit.org/247539@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452594.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452552</attachid>
            <date>2022-02-18 11:41:29 -0800</date>
            <delta_ts>2022-02-18 16:03:45 -0800</delta_ts>
            <desc>Depends on #236842</desc>
            <filename>bug-236845-20220218114129.patch</filename>
            <type>text/plain</type>
            <size>23749</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE3NTk0NWRlMjIzMzhmMmQz
ZWFiNTRiZDllOWFjYmMyNTQ0ZDg2YzMuLmRmOTUyMzgyNTAyNDYxNjMzNWM3OGYxZmUwNmM1ODgx
ZTIwZTRmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMjItMDItMTggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIb3Zlcmlu
ZyBvdmVyICJDb3B5IENyb3BwZWQgSW1hZ2UiIGNvbnRleHQgbWVudSBpdGVtIHNob3VsZCByZXZl
YWwgdGhlIGNyb3BwZWQgaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjg0NQorICAgICAgICByZGFyOi8vODkxNTI3NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmV2
ZWFsaW5nIHRoZSAiY3JvcHBlZCIgcmVnaW9uIG9mIGFuIGltYWdlIGVsZW1lbnQgKHdoaWxlIGRp
bW1pbmcgb3V0IHRoZSByZXN0IG9mIHRoZSBpbWFnZSkKKyAgICAgICAgd2hlbiB0aGUgdXNlciBo
aWdobGlnaHRzIHRoZSBuZXcgIkNvcHkgQ3JvcHBlZCBJbWFnZSIgY29udGV4dCBtZW51IGl0ZW0g
b24gbWFjT1MuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZv
cm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmg6CisKKyAgICAgICAgQWRqdXN0IGBy
ZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cGAgdG8gdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlciB3
aXRoIGJvdGggdGhlIHJlc3VsdGluZyBDR0ltYWdlUmVmLCBhcyB3ZWxsIGFzCisgICAgICAgIGEg
Q0dSZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgZnJhbWUgb2YgdGhlIGNyb3BwZWQgaW1hZ2Ugd2l0
aCByZXNwZWN0IHRvIHRoZSBzb3VyY2UgaW1hZ2UsIG5vcm1hbGl6ZWQgdG8gdGhlIHVuaXQKKyAg
ICAgICAgc3F1YXJlLiBBZGRpdGlvbmFsbHksIHR3ZWFrIGFsbCBjYWxsIHNpdGVzIG9mIGByZXF1
ZXN0SW1hZ2VBbmFseXNpc01hcmt1cGAgdG8gcGFzcyBpbiBjb21wbGV0aW9uIGhhbmRsZXJzIHRo
YXQKKyAgICAgICAgYWNjZXB0IGJvdGggYXJndW1lbnRzLgorCisgICAgICAgICogU2hhcmVkL0Nv
bnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNv
bnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRh
OjpoaXRUZXN0ZWRFbGVtZW50Q29udGV4dCBjb25zdCk6CisKKyAgICAgICAgQWRkIGFuIG9wdGlv
bmFsIEVsZW1lbnRDb250ZXh0IHJlcHJlc2VudGluZyB0aGUgaW5uZXIgaGl0LXRlc3RlZCBlbGVt
ZW50IGZvciB0aGUgY29udGV4dCBtZW51LiBXZSB1c2UgdGhpcyBiZWxvdworICAgICAgICBpbiBg
V2ViUGFnZVByb3h5Ojp3aWxsSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtYCB0byBrbm93IHdoZXJl
IHdlIG5lZWQgdG8gaW5zdGFsbCB0aGUgY3JvcHBlZCBpbWFnZSBvdmVybGF5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRGlzbWlzc0NvbnRleHRNZW51KToKKworICAgICAgICBSZXNldCB0aGUgY2FjaGVk
IGNyb3BwZWQgaW1hZ2UgcmVzdWx0LCBhcyB3ZWxsIGFzIHRoZSBjcm9wcGVkIGltYWdlIG92ZXJs
YXkgc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgZG9BZnRlckNvbXB1dGluZ0ltYWdlQW5hbHlzaXNSZXN1bHRzRm9yTWFy
a3VwOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0YW50OmNv
cHlDcm9wcGVkSW1hZ2U6c291cmNlTUlNRVR5cGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBt
ZW51OndpbGxIaWdobGlnaHRJdGVtOl0pOgorCisgICAgICAgIEltcGxlbWVudCB0aGlzIE5TTWVu
dSBkZWxlZ2F0ZSBtZXRob2QgYW5kIGNhbGwgb3V0IHRvIFdlYlBhZ2VQcm94eSB3aGVuZXZlciB0
aGUgaGlnaGxpZ2h0ZWQgY29udGV4dCBtZW51IGl0ZW0KKyAgICAgICAgY2hhbmdlcy4gU2VlIGJl
bG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6YXBwbHlNYXJrdXBUb0NvbnRyb2xsZWRJbWFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbEhpZ2hsaWdodENvbnRleHRNZW51SXRlbSk6CisKKyAgICAgICAgVGhpcyBtZXRob2Qg
Y29vcmRpbmF0ZXMgc2hvd2luZyBvciBoaWRpbmcgdGhlIGNyb3BwZWQgaW1hZ2Ugb3ZlcmxheSB3
aGVuIHRoZSB1c2VyIGhpZ2hsaWdodHMgKGJ1dCBkb2VzIG5vdCB5ZXQKKyAgICAgICAgc2VsZWN0
KSB0aGUgIkNvcHkgQ3JvcHBlZCBJbWFnZSIgY29udGV4dCBtZW51IGl0ZW0uIFdoZW4gdGhlIHVz
ZXIgZmlyc3QgaGlnaGxpZ2h0cyB0aGlzIGl0ZW0sIHdlIHRyaWdnZXIgYW4KKyAgICAgICAgYW5h
bHlzaXMgcmVxdWVzdCBpbiBWaXNpb25LaXQ7IHdoZW4gd2UgbGF0ZXIgb2J0YWluIHRoZSByZXN1
bHRzLCB3ZSBzZW5kIHRoZSBpbWFnZSB0byB0aGUgd2ViIHByb2Nlc3MgYXMgVElGRgorICAgICAg
ICBkYXRhLCBhbmQgaW5qZWN0IGl0IGludG8gdGhlIGltYWdlIHVzaW5nIGBJbWFnZU92ZXJsYXk6
OkNyb3BwZWRJbWFnZTo6aW5zdGFsbGAuIFVuLWhpZ2hsaWdodGluZyBhbmQgcmUtCisgICAgICAg
IGhpZ2hsaWdodGluZyB0aGUgbWVudSBpdGVtIHRoZW4gcmVzcGVjdGl2ZWx5IGhpZGVzIGFuZCBz
aG93cyB0aGUgY3JvcHBlZCBpbWFnZSBvdmVybGF5IGJ5IHNldHRpbmcgdmlzaWJpbGl0eS4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51Q29weUNyb3Bw
ZWRJbWFnZSk6CisKKyAgICAgICAgQWRqdXN0IHRoaXMgdG8gdXNlIHRoZSBjYWNoZWQgYG1fY3Jv
cHBlZEltYWdlUmVzdWx0YCBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGNvbXB1dGVkLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnU6OnNob3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkRGlzbWlzc0NvbnRl
eHRNZW51KToKKworICAgICAgICBEZXN0cm95IHRoZSBgbV9jcm9wcGVkSW1hZ2VPdmVybGF5YCBh
ZnRlciB0aGUgY29udGV4dCBtZW51IGlzIGRpc21pc3NlZCAod2hpY2ggdW5pbnN0YWxscyB0aGUg
Y3JvcHBlZCBpbWFnZQorICAgICAgICBvdmVybGF5IGluIHRoZSBwcm9jZXNzKS4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppbnN0YWxsQ3JvcHBlZEltYWdlT3ZlcmxheSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldENyb3BwZWRJbWFnZU92ZXJsYXlWaXNpYmlsaXR5KToKKwor
ICAgICAgICBBZGQgbWV0aG9kcyB0byBpbnN0YWxsIGFuZCB0b2dnbGUgdGhlIHZpc2liaWxpdHkg
b2YgdGhlIGNyb3BwZWQgaW1hZ2Ugb3ZlcmxheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMjItMDItMTYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIGFjY2VzcyB0byBtYWNoIHNlcnZpY2UgaW4gdGhl
IE5ldHdvcmtpbmcgcHJvY2VzcyBmb3IgYWxsIHVzZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaAppbmRleCBhZjc1
ODhlYjQyYTExMTkyOTFkYThmMThlZDJkOGJhYWQyMTMwNWFmLi5kOTc0MTYzMTJiMTJhMmIxMTA4
N2JiZjcyMzQ0N2I5ODVlYjkzMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgKQEAgLTU5LDcgKzU5LDcgQEAg
UmV0YWluUHRyPENvY29hSW1hZ2VBbmFseXplclJlcXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHl6ZXJS
ZXF1ZXN0KENHSW1hZ2VSZWYsIFZLQW4KIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhB
TkNFTUVOVFMpCiB2b2lkIHJlcXVlc3RJbWFnZUFuYWx5c2lzV2l0aElkZW50aWZpZXIoQ29jb2FJ
bWFnZUFuYWx5emVyICosIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ0dJbWFnZVJlZiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYp
Owotdm9pZCByZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChDR0ltYWdlUmVmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKENHSW1hZ2VSZWYpPiYmKTsKK3ZvaWQgcmVxdWVzdEltYWdlQW5hbHlzaXNN
YXJrdXAoQ0dJbWFnZVJlZiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDR0ltYWdlUmVmLCBDR1Jl
Y3QpPiYmKTsKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b250ZXh0TWVudUNvbnRleHREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRN
ZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDcwMGE4ODUyNjBjYjAyNWY0N2VkNTM3MDM3OTcyY2Zh
ZjZlYTM3YWEuLjFmNzgxMjc4NjE1NDBkZWQ3YzlhMDQ4NjJhNDcwMzEyMGIwMTU3ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCkBAIC00
MywxMyArNDMsMTQgQEAgQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0
RGF0YSgpCiB7CiB9CiAKLUNvbnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4
dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9y
PFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1lbnVJdGVtcywgY29uc3QgQ29udGV4
dE1lbnVDb250ZXh0JiBjb250ZXh0KQorQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1l
bnVDb250ZXh0RGF0YShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBzdGQ6Om9wdGlvbmFs
PEVsZW1lbnRDb250ZXh0PiYmIGhpdFRlc3RlZEVsZW1lbnRDb250ZXh0LCBjb25zdCBWZWN0b3I8
V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBjb25zdCBDb250ZXh0
TWVudUNvbnRleHQmIGNvbnRleHQpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAg
OiBtX3R5cGUoY29udGV4dC5jb250cm9sbGVkSW1hZ2UoKSA/IFR5cGU6OlNlcnZpY2VzTWVudSA6
IGNvbnRleHQudHlwZSgpKQogI2Vsc2UKICAgICA6IG1fdHlwZShjb250ZXh0LnR5cGUoKSkKICNl
bmRpZgogICAgICwgbV9tZW51TG9jYXRpb24obWVudUxvY2F0aW9uKQorICAgICwgbV9oaXRUZXN0
ZWRFbGVtZW50Q29udGV4dChXVEZNb3ZlKGhpdFRlc3RlZEVsZW1lbnRDb250ZXh0KSkKICAgICAs
IG1fbWVudUl0ZW1zKG1lbnVJdGVtcykKICAgICAsIG1fd2ViSGl0VGVzdFJlc3VsdERhdGEoeyBj
b250ZXh0LmhpdFRlc3RSZXN1bHQoKSwgdHJ1ZSB9KQogICAgICwgbV9zZWxlY3RlZFRleHQoY29u
dGV4dC5zZWxlY3RlZFRleHQoKSkKQEAgLTk0LDYgKzk1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgbV90eXBlOwogICAgIGVuY29kZXIgPDwgbV9tZW51TG9jYXRpb247CisgICAgZW5j
b2RlciA8PCBtX2hpdFRlc3RlZEVsZW1lbnRDb250ZXh0OwogICAgIGVuY29kZXIgPDwgbV9tZW51
SXRlbXM7CiAgICAgZW5jb2RlciA8PCBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIGVuY29k
ZXIgPDwgbV9zZWxlY3RlZFRleHQ7CkBAIC0xMjEsNiArMTIzLDkgQEAgYm9vbCBDb250ZXh0TWVu
dUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb250ZXh0TWVudUNv
bnRleHREYXQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21lbnVMb2NhdGlvbikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
Lm1faGl0VGVzdGVkRWxlbWVudENvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21lbnVJdGVtcykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0
YS5oCmluZGV4IGQwMWFlNjdmMDhiOTRjMTQxN2EyN2QxNWIwN2QyM2VmMmYxNDVmN2EuLjE5MmE2
ODI0MTg3NGZhODVkNGRlMTU3OGMyZDUxOWRkNmMxZDk2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKQEAgLTQ2LDEyICs0NiwxMyBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgVHlwZSA9IFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZTsK
IAogICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoKTsKLSAgICBDb250ZXh0TWVudUNvbnRleHRE
YXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFZlY3RvcjxX
ZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE+JiBtZW51SXRlbXMsIGNvbnN0IFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udGV4dCYpOworICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpF
bGVtZW50Q29udGV4dD4mJiBoaXRUZXN0ZWRFbGVtZW50Q29udGV4dCwgY29uc3QgVmVjdG9yPFdl
YktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1lbnVJdGVtcywgY29uc3QgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250ZXh0Jik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAgICBjb25zdCBWZWN0b3I8V2ViS2l0OjpX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9tZW51
SXRlbXM7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGhp
dFRlc3RlZEVsZW1lbnRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9oaXRUZXN0ZWRFbGVtZW50
Q29udGV4dDsgfQogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViSGl0VGVzdFJlc3VsdERhdGE+
JiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3Vs
dERhdGE7IH0KICAgICBjb25zdCBTdHJpbmcmIHNlbGVjdGVkVGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2VsZWN0ZWRUZXh0OyB9CiAKQEAgLTg2LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBUeXBl
IG1fdHlwZTsKIAogICAgIFdlYkNvcmU6OkludFBvaW50IG1fbWVudUxvY2F0aW9uOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IG1faGl0VGVzdGVkRWxlbWVudENv
bnRleHQ7CiAgICAgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gbV9tZW51
SXRlbXM7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkhpdFRlc3RSZXN1bHREYXRhPiBtX3dlYkhp
dFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggYWQ1NTdkOTBmM2JmZDgyNWNmMmVkYTljYTQzOTM3MWYyZDgyYmUxOS4uNDlkYzM3NTcw
YzNhNjc4Y2M3NjI1ZmIyY2JjMTAwMTI1ZGM1ZGIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MDA0LDYgKzcwMDQsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZERpc21pc3NDb250ZXh0TWVudSgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkRGlzbWlzc0NvbnRleHRNZW51KCkpOwogCiAgICAgcGFnZUNsaWVudCgpLmRpZERpc21pc3ND
b250ZXh0TWVudSgpOworCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykK
KyAgICBtX2Nyb3BwZWRJbWFnZVJlc3VsdCA9IHsgfTsKKyAgICBtX2Nyb3BwZWRJbWFnZU92ZXJs
YXlTdGF0ZSA9IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6SW5hY3RpdmU7CisjZW5kaWYKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNv
bnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGFmZTgxNDY5OTNlNGVkYTg0YTIzMDEzY2Y3YzlhYjU1ODUwNDIwNGYuLjJjMjQ5
OWFkNGJkNjljY2EwOWM2NmUyYmE3MmUwYWI4NGEwNDg0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzcxLDYgKzEzNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWREaXNtaXNzQ29udGV4dE1lbnUoKTsKICAgICB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICAgICB2b2lkIGhhbmRsZUNvbnRl
eHRNZW51S2V5RXZlbnQoKTsKKyAgICB2b2lkIHdpbGxIaWdobGlnaHRDb250ZXh0TWVudUl0ZW0o
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24pOwogI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgYnkg
dGhlIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuCkBAIC0zMjA0LDYgKzMyMDUsMTcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyPiBtX2N1cnJlbnRGdWxsc2NyZWVuVmlkZW9TZXNzaW9uSWRlbnRpZmllcjsKICAgICBS
dW5Mb29wOjpUaW1lcjxXZWJQYWdlUHJveHk+IG1fZnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvblRp
bWVyOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQor
ICAgIGVudW0gY2xhc3MgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlIDogdWludDhfdCB7CisgICAg
ICAgIEluYWN0aXZlLAorICAgICAgICBBbmFseXppbmcsCisgICAgICAgIEhpZGRlbiwKKyAgICAg
ICAgU2hvd2luZywKKyAgICB9OworICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgbV9jcm9w
cGVkSW1hZ2VSZXN1bHQ7CisgICAgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlIG1fY3JvcHBlZElt
YWdlT3ZlcmxheVN0YXRlIHsgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlOjpJbmFjdGl2ZSB9Owor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCiB9OwogCiAjaWZk
ZWYgX19PQkpDX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDc4ZDdmN2QyMzFjNjEyMGQxM2UyODFiNzk0
YjdjNTA0ZDc2ZGJiZGEuLjFkOTRhOTNmOWY2M2U3NTFkYmEwZTY3NzdmNThjYmQ0ZmRjYzk1NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDczMSw3ICs0NzMxLDcgQEAgLSAodm9pZClkb0FmdGVyQ29t
cHV0aW5nSW1hZ2VBbmFseXNpc1Jlc3VsdHNGb3JNYXJrdXA6KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdlYktpdDo6
cmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoY2dJbWFnZS5nZXQoKSwgW3NvdXJjZU1JTUVUeXBl
LCBjb250ZXh0LCBjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgd2Vha1NlbGZdKENH
SW1hZ2VSZWYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgV2ViS2l0OjpyZXF1ZXN0SW1hZ2VB
bmFseXNpc01hcmt1cChjZ0ltYWdlLmdldCgpLCBbc291cmNlTUlNRVR5cGUsIGNvbnRleHQsIGNv
bXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCB3ZWFrU2VsZl0oQ0dJbWFnZVJlZiByZXN1
bHQsIENHUmVjdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFr
U2VsZi5nZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikgewogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb24oKTsKQEAgLTEwODY5LDcgKzEwODY5LDcgQEAgLSAodm9pZCljYXB0dXJl
VGV4dEZyb21DYW1lcmFGb3JXZWJWaWV3OihpZClzZW5kZXIKIC0gKHZvaWQpYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgY29weUNyb3BwZWRJ
bWFnZTooVUlJbWFnZSAqKWltYWdlIHNvdXJjZU1JTUVUeXBlOihOU1N0cmluZyAqKXNvdXJjZU1J
TUVUeXBlCiB7CiAgICAgYXV0byBjaGFuZ2VDb3VudCA9IFVJUGFzdGVib2FyZC5nZW5lcmFsUGFz
dGVib2FyZC5jaGFuZ2VDb3VudDsKLSAgICBXZWJLaXQ6OnJlcXVlc3RJbWFnZUFuYWx5c2lzTWFy
a3VwKGltYWdlLkNHSW1hZ2UsIFtjaGFuZ2VDb3VudCwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRlbnRWaWV3PihzZWxmKSwgb3JpZ2luYWxJbWFnZSA9IFJldGFpblB0ciB7IGltYWdlIH0s
IHNvdXJjZU1JTUVUeXBlID0gUmV0YWluUHRyIHsgc291cmNlTUlNRVR5cGUgfV0oQ0dJbWFnZVJl
ZiByZXN1bHQpIG11dGFibGUgeworICAgIFdlYktpdDo6cmVxdWVzdEltYWdlQW5hbHlzaXNNYXJr
dXAoaW1hZ2UuQ0dJbWFnZSwgW2NoYW5nZUNvdW50LCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
Q29udGVudFZpZXc+KHNlbGYpLCBvcmlnaW5hbEltYWdlID0gUmV0YWluUHRyIHsgaW1hZ2UgfSwg
c291cmNlTUlNRVR5cGUgPSBSZXRhaW5QdHIgeyBzb3VyY2VNSU1FVHlwZSB9XShDR0ltYWdlUmVm
IHJlc3VsdCwgQ0dSZWN0KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vh
a1NlbGYuZ2V0KCk7CiAgICAgICAgIGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggZTEyZjljZTNmMGYzYTRiMmE1ZDAwNTE1ZGNhMzkxNGI2MDYyZDlh
ZS4uZDViODk5YWY0NDg4MmQ4MTlmNTI1MjEyYTk0OGFiMjdmODkzMWE2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
QEAgLTE4Niw2ICsxODYsMTEgQEAgLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUK
ICAgICBfbWVudVByb3h5LT5wYWdlKCktPmRpZERpc21pc3NDb250ZXh0TWVudSgpOwogfQogCist
ICh2b2lkKW1lbnU6KE5TTWVudSAqKW1lbnUgd2lsbEhpZ2hsaWdodEl0ZW06KE5TTWVudUl0ZW0g
KilpdGVtCit7CisgICAgX21lbnVQcm94eS0+cGFnZSgpLT53aWxsSGlnaGxpZ2h0Q29udGV4dE1l
bnVJdGVtKHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihpdGVtLnRhZykp
OworfQorCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQwLDcgKzM0NSw3IEBAIHZv
aWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6YXBwbHlNYXJrdXBUb0NvbnRyb2xsZWRJbWFnZSgp
CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVxdWVzdEltYWdlQW5h
bHlzaXNNYXJrdXAoaW1hZ2UuZ2V0KCksIFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwg
cHJlZmVycmVkTUlNRVR5cGUgPSBtX2NvbnRleHQuY29udHJvbGxlZEltYWdlTUlNRVR5cGUoKSwg
ZWxlbWVudENvbnRleHQgPSBXVEZNb3ZlKCplbGVtZW50Q29udGV4dCldKENHSW1hZ2VSZWYgcmVz
dWx0KSB7CisgICAgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoaW1hZ2UuZ2V0KCksIFt3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwgcHJlZmVycmVkTUlNRVR5cGUgPSBtX2NvbnRleHQu
Y29udHJvbGxlZEltYWdlTUlNRVR5cGUoKSwgZWxlbWVudENvbnRleHQgPSBXVEZNb3ZlKCplbGVt
ZW50Q29udGV4dCldKENHSW1hZ2VSZWYgcmVzdWx0LCBDR1JlY3QpIHsKICAgICAgICAgUmVmUHRy
IHByb3RlY3RlZFBhZ2UgPSB3ZWFrUGFnZS5nZXQoKTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRQ
YWdlIHx8ICFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBhZTRhMTkzMTZlMmMyZmUyNjRj
MDBlYTc2OTkyOGRmZGEwMGFhMTU3Li43NTQwOTA4Yzc4NGNmMzI3MTgxOTlhOWZmMDljOTQ2MmQz
YmE2NDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KQEAgLTc3NSwyNiArNzc1LDEwMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdl
SW5RdWlja0xvb2tQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcAogCiAj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6d2ls
bEhpZ2hsaWdodENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCit7CiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICBpZiAoYWN0aW9uICE9
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2UpIHsKKyAgICAgICAgaWYgKG1fY3Jv
cHBlZEltYWdlT3ZlcmxheVN0YXRlID09IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6U2hvd2lu
ZykgeworICAgICAgICAgICAgbV9jcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGUgPSBDcm9wcGVkSW1h
Z2VPdmVybGF5U3RhdGU6OkhpZGRlbjsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlNldENyb3BwZWRJbWFnZU92ZXJsYXlWaXNpYmlsaXR5KGZhbHNlKSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRl
eHRNZW51Q29weUNyb3BwZWRJbWFnZShTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBjb25z
dCBTdHJpbmcmIHByZWZlcnJlZE1JTUVUeXBlKQotewotICAgIGF1dG8gb3JpZ2luYWxJbWFnZSA9
IGltYWdlQml0bWFwLm1ha2VDR0ltYWdlKCk7Ci0gICAgaWYgKCFvcmlnaW5hbEltYWdlKQorICAg
IGlmIChtX2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA9PSBDcm9wcGVkSW1hZ2VPdmVybGF5U3Rh
dGU6OkhpZGRlbikgeworICAgICAgICBtX2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA9IENyb3Bw
ZWRJbWFnZU92ZXJsYXlTdGF0ZTo6U2hvd2luZzsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0Q3JvcHBlZEltYWdlT3ZlcmxheVZpc2liaWxpdHkodHJ1ZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlICE9IENy
b3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gZWxlbWVudENvbnRleHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEuaGl0
VGVzdGVkRWxlbWVudENvbnRleHQoKTsKKyAgICBpZiAoIWVsZW1lbnRDb250ZXh0KQogICAgICAg
ICByZXR1cm47CiAKKyAgICBhdXRvJiBoaXRUZXN0RGF0YSA9IG1fYWN0aXZlQ29udGV4dE1lbnVD
b250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLnZhbHVlKCk7CisgICAgYXV0byBpbWFn
ZUJpdG1hcCA9IGhpdFRlc3REYXRhLmltYWdlQml0bWFwOworICAgIGlmICghaW1hZ2VCaXRtYXAp
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFrZUNH
SW1hZ2VDb3B5KCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
cm9wcGVkSW1hZ2VPdmVybGF5U3RhdGUgPSBDcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGU6OkFuYWx5
emluZzsKKworICAgIHJlcXVlc3RJbWFnZUFuYWx5c2lzTWFya3VwKGltYWdlLmdldCgpLCBbd2Vh
a1BhZ2UgPSBXZWFrUHRyIHsgKnRoaXMgfSwgZWxlbWVudENvbnRleHQgPSBXVEZNb3ZlKCplbGVt
ZW50Q29udGV4dCldKENHSW1hZ2VSZWYgcmVzdWx0SW1hZ2UsIENHUmVjdCBub3JtYWxpemVkQ3Jv
cFJlY3QpIHsKKyAgICAgICAgaWYgKCFyZXN1bHRJbWFnZSB8fCBDR1JlY3RJc0VtcHR5KG5vcm1h
bGl6ZWRDcm9wUmVjdCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgUmVmUHRyIHBy
b3RlY3RlZFBhZ2UgPSB3ZWFrUGFnZS5nZXQoKTsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdl
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fY3JvcHBl
ZEltYWdlUmVzdWx0ID0gcmVzdWx0SW1hZ2U7CisKKyAgICAgICAgaWYgKHByb3RlY3RlZFBhZ2Ut
Pm1fY3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlICE9IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6
QW5hbHl6aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gdGlmZkRhdGEg
PSB0cmFuc2NvZGUocmVzdWx0SW1hZ2UsIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZG
LmlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXRpZmZEYXRhKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShb
dGlmZkRhdGEgbGVuZ3RoXSk7CisgICAgICAgIGlmICghc2hhcmVkTWVtb3J5KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIFt0aWZmRGF0YSBnZXRCeXRlczpzaGFyZWRNZW1vcnktPmRh
dGEoKSBsZW5ndGg6W3RpZmZEYXRhIGxlbmd0aF1dOworCisgICAgICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgc2hhcmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgcHJvdGVjdGVk
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zdGFsbENyb3BwZWRJbWFnZU92ZXJsYXko
ZWxlbWVudENvbnRleHQsIHsgV1RGTW92ZShoYW5kbGUpLCBzaGFyZWRNZW1vcnktPnNpemUoKSB9
LCAiaW1hZ2UvdGlmZiJfcywgbm9ybWFsaXplZENyb3BSZWN0KSk7CisgICAgICAgIHByb3RlY3Rl
ZFBhZ2UtPm1fY3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlID0gQ3JvcHBlZEltYWdlT3ZlcmxheVN0
YXRlOjpTaG93aW5nOworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWN0aW9uKTsK
KyNlbmRpZgorfQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKwor
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51Q29weUNyb3BwZWRJbWFnZShTaGFy
ZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZE1JTUVUeXBl
KQorewogICAgIGF1dG8gY2hhbmdlQ291bnQgPSBOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9h
cmQuY2hhbmdlQ291bnQ7Ci0gICAgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAob3JpZ2luYWxJ
bWFnZS5nZXQoKSwgW2NoYW5nZUNvdW50LCBvcmlnaW5hbEltYWdlLCBwcmVmZXJyZWRNSU1FVHlw
ZV0oQ0dJbWFnZVJlZiByZXN1bHRJbWFnZSkgeworICAgIGF1dG8gcGVyZm9ybUNvcHkgPSBbY2hh
bmdlQ291bnQsIHByZWZlcnJlZE1JTUVUeXBlXShDR0ltYWdlUmVmIHJlc3VsdEltYWdlKSB7CiAg
ICAgICAgIGF1dG8gcGFzdGVib2FyZCA9IE5TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZDsK
LSAgICAgICAgaWYgKGNoYW5nZUNvdW50ICE9IHBhc3RlYm9hcmQuY2hhbmdlQ291bnQpCisgICAg
ICAgIGlmIChjaGFuZ2VDb3VudCAhPSBwYXN0ZWJvYXJkLmNoYW5nZUNvdW50IHx8ICFyZXN1bHRJ
bWFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIFtkYXRhLCB0eXBlXSA9
IFdlYktpdDo6dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKHJlc3VsdEltYWdlID86IG9y
aWdpbmFsSW1hZ2UuZ2V0KCksIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIpOworICAgICAg
ICBhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktpdDo6dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVU
eXBlKHJlc3VsdEltYWdlLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKICAgICAgICAg
aWYgKCFkYXRhKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFtwYXN0ZWJvYXJkIGRl
Y2xhcmVUeXBlczpAWyhfX2JyaWRnZSBOU1N0cmluZyAqKXR5cGUuZ2V0KCldIG93bmVyOm5pbF07
CiAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6ZGF0YS5nZXQoKSBmb3JUeXBlOihfX2JyaWRn
ZSBOU1N0cmluZyAqKXR5cGUuZ2V0KCldOworICAgIH07CisKKyAgICBpZiAobV9jcm9wcGVkSW1h
Z2VSZXN1bHQpIHsKKyAgICAgICAgcGVyZm9ybUNvcHkobV9jcm9wcGVkSW1hZ2VSZXN1bHQuZ2V0
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBvcmlnaW5hbEltYWdlID0g
aW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2VDb3B5KCk7CisgICAgaWYgKCFvcmlnaW5hbEltYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChvcmlnaW5h
bEltYWdlLmdldCgpLCBbcGVyZm9ybUNvcHkgPSBXVEZNb3ZlKHBlcmZvcm1Db3B5KV0oYXV0byBp
bWFnZSwgYXV0bykgeworICAgICAgICBwZXJmb3JtQ29weShpbWFnZSk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRN
ZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51
LmNwcAppbmRleCBiMThjZWM1OGUzYTYxODg1MWU0MzZiZjc5M2MzMzU2NWM3MDhhYTVjLi4zYzFj
YWY4YzcwNGY0NTg4MDUxZGJjNjIxMDI2Yjg0MWIzM2U5YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCkBAIC02Myw5ICs2
MywxMyBAQCB2b2lkIFdlYkNvbnRleHRNZW51OjpzaG93KCkKICAgICBSZWZQdHI8QVBJOjpPYmpl
Y3Q+IHVzZXJEYXRhOwogICAgIG1lbnVJdGVtc1dpdGhVc2VyRGF0YShtZW51SXRlbXMsIHVzZXJE
YXRhKTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IGhpdFRlc3RlZEVsZW1l
bnRDb250ZXh0OworICAgIGlmIChSZWZQdHIgaGl0VGVzdGVkRWxlbWVudCA9IGNvbnRyb2xsZXIu
aGl0VGVzdFJlc3VsdCgpLmlubmVyTm9uU2hhcmVkRWxlbWVudCgpKQorICAgICAgICBoaXRUZXN0
ZWRFbGVtZW50Q29udGV4dCA9IG1fcGFnZS0+Y29udGV4dEZvckVsZW1lbnQoKmhpdFRlc3RlZEVs
ZW1lbnQpOworCiAgICAgYXV0byBtZW51TG9jYXRpb24gPSB2aWV3LT5jb250ZW50c1RvUm9vdFZp
ZXcoY29udHJvbGxlci5oaXRUZXN0UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFt
ZSgpKTsKIAotICAgIENvbnRleHRNZW51Q29udGV4dERhdGEgY29udGV4dE1lbnVDb250ZXh0RGF0
YShtZW51TG9jYXRpb24sIG1lbnVJdGVtcywgY29udHJvbGxlci5jb250ZXh0KCkpOworICAgIENv
bnRleHRNZW51Q29udGV4dERhdGEgY29udGV4dE1lbnVDb250ZXh0RGF0YShtZW51TG9jYXRpb24s
IFdURk1vdmUoaGl0VGVzdGVkRWxlbWVudENvbnRleHQpLCBtZW51SXRlbXMsIGNvbnRyb2xsZXIu
Y29udGV4dCgpKTsKIAogICAgIC8vIE1hcmsgdGhlIFdlYlBhZ2UgaGFzIGhhdmluZyBhIHNob3du
IGNvbnRleHQgbWVudSB0aGVuIG5vdGlmeSB0aGUgVUlQcm9jZXNzLgogICAgIG1fcGFnZS0+c3Rh
cnRXYWl0aW5nRm9yQ29udGV4dE1lbnVUb1Nob3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjNhZjkxZmRiYTVmMjAxMDA2YzczYzU5ZjI5
NmJhMjJmM2QzN2M1ZC4uZTI1ZTlmMDE5MWMxZGM1N2ZlODMzYzdmM2JiZDY4MWI3NjBhODFhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI5
MTcsNiArMjkxNywxMCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFNob3dDb250ZXh0TWVudSgpCiB2b2lk
IFdlYlBhZ2U6OmRpZERpc21pc3NDb250ZXh0TWVudSgpCiB7CiAgICAgY29yZVBhZ2UoKS0+Y29u
dGV4dE1lbnVDb250cm9sbGVyKCkuZGlkRGlzbWlzc0NvbnRleHRNZW51KCk7CisKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorICAgIG1fY3JvcHBlZEltYWdlT3Zlcmxh
eSA9IG51bGxwdHI7CisjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVT
KQpAQCAtNzc4NSw2ICs3Nzg5LDI5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlQml0bWFw
KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBDb21wbGV0aW9uSGFuZGxlCiAgICAgY29t
cGxldGlvbihoYW5kbGUsIG1pbWVUeXBlKTsKIH0KIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
U19FTkhBTkNFTUVOVFMpCisKK3ZvaWQgV2ViUGFnZTo6aW5zdGFsbENyb3BwZWRJbWFnZU92ZXJs
YXkoY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlJiBpbWFnZURhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEZsb2F0UmVjdCBub3Jt
YWxpemVkQ3JvcFJlY3QpCit7CisgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6
Om1hcChpbWFnZURhdGEuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5
KTsKKyAgICBpZiAoIXNoYXJlZE1lbW9yeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRy
IGVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1lbnRGb3JDb250ZXh0
KGNvbnRleHQpLmdldCgpKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY3JvcHBlZEltYWdlT3ZlcmxheSA9IEltYWdlT3ZlcmxheTo6Q3JvcHBlZEltYWdlOjpp
bnN0YWxsKCplbGVtZW50LCBzaGFyZWRNZW1vcnktPmNyZWF0ZVNoYXJlZEJ1ZmZlcihpbWFnZURh
dGEuZGF0YVNpemUpLCBtaW1lVHlwZSwgbm9ybWFsaXplZENyb3BSZWN0KTsKK30KKwordm9pZCBX
ZWJQYWdlOjpzZXRDcm9wcGVkSW1hZ2VPdmVybGF5VmlzaWJpbGl0eShib29sIHZpc2libGUpCit7
CisgICAgaWYgKG1fY3JvcHBlZEltYWdlT3ZlcmxheSkKKyAgICAgICAgbV9jcm9wcGVkSW1hZ2VP
dmVybGF5LT5zZXRWaXNpYmlsaXR5KHZpc2libGUpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElN
QUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKwogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6c2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDlk
MjZjNjdkNDlhZTM0NmI1YjhjNDk4MmUyNmEwZmNjMGIyMWYxZTUuLmFlOWMyN2FkNGNhNWEwZGU3
OGVhOTFhNmRiYzlkZmZmYzkwOTE3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgY2xhc3MgSFRNTEF0dGFjaG1lbnRF
bGVtZW50OwogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05U
RVhUX01FTlVTKQogc3RydWN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwogI2VuZGlmCisK
K25hbWVzcGFjZSBJbWFnZU92ZXJsYXkgeworY2xhc3MgQ3JvcHBlZEltYWdlOworfQogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0NDgsNiArMTQ1MiwxMCBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIHZvaWQgcmVxdWVzdEltYWdlQml0bWFwKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUpPiYmKTsKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorICAgIHZvaWQgaW5zdGFsbENyb3BwZWRJbWFnZU92ZXJs
YXkoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYgaW1hZ2VEYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpGbG9h
dFJlY3Qgbm9ybWFsaXplZENyb3BSZWN0KTsKKyAgICB2b2lkIHNldENyb3BwZWRJbWFnZU92ZXJs
YXlWaXNpYmlsaXR5KGJvb2wpOworI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGhhbmRsZUNvbnRleHRN
ZW51VHJhbnNsYXRpb24oY29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8m
KTsKQEAgLTI0MzcsNiArMjQ0NSwxMCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKICAgICBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5IG1fYXBwSGlnaGxpZ2h0c1Zp
c2libGUgeyBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5OjpIaWRkZW4gfTsKICNlbmRpZgor
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SW1hZ2VPdmVybGF5OjpDcm9wcGVkSW1hZ2U+IG1fY3JvcHBlZEltYWdl
T3ZlcmxheTsKKyNlbmRpZgogfTsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggYmE5ZTgyYmQ2NGEzNTZmNmQwZWYwMzNlNDVhOGYzNDE3NTgxYTg0OC4uYzU2MTg2OWMw
MTVhNjMyM2YwNGExMzA0MGU5MDRhNGM3ZmY0YmM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMzQsNiArMTM0
LDExIEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktp
dDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBSZXF1ZXN0SW1hZ2VCaXRtYXAo
c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0KSAtPiAoV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZSwgU3RyaW5nIHNvdXJjZU1JTUVUeXBlKSBB
c3luYwogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICBJbnN0
YWxsQ3JvcHBlZEltYWdlT3ZlcmxheShzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxl
bWVudENvbnRleHQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaW1hZ2VEYXRhLCBT
dHJpbmcgbWltZVR5cGUsIFdlYkNvcmU6OkZsb2F0UmVjdCBub3JtYWxpemVkQ3JvcFJlY3QpCisg
ICAgU2V0Q3JvcHBlZEltYWdlT3ZlcmxheVZpc2liaWxpdHkoYm9vbCB2aXNpYmxlKQorI2VuZGlm
CisKICAgICBTZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxlZCkKIAogICAg
IENvbm5lY3RJbnNwZWN0b3IoU3RyaW5nIHRhcmdldElkLCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452594</attachid>
            <date>2022-02-18 16:03:47 -0800</date>
            <delta_ts>2022-02-19 11:25:17 -0800</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-236845-20220218160346.patch</filename>
            <type>text/plain</type>
            <size>24419</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkZDkzY2NhYzkwZTc1MmU2
ODlhMzE5YWI5ZjQyY2E2ZWJkMzRhNjAuLjk1YWUwNmFmODIxYzc4NDQ0NTIwYmVkOTk5ZWQ0ODJm
Y2Y1ZmQyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDItMTggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIb3Zlcmlu
ZyBvdmVyICJDb3B5IENyb3BwZWQgSW1hZ2UiIGNvbnRleHQgbWVudSBpdGVtIHNob3VsZCByZXZl
YWwgdGhlIGNyb3BwZWQgaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjg0NQorICAgICAgICByZGFyOi8vODkxNTI3NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmV2
ZWFsaW5nIHRoZSAiY3JvcHBlZCIgcmVnaW9uIG9mIGFuIGltYWdlIGVsZW1lbnQgKHdoaWxlIGRp
bW1pbmcgb3V0IHRoZSByZXN0IG9mIHRoZSBpbWFnZSkKKyAgICAgICAgd2hlbiB0aGUgdXNlciBo
aWdobGlnaHRzIHRoZSBuZXcgIkNvcHkgQ3JvcHBlZCBJbWFnZSIgY29udGV4dCBtZW51IGl0ZW0g
b24gbWFjT1MuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZv
cm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmg6CisKKyAgICAgICAgQWRqdXN0IGBy
ZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cGAgdG8gdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlciB3
aXRoIGJvdGggdGhlIHJlc3VsdGluZyBDR0ltYWdlUmVmLCBhcyB3ZWxsIGFzCisgICAgICAgIGEg
Q0dSZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgZnJhbWUgb2YgdGhlIGNyb3BwZWQgaW1hZ2Ugd2l0
aCByZXNwZWN0IHRvIHRoZSBzb3VyY2UgaW1hZ2UsIG5vcm1hbGl6ZWQgdG8gdGhlIHVuaXQKKyAg
ICAgICAgc3F1YXJlLiBBZGRpdGlvbmFsbHksIHR3ZWFrIGFsbCBjYWxsIHNpdGVzIG9mIGByZXF1
ZXN0SW1hZ2VBbmFseXNpc01hcmt1cGAgdG8gcGFzcyBpbiBjb21wbGV0aW9uIGhhbmRsZXJzIHRo
YXQKKyAgICAgICAgYWNjZXB0IGJvdGggYXJndW1lbnRzLgorCisgICAgICAgICogU2hhcmVkL0Nv
bnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNv
bnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRh
OjpoaXRUZXN0ZWRFbGVtZW50Q29udGV4dCBjb25zdCk6CisKKyAgICAgICAgQWRkIGFuIG9wdGlv
bmFsIEVsZW1lbnRDb250ZXh0IHJlcHJlc2VudGluZyB0aGUgaW5uZXIgaGl0LXRlc3RlZCBlbGVt
ZW50IGZvciB0aGUgY29udGV4dCBtZW51LiBXZSB1c2UgdGhpcyBiZWxvdworICAgICAgICBpbiBg
V2ViUGFnZVByb3h5Ojp3aWxsSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtYCB0byBrbm93IHdoZXJl
IHdlIG5lZWQgdG8gaW5zdGFsbCB0aGUgY3JvcHBlZCBpbWFnZSBvdmVybGF5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRGlzbWlzc0NvbnRleHRNZW51KToKKworICAgICAgICBSZXNldCB0aGUgY2FjaGVk
IGNyb3BwZWQgaW1hZ2UgcmVzdWx0IGFzIHdlbGwgYXMgdGhlIGNyb3BwZWQgaW1hZ2Ugb3Zlcmxh
eSBzdGF0ZSB3aGVuIHRoZSBjb250ZXh0IG1lbnUgaXMKKyAgICAgICAgZGlzbWlzc2VkLgorCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRl
ZCk6CisKKyAgICAgICAgQWxzbyBjbGVhciB0aGUgYWJvdmUgc3RhdGUgaWYgdGhlIHByb2Nlc3Mg
Y3Jhc2hlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBkb0FmdGVyQ29tcHV0aW5nSW1hZ2VBbmFseXNpc1Jlc3VsdHNGb3JNYXJr
dXA6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6Y29w
eUNyb3BwZWRJbWFnZTpzb3VyY2VNSU1FVHlwZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgICgtW1dLTWVudURlbGVnYXRlIG1l
bnU6d2lsbEhpZ2hsaWdodEl0ZW06XSk6CisKKyAgICAgICAgSW1wbGVtZW50IHRoaXMgTlNNZW51
IGRlbGVnYXRlIG1ldGhvZCBhbmQgY2FsbCBvdXQgdG8gV2ViUGFnZVByb3h5IHdoZW5ldmVyIHRo
ZSBoaWdobGlnaHRlZCBjb250ZXh0IG1lbnUgaXRlbQorICAgICAgICBjaGFuZ2VzLiBTZWUgYmVs
b3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVBy
b3h5TWFjOjphcHBseU1hcmt1cFRvQ29udHJvbGxlZEltYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp3aWxsSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtKToKKworICAgICAgICBUaGlzIG1ldGhvZCBj
b29yZGluYXRlcyBzaG93aW5nIG9yIGhpZGluZyB0aGUgY3JvcHBlZCBpbWFnZSBvdmVybGF5IHdo
ZW4gdGhlIHVzZXIgaGlnaGxpZ2h0cyAoYnV0IGRvZXMgbm90IHlldAorICAgICAgICBzZWxlY3Qp
IHRoZSAiQ29weSBDcm9wcGVkIEltYWdlIiBjb250ZXh0IG1lbnUgaXRlbS4gV2hlbiB0aGUgdXNl
ciBmaXJzdCBoaWdobGlnaHRzIHRoaXMgaXRlbSwgd2UgdHJpZ2dlciBhbgorICAgICAgICBhbmFs
eXNpcyByZXF1ZXN0IGluIFZpc2lvbktpdDsgd2hlbiB3ZSBsYXRlciBvYnRhaW4gdGhlIHJlc3Vs
dHMsIHdlIHNlbmQgdGhlIGltYWdlIHRvIHRoZSB3ZWIgcHJvY2VzcyBhcyBUSUZGCisgICAgICAg
IGRhdGEsIGFuZCBpbmplY3QgaXQgaW50byB0aGUgaW1hZ2UgdXNpbmcgYEltYWdlT3ZlcmxheTo6
Q3JvcHBlZEltYWdlOjppbnN0YWxsYC4gVW4taGlnaGxpZ2h0aW5nIGFuZCByZS0KKyAgICAgICAg
aGlnaGxpZ2h0aW5nIHRoZSBtZW51IGl0ZW0gdGhlbiByZXNwZWN0aXZlbHkgaGlkZXMgYW5kIHNo
b3dzIHRoZSBjcm9wcGVkIGltYWdlIG92ZXJsYXkgYnkgc2V0dGluZyB2aXNpYmlsaXR5LgorCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVDb3B5Q3JvcHBl
ZEltYWdlKToKKworICAgICAgICBBZGp1c3QgdGhpcyB0byB1c2UgdGhlIGNhY2hlZCBgbV9jcm9w
cGVkSW1hZ2VSZXN1bHRgIGlmIGl0IGhhcyBhbHJlYWR5IGJlZW4gY29tcHV0ZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0TWVudTo6c2hvdyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWREaXNtaXNzQ29udGV4
dE1lbnUpOgorCisgICAgICAgIERlc3Ryb3kgdGhlIGBtX2Nyb3BwZWRJbWFnZU92ZXJsYXlgIGFm
dGVyIHRoZSBjb250ZXh0IG1lbnUgaXMgZGlzbWlzc2VkICh3aGljaCB1bmluc3RhbGxzIHRoZSBj
cm9wcGVkIGltYWdlCisgICAgICAgIG92ZXJsYXkgaW4gdGhlIHByb2Nlc3MpLgorCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6Omluc3RhbGxDcm9wcGVkSW1hZ2VPdmVybGF5KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2V0Q3JvcHBlZEltYWdlT3ZlcmxheVZpc2liaWxpdHkpOgorCisg
ICAgICAgIEFkZCBtZXRob2RzIHRvIGluc3RhbGwgYW5kIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBv
ZiB0aGUgY3JvcHBlZCBpbWFnZSBvdmVybGF5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKwogMjAyMi0wMi0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYkdMIEdQVVA6IENyYXNoIHdoZW4gcnVubmluZyBmYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaAppbmRleCBh
Zjc1ODhlYjQyYTExMTkyOTFkYThmMThlZDJkOGJhYWQyMTMwNWFmLi5kOTc0MTYzMTJiMTJhMmIx
MTA4N2JiZjcyMzQ0N2I5ODVlYjkzMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgKQEAgLTU5LDcgKzU5LDcg
QEAgUmV0YWluUHRyPENvY29hSW1hZ2VBbmFseXplclJlcXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHl6
ZXJSZXF1ZXN0KENHSW1hZ2VSZWYsIFZLQW4KIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19F
TkhBTkNFTUVOVFMpCiB2b2lkIHJlcXVlc3RJbWFnZUFuYWx5c2lzV2l0aElkZW50aWZpZXIoQ29j
b2FJbWFnZUFuYWx5emVyICosIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ0dJbWFnZVJlZiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+
JiYpOwotdm9pZCByZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChDR0ltYWdlUmVmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKENHSW1hZ2VSZWYpPiYmKTsKK3ZvaWQgcmVxdWVzdEltYWdlQW5hbHlz
aXNNYXJrdXAoQ0dJbWFnZVJlZiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDR0ltYWdlUmVmLCBD
R1JlY3QpPiYmKTsKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRl
eHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDcwMGE4ODUyNjBjYjAyNWY0N2VkNTM3MDM3OTcy
Y2ZhZjZlYTM3YWEuLjFmNzgxMjc4NjE1NDBkZWQ3YzlhMDQ4NjJhNDcwMzEyMGIwMTU3ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCkBA
IC00MywxMyArNDMsMTQgQEAgQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250
ZXh0RGF0YSgpCiB7CiB9CiAKLUNvbnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29u
dGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVj
dG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1lbnVJdGVtcywgY29uc3QgQ29u
dGV4dE1lbnVDb250ZXh0JiBjb250ZXh0KQorQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4
dE1lbnVDb250ZXh0RGF0YShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBzdGQ6Om9wdGlv
bmFsPEVsZW1lbnRDb250ZXh0PiYmIGhpdFRlc3RlZEVsZW1lbnRDb250ZXh0LCBjb25zdCBWZWN0
b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBjb25zdCBDb250
ZXh0TWVudUNvbnRleHQmIGNvbnRleHQpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAg
ICAgOiBtX3R5cGUoY29udGV4dC5jb250cm9sbGVkSW1hZ2UoKSA/IFR5cGU6OlNlcnZpY2VzTWVu
dSA6IGNvbnRleHQudHlwZSgpKQogI2Vsc2UKICAgICA6IG1fdHlwZShjb250ZXh0LnR5cGUoKSkK
ICNlbmRpZgogICAgICwgbV9tZW51TG9jYXRpb24obWVudUxvY2F0aW9uKQorICAgICwgbV9oaXRU
ZXN0ZWRFbGVtZW50Q29udGV4dChXVEZNb3ZlKGhpdFRlc3RlZEVsZW1lbnRDb250ZXh0KSkKICAg
ICAsIG1fbWVudUl0ZW1zKG1lbnVJdGVtcykKICAgICAsIG1fd2ViSGl0VGVzdFJlc3VsdERhdGEo
eyBjb250ZXh0LmhpdFRlc3RSZXN1bHQoKSwgdHJ1ZSB9KQogICAgICwgbV9zZWxlY3RlZFRleHQo
Y29udGV4dC5zZWxlY3RlZFRleHQoKSkKQEAgLTk0LDYgKzk1LDcgQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IGVuY29kZXIgPDwgbV90eXBlOwogICAgIGVuY29kZXIgPDwgbV9tZW51TG9jYXRpb247CisgICAg
ZW5jb2RlciA8PCBtX2hpdFRlc3RlZEVsZW1lbnRDb250ZXh0OwogICAgIGVuY29kZXIgPDwgbV9t
ZW51SXRlbXM7CiAgICAgZW5jb2RlciA8PCBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIGVu
Y29kZXIgPDwgbV9zZWxlY3RlZFRleHQ7CkBAIC0xMjEsNiArMTIzLDkgQEAgYm9vbCBDb250ZXh0
TWVudUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb250ZXh0TWVu
dUNvbnRleHREYXQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21lbnVMb2NhdGlv
bikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0Lm1faGl0VGVzdGVkRWxlbWVudENvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21lbnVJdGVtcykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5oCmluZGV4IGQwMWFlNjdmMDhiOTRjMTQxN2EyN2QxNWIwN2QyM2VmMmYxNDVmN2EuLjE5
MmE2ODI0MTg3NGZhODVkNGRlMTU3OGMyZDUxOWRkNmMxZDk2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKQEAgLTQ2LDEyICs0NiwxMyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgVHlwZSA9IFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlw
ZTsKIAogICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoKTsKLSAgICBDb250ZXh0TWVudUNvbnRl
eHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFZlY3Rv
cjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE+JiBtZW51SXRlbXMsIGNvbnN0IFdlYkNv
cmU6OkNvbnRleHRNZW51Q29udGV4dCYpOworICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dD4mJiBoaXRUZXN0ZWRFbGVtZW50Q29udGV4dCwgY29uc3QgVmVjdG9y
PFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1lbnVJdGVtcywgY29uc3QgV2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250ZXh0Jik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAgICBjb25zdCBWZWN0b3I8V2ViS2l0
OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9t
ZW51SXRlbXM7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+
IGhpdFRlc3RlZEVsZW1lbnRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9oaXRUZXN0ZWRFbGVt
ZW50Q29udGV4dDsgfQogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViSGl0VGVzdFJlc3VsdERh
dGE+JiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJl
c3VsdERhdGE7IH0KICAgICBjb25zdCBTdHJpbmcmIHNlbGVjdGVkVGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0ZWRUZXh0OyB9CiAKQEAgLTg2LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBU
eXBlIG1fdHlwZTsKIAogICAgIFdlYkNvcmU6OkludFBvaW50IG1fbWVudUxvY2F0aW9uOworICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IG1faGl0VGVzdGVkRWxlbWVu
dENvbnRleHQ7CiAgICAgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gbV9t
ZW51SXRlbXM7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkhpdFRlc3RSZXN1bHREYXRhPiBtX3dl
YkhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggN2Y3YmNiNzgzZWJkYzljOTFkNTg3NmM0OTc3NTYyZWU5MjhjMjY4Zi4uNjBkMjcx
MjMxN2Q0MDJhMjJjMjY1ODQwYzgxN2FmNjA5NDJmYmM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MDA1LDYgKzcwMDUsMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZERpc21pc3NDb250ZXh0TWVudSgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RGlkRGlzbWlzc0NvbnRleHRNZW51KCkpOwogCiAgICAgcGFnZUNsaWVudCgpLmRpZERpc21p
c3NDb250ZXh0TWVudSgpOworCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5U
UykKKyAgICBtX2Nyb3BwZWRJbWFnZVJlc3VsdCA9IHsgfTsKKyAgICBtX2Nyb3BwZWRJbWFnZU92
ZXJsYXlTdGF0ZSA9IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6SW5hY3RpdmU7CisjZW5kaWYK
IH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdl
YkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCkBAIC04MTQwLDYgKzgxNDUsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlc2V0U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQoUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIHRlcm1pbmEKICAgICBtX2N1cnJlbnRGdWxsc2NyZWVuVmlkZW9TZXNzaW9uSWRl
bnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTX0VOSEFOQ0VNRU5UUykKKyAgICBtX2Nyb3BwZWRJbWFnZVJlc3VsdCA9IHsgfTsKKyAgICBt
X2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA9IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6SW5h
Y3RpdmU7CisjZW5kaWYKKwogICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzg2NzY2MDQ+
IEluIGNhc2Ugb2YgcHJvY2VzcyBzd2FwcywgdGhlIG9sZCBwcm9jZXNzIHNob3VsZCBncmFjZWZ1
bGx5IHN1c3BlbmQgaW5zdGVhZCBvZiB0ZXJtaW5hdGluZy4KICAgICBtX3Byb2Nlc3MtPnByb2Nl
c3NUZXJtaW5hdGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDhmZWJhYjRiNTE0OWFmMjFhYjhiZTg0ODhiNWIzOTljM2ViMWMxMGYuLmMwOTU1NzAzZjQx
NjNmNmE0NzY1MTBlYjM3ODUwZTZlYjc3MmMyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xMzcxLDYgKzEzNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRE
aXNtaXNzQ29udGV4dE1lbnUoKTsKICAgICB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNv
bnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51
S2V5RXZlbnQoKTsKKyAgICB2b2lkIHdpbGxIaWdobGlnaHRDb250ZXh0TWVudUl0ZW0oV2ViQ29y
ZTo6Q29udGV4dE1lbnVBY3Rpb24pOwogI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgYnkgdGhlIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuCkBAIC0zMjA4LDYgKzMyMDksMTcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
PiBtX2N1cnJlbnRGdWxsc2NyZWVuVmlkZW9TZXNzaW9uSWRlbnRpZmllcjsKICAgICBSdW5Mb29w
OjpUaW1lcjxXZWJQYWdlUHJveHk+IG1fZnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvblRpbWVyOwog
I2VuZGlmCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorICAgIGVu
dW0gY2xhc3MgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlIDogdWludDhfdCB7CisgICAgICAgIElu
YWN0aXZlLAorICAgICAgICBBbmFseXppbmcsCisgICAgICAgIEhpZGRlbiwKKyAgICAgICAgU2hv
d2luZywKKyAgICB9OworICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgbV9jcm9wcGVkSW1h
Z2VSZXN1bHQ7CisgICAgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlIG1fY3JvcHBlZEltYWdlT3Zl
cmxheVN0YXRlIHsgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlOjpJbmFjdGl2ZSB9OworI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCiB9OwogCiAjaWZkZWYgX19P
QkpDX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGNiZmE2YzkwM2JmMTYzOTIxYzM2N2UxMWNmMGQ2ODY3
NWUzZGRmZGYuLjA5ODIzZThlNTA5Y2I4ZjQ5NWE0OGNiMWFlMDcyNmIyOWZmNjk3NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtNDc2NSw3ICs0NzY1LDcgQEAgLSAodm9pZClkb0FmdGVyQ29tcHV0aW5n
SW1hZ2VBbmFseXNpc1Jlc3VsdHNGb3JNYXJrdXA6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4K
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdlYktpdDo6cmVxdWVz
dEltYWdlQW5hbHlzaXNNYXJrdXAoY2dJbWFnZS5nZXQoKSwgW3NvdXJjZU1JTUVUeXBlLCBjb250
ZXh0LCBjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgd2Vha1NlbGZdKENHSW1hZ2VS
ZWYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgV2ViS2l0OjpyZXF1ZXN0SW1hZ2VBbmFseXNp
c01hcmt1cChjZ0ltYWdlLmdldCgpLCBbc291cmNlTUlNRVR5cGUsIGNvbnRleHQsIGNvbXBsZXRp
b24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCB3ZWFrU2VsZl0oQ0dJbWFnZVJlZiByZXN1bHQsIENH
UmVjdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5n
ZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikgewogICAgICAgICAgICAgICAgIGNv
bXBsZXRpb24oKTsKQEAgLTEwOTAzLDcgKzEwOTAzLDcgQEAgLSAodm9pZCljYXB0dXJlVGV4dEZy
b21DYW1lcmFGb3JXZWJWaWV3OihpZClzZW5kZXIKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgY29weUNyb3BwZWRJbWFnZToo
VUlJbWFnZSAqKWltYWdlIHNvdXJjZU1JTUVUeXBlOihOU1N0cmluZyAqKXNvdXJjZU1JTUVUeXBl
CiB7CiAgICAgYXV0byBjaGFuZ2VDb3VudCA9IFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2Fy
ZC5jaGFuZ2VDb3VudDsKLSAgICBXZWJLaXQ6OnJlcXVlc3RJbWFnZUFuYWx5c2lzTWFya3VwKGlt
YWdlLkNHSW1hZ2UsIFtjaGFuZ2VDb3VudCwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRl
bnRWaWV3PihzZWxmKSwgb3JpZ2luYWxJbWFnZSA9IFJldGFpblB0ciB7IGltYWdlIH0sIHNvdXJj
ZU1JTUVUeXBlID0gUmV0YWluUHRyIHsgc291cmNlTUlNRVR5cGUgfV0oQ0dJbWFnZVJlZiByZXN1
bHQpIG11dGFibGUgeworICAgIFdlYktpdDo6cmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoaW1h
Z2UuQ0dJbWFnZSwgW2NoYW5nZUNvdW50LCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVu
dFZpZXc+KHNlbGYpLCBvcmlnaW5hbEltYWdlID0gUmV0YWluUHRyIHsgaW1hZ2UgfSwgc291cmNl
TUlNRVR5cGUgPSBSZXRhaW5QdHIgeyBzb3VyY2VNSU1FVHlwZSB9XShDR0ltYWdlUmVmIHJlc3Vs
dCwgQ0dSZWN0KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7CiAgICAgICAgIGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMubW0KaW5kZXggODI5NzdiN2M2NTZkOGU1YzYyMGYzZWZmMjVmMmFmMTgxMmNlYTkwZi4uY2Fk
OTliMjc0ZmI5MGRiZDBkYzAwODIyMjQ1MTQwZWVhNjY2N2Y4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTE4
Niw2ICsxODYsMTEgQEAgLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKICAgICBf
bWVudVByb3h5LT5wYWdlKCktPmRpZERpc21pc3NDb250ZXh0TWVudSgpOwogfQogCistICh2b2lk
KW1lbnU6KE5TTWVudSAqKW1lbnUgd2lsbEhpZ2hsaWdodEl0ZW06KE5TTWVudUl0ZW0gKilpdGVt
Cit7CisgICAgX21lbnVQcm94eS0+cGFnZSgpLT53aWxsSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVt
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihpdGVtLnRhZykpOworfQor
CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQzLDcgKzM0OCw3IEBAIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6YXBwbHlNYXJrdXBUb0NvbnRyb2xsZWRJbWFnZSgpCiAgICAg
aWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVxdWVzdEltYWdlQW5hbHlzaXNN
YXJrdXAoaW1hZ2UuZ2V0KCksIFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwgcHJlZmVy
cmVkTUlNRVR5cGUgPSBtX2NvbnRleHQuY29udHJvbGxlZEltYWdlTUlNRVR5cGUoKSwgZWxlbWVu
dENvbnRleHQgPSBXVEZNb3ZlKCplbGVtZW50Q29udGV4dCldKENHSW1hZ2VSZWYgcmVzdWx0KSB7
CisgICAgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoaW1hZ2UuZ2V0KCksIFt3ZWFrUGFnZSA9
IFdlYWtQdHIgeyBwYWdlKCkgfSwgcHJlZmVycmVkTUlNRVR5cGUgPSBtX2NvbnRleHQuY29udHJv
bGxlZEltYWdlTUlNRVR5cGUoKSwgZWxlbWVudENvbnRleHQgPSBXVEZNb3ZlKCplbGVtZW50Q29u
dGV4dCldKENHSW1hZ2VSZWYgcmVzdWx0LCBDR1JlY3QpIHsKICAgICAgICAgUmVmUHRyIHByb3Rl
Y3RlZFBhZ2UgPSB3ZWFrUGFnZS5nZXQoKTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdlIHx8
ICFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBhZTRhMTkzMTZlMmMyZmUyNjRjMDBlYTc2
OTkyOGRmZGEwMGFhMTU3Li5jZWM0MjUyM2Q2OWVkODQ5ZGZmN2RiZDZiM2E2Y2E3NDUxYWE0MDY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
QEAgLTc3NSwyNiArNzc1LDEwMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5RdWlj
a0xvb2tQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcAogCiAjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEhpZ2hs
aWdodENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCit7CiAjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICBpZiAoYWN0aW9uICE9IENvbnRl
eHRNZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2UpIHsKKyAgICAgICAgaWYgKG1fY3JvcHBlZElt
YWdlT3ZlcmxheVN0YXRlID09IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6U2hvd2luZykgewor
ICAgICAgICAgICAgbV9jcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGUgPSBDcm9wcGVkSW1hZ2VPdmVy
bGF5U3RhdGU6OkhpZGRlbjsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNl
dENyb3BwZWRJbWFnZU92ZXJsYXlWaXNpYmlsaXR5KGZhbHNlKSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51
Q29weUNyb3BwZWRJbWFnZShTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBjb25zdCBTdHJp
bmcmIHByZWZlcnJlZE1JTUVUeXBlKQotewotICAgIGF1dG8gb3JpZ2luYWxJbWFnZSA9IGltYWdl
Qml0bWFwLm1ha2VDR0ltYWdlKCk7Ci0gICAgaWYgKCFvcmlnaW5hbEltYWdlKQorICAgIGlmICht
X2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA9PSBDcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGU6Okhp
ZGRlbikgeworICAgICAgICBtX2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA9IENyb3BwZWRJbWFn
ZU92ZXJsYXlTdGF0ZTo6U2hvd2luZzsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2V0Q3JvcHBlZEltYWdlT3ZlcmxheVZpc2liaWxpdHkodHJ1ZSkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKG1fY3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlICE9IENyb3BwZWRJ
bWFnZU92ZXJsYXlTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
ZWxlbWVudENvbnRleHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEuaGl0VGVzdGVk
RWxlbWVudENvbnRleHQoKTsKKyAgICBpZiAoIWVsZW1lbnRDb250ZXh0KQogICAgICAgICByZXR1
cm47CiAKKyAgICBhdXRvJiBoaXRUZXN0RGF0YSA9IG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0
RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLnZhbHVlKCk7CisgICAgYXV0byBpbWFnZUJpdG1h
cCA9IGhpdFRlc3REYXRhLmltYWdlQml0bWFwOworICAgIGlmICghaW1hZ2VCaXRtYXApCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFrZUNHSW1hZ2VD
b3B5KCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jcm9wcGVk
SW1hZ2VPdmVybGF5U3RhdGUgPSBDcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGU6OkFuYWx5emluZzsK
KworICAgIHJlcXVlc3RJbWFnZUFuYWx5c2lzTWFya3VwKGltYWdlLmdldCgpLCBbd2Vha1BhZ2Ug
PSBXZWFrUHRyIHsgKnRoaXMgfSwgZWxlbWVudENvbnRleHQgPSBXVEZNb3ZlKCplbGVtZW50Q29u
dGV4dCldKENHSW1hZ2VSZWYgcmVzdWx0SW1hZ2UsIENHUmVjdCBub3JtYWxpemVkQ3JvcFJlY3Qp
IHsKKyAgICAgICAgaWYgKCFyZXN1bHRJbWFnZSB8fCBDR1JlY3RJc0VtcHR5KG5vcm1hbGl6ZWRD
cm9wUmVjdCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgUmVmUHRyIHByb3RlY3Rl
ZFBhZ2UgPSB3ZWFrUGFnZS5nZXQoKTsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fY3JvcHBlZEltYWdl
UmVzdWx0ID0gcmVzdWx0SW1hZ2U7CisKKyAgICAgICAgaWYgKHByb3RlY3RlZFBhZ2UtPm1fY3Jv
cHBlZEltYWdlT3ZlcmxheVN0YXRlICE9IENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZTo6QW5hbHl6
aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gdGlmZkRhdGEgPSB0cmFu
c2NvZGUocmVzdWx0SW1hZ2UsIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50
aWZpZXIpOworICAgICAgICBpZiAoIXRpZmZEYXRhKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShbdGlmZkRh
dGEgbGVuZ3RoXSk7CisgICAgICAgIGlmICghc2hhcmVkTWVtb3J5KQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIFt0aWZmRGF0YSBnZXRCeXRlczpzaGFyZWRNZW1vcnktPmRhdGEoKSBs
ZW5ndGg6W3RpZmZEYXRhIGxlbmd0aF1dOworCisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxl
IGhhbmRsZTsKKyAgICAgICAgc2hhcmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgcHJvdGVjdGVkUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zdGFsbENyb3BwZWRJbWFnZU92ZXJsYXkoZWxlbWVu
dENvbnRleHQsIHsgV1RGTW92ZShoYW5kbGUpLCBzaGFyZWRNZW1vcnktPnNpemUoKSB9LCAiaW1h
Z2UvdGlmZiJfcywgbm9ybWFsaXplZENyb3BSZWN0KSk7CisgICAgICAgIHByb3RlY3RlZFBhZ2Ut
Pm1fY3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlID0gQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlOjpT
aG93aW5nOworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWN0aW9uKTsKKyNlbmRp
ZgorfQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKwordm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51Q29weUNyb3BwZWRJbWFnZShTaGFyZWFibGVC
aXRtYXAmIGltYWdlQml0bWFwLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZE1JTUVUeXBlKQorewog
ICAgIGF1dG8gY2hhbmdlQ291bnQgPSBOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuY2hh
bmdlQ291bnQ7Ci0gICAgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAob3JpZ2luYWxJbWFnZS5n
ZXQoKSwgW2NoYW5nZUNvdW50LCBvcmlnaW5hbEltYWdlLCBwcmVmZXJyZWRNSU1FVHlwZV0oQ0dJ
bWFnZVJlZiByZXN1bHRJbWFnZSkgeworICAgIGF1dG8gcGVyZm9ybUNvcHkgPSBbY2hhbmdlQ291
bnQsIHByZWZlcnJlZE1JTUVUeXBlXShDR0ltYWdlUmVmIHJlc3VsdEltYWdlKSB7CiAgICAgICAg
IGF1dG8gcGFzdGVib2FyZCA9IE5TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZDsKLSAgICAg
ICAgaWYgKGNoYW5nZUNvdW50ICE9IHBhc3RlYm9hcmQuY2hhbmdlQ291bnQpCisgICAgICAgIGlm
IChjaGFuZ2VDb3VudCAhPSBwYXN0ZWJvYXJkLmNoYW5nZUNvdW50IHx8ICFyZXN1bHRJbWFnZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktp
dDo6dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKHJlc3VsdEltYWdlID86IG9yaWdpbmFs
SW1hZ2UuZ2V0KCksIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIChf
X2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIpOworICAgICAgICBhdXRv
IFtkYXRhLCB0eXBlXSA9IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShyZXN1bHRJbWFn
ZSwgcHJlZmVycmVkTUlNRVR5cGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgKF9fYnJpZGdlIENG
U3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7CiAgICAgICAgIGlmICghZGF0YSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBbcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6QFso
X19icmlkZ2UgTlNTdHJpbmcgKil0eXBlLmdldCgpXSBvd25lcjpuaWxdOwogICAgICAgICBbcGFz
dGVib2FyZCBzZXREYXRhOmRhdGEuZ2V0KCkgZm9yVHlwZTooX19icmlkZ2UgTlNTdHJpbmcgKil0
eXBlLmdldCgpXTsKKyAgICB9OworCisgICAgaWYgKG1fY3JvcHBlZEltYWdlUmVzdWx0KSB7Cisg
ICAgICAgIHBlcmZvcm1Db3B5KG1fY3JvcHBlZEltYWdlUmVzdWx0LmdldCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8gb3JpZ2luYWxJbWFnZSA9IGltYWdlQml0bWFwLm1h
a2VDR0ltYWdlQ29weSgpOworICAgIGlmICghb3JpZ2luYWxJbWFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAob3JpZ2luYWxJbWFnZS5nZXQoKSwg
W3BlcmZvcm1Db3B5ID0gV1RGTW92ZShwZXJmb3JtQ29weSldKGF1dG8gaW1hZ2UsIGF1dG8pIHsK
KyAgICAgICAgcGVyZm9ybUNvcHkoaW1hZ2UpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKaW5kZXggYjE4
Y2VjNThlM2E2MTg4NTFlNDM2YmY3OTNjMzM1NjVjNzA4YWE1Yy4uM2MxY2FmOGM3MDRmNDU4ODA1
MWRiYzYyMTAyNmI4NDFiMzNlOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNjMsOSArNjMsMTMgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudTo6c2hvdygpCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsK
ICAgICBtZW51SXRlbXNXaXRoVXNlckRhdGEobWVudUl0ZW1zLCB1c2VyRGF0YSk7CiAKKyAgICBz
dGQ6Om9wdGlvbmFsPEVsZW1lbnRDb250ZXh0PiBoaXRUZXN0ZWRFbGVtZW50Q29udGV4dDsKKyAg
ICBpZiAoUmVmUHRyIGhpdFRlc3RlZEVsZW1lbnQgPSBjb250cm9sbGVyLmhpdFRlc3RSZXN1bHQo
KS5pbm5lck5vblNoYXJlZEVsZW1lbnQoKSkKKyAgICAgICAgaGl0VGVzdGVkRWxlbWVudENvbnRl
eHQgPSBtX3BhZ2UtPmNvbnRleHRGb3JFbGVtZW50KCpoaXRUZXN0ZWRFbGVtZW50KTsKKwogICAg
IGF1dG8gbWVudUxvY2F0aW9uID0gdmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KGNvbnRyb2xsZXIu
aGl0VGVzdFJlc3VsdCgpLnJvdW5kZWRQb2ludEluSW5uZXJOb2RlRnJhbWUoKSk7CiAKLSAgICBD
b250ZXh0TWVudUNvbnRleHREYXRhIGNvbnRleHRNZW51Q29udGV4dERhdGEobWVudUxvY2F0aW9u
LCBtZW51SXRlbXMsIGNvbnRyb2xsZXIuY29udGV4dCgpKTsKKyAgICBDb250ZXh0TWVudUNvbnRl
eHREYXRhIGNvbnRleHRNZW51Q29udGV4dERhdGEobWVudUxvY2F0aW9uLCBXVEZNb3ZlKGhpdFRl
c3RlZEVsZW1lbnRDb250ZXh0KSwgbWVudUl0ZW1zLCBjb250cm9sbGVyLmNvbnRleHQoKSk7CiAK
ICAgICAvLyBNYXJrIHRoZSBXZWJQYWdlIGhhcyBoYXZpbmcgYSBzaG93biBjb250ZXh0IG1lbnUg
dGhlbiBub3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBtX3BhZ2UtPnN0YXJ0V2FpdGluZ0ZvckNv
bnRleHRNZW51VG9TaG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDM0OTg3YmRlNjRmZGZmMDkwODMyYzM3NTQyYjkzNTEzYTYxYWRjY2Iu
LjhhZDhlZDI1NTA2ZDJmNTgyZWZlNzU0Mzk4ZWRmMmIxZjAwYzEyMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yOTEyLDYgKzI5MTIsMTAg
QEAgdm9pZCBXZWJQYWdlOjpkaWRTaG93Q29udGV4dE1lbnUoKQogdm9pZCBXZWJQYWdlOjpkaWRE
aXNtaXNzQ29udGV4dE1lbnUoKQogewogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJv
bGxlcigpLmRpZERpc21pc3NDb250ZXh0TWVudSgpOworCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTX0VOSEFOQ0VNRU5UUykKKyAgICBtX2Nyb3BwZWRJbWFnZU92ZXJsYXkgPSBudWxscHRyOwor
I2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTc3OTgsNiAr
NzgwMiwyOSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUJpdG1hcChjb25zdCBFbGVtZW50
Q29udGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZQogICAgIGNvbXBsZXRpb24oaGFuZGxl
LCBtaW1lVHlwZSk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRT
KQorCit2b2lkIFdlYlBhZ2U6Omluc3RhbGxDcm9wcGVkSW1hZ2VPdmVybGF5KGNvbnN0IEVsZW1l
bnRDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaW1hZ2VE
YXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBGbG9hdFJlY3Qgbm9ybWFsaXplZENyb3BSZWN0
KQoreworICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaW1hZ2VEYXRh
LmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgaWYgKCFz
aGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0ciBlbGVtZW50ID0gZHlu
YW1pY0Rvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50Rm9yQ29udGV4dChjb250ZXh0KS5nZXQo
KSk7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nyb3BwZWRJ
bWFnZU92ZXJsYXkgPSBJbWFnZU92ZXJsYXk6OkNyb3BwZWRJbWFnZTo6aW5zdGFsbCgqZWxlbWVu
dCwgc2hhcmVkTWVtb3J5LT5jcmVhdGVTaGFyZWRCdWZmZXIoaW1hZ2VEYXRhLmRhdGFTaXplKSwg
bWltZVR5cGUsIG5vcm1hbGl6ZWRDcm9wUmVjdCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0Q3Jv
cHBlZEltYWdlT3ZlcmxheVZpc2liaWxpdHkoYm9vbCB2aXNpYmxlKQoreworICAgIGlmIChtX2Ny
b3BwZWRJbWFnZU92ZXJsYXkpCisgICAgICAgIG1fY3JvcHBlZEltYWdlT3ZlcmxheS0+c2V0Vmlz
aWJpbGl0eSh2aXNpYmxlKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJU19F
TkhBTkNFTUVOVFMpCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykg
JiYgVVNFKFVJQ09OVEVYVE1FTlUpCiB2b2lkIFdlYlBhZ2U6OnNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1MTBmNzVkNjNhYTJhMDc5
MGY0M2YzMGMwNDZkYzg4M2M3NjFlOWYzLi41NDNlMjJlZmFlNjk4MWQ5N2Q1MzA2OTE0YWIzMmNj
OGM3NTQ2ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0yNjgsNiArMjY4LDEwIEBAIGNsYXNzIEhUTUxBdHRhY2htZW50RWxlbWVudDsKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIHN0
cnVjdCBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mbzsKICNlbmRpZgorCituYW1lc3BhY2UgSW1h
Z2VPdmVybGF5IHsKK2NsYXNzIENyb3BwZWRJbWFnZTsKK30KIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC0xNDUwLDYgKzE0NTQsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJl
cXVlc3RJbWFnZUJpdG1hcChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBjb25zdCBTdHJp
bmcmIHNvdXJjZU1JTUVUeXBlKT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFO
Q0VNRU5UUykKKyAgICB2b2lkIGluc3RhbGxDcm9wcGVkSW1hZ2VPdmVybGF5KGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGltYWdl
RGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6RmxvYXRSZWN0IG5vcm1hbGl6
ZWRDcm9wUmVjdCk7CisgICAgdm9pZCBzZXRDcm9wcGVkSW1hZ2VPdmVybGF5VmlzaWJpbGl0eShi
b29sKTsKKyNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9u
KGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvJik7CkBAIC0yNDM5LDYg
KzI0NDcsMTAgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgV2Vi
Q29yZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eSBtX2FwcEhpZ2hsaWdodHNWaXNpYmxlIHsgV2ViQ29y
ZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eTo6SGlkZGVuIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkltYWdlT3ZlcmxheTo6Q3JvcHBlZEltYWdlPiBtX2Nyb3BwZWRJbWFnZU92ZXJsYXk7CisjZW5k
aWYKIH07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDE4Y2FkMDI3
MTNkYjAwOTc3OGNlNjk2NTgxNmRlMjI0MmIzZDc0NzIuLmRhODdhMGQyZTNhYTYzZTE3YTI1ZmU2
YTFmMmM4NDRlNGNhMDI4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTM0LDYgKzEzNCwxMSBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogCiAgICAgUmVxdWVzdEltYWdlQml0bWFwKHN0cnVjdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCBlbGVtZW50Q29udGV4dCkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgaW1hZ2UsIFN0cmluZyBzb3VyY2VNSU1FVHlwZSkgQXN5bmMKIAorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCisgICAgSW5zdGFsbENyb3BwZWRJbWFn
ZU92ZXJsYXkoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0LCBX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGltYWdlRGF0YSwgU3RyaW5nIG1pbWVUeXBl
LCBXZWJDb3JlOjpGbG9hdFJlY3Qgbm9ybWFsaXplZENyb3BSZWN0KQorICAgIFNldENyb3BwZWRJ
bWFnZU92ZXJsYXlWaXNpYmlsaXR5KGJvb2wgdmlzaWJsZSkKKyNlbmRpZgorCiAgICAgU2V0Q29u
dHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNvbnRyb2xsZWQpCiAKICAgICBDb25uZWN0SW5zcGVj
dG9yKFN0cmluZyB0YXJnZXRJZCwgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw6OkNvbm5lY3Rp
b25UeXBlIGNvbm5lY3Rpb25UeXBlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>