<?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>236771</bug_id>
          
          <creation_ts>2022-02-17 04:28:50 -0800</creation_ts>
          <short_desc>[CSS Container Queries] Support full range notation in size queries</short_desc>
          <delta_ts>2022-02-17 11:40:18 -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>CSS</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>
          
          <blocked>229659</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842818</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-02-17 04:28:50 -0800</bug_when>
    <thetext>(100px &lt; width) and (100px &lt; width &lt; 200px)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842834</commentid>
    <comment_count>1</comment_count>
      <attachid>452353</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-02-17 05:04:41 -0800</bug_when>
    <thetext>Created attachment 452353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842902</commentid>
    <comment_count>2</comment_count>
      <attachid>452353</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-02-17 07:58:31 -0800</bug_when>
    <thetext>Comment on attachment 452353
Patch

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

&gt; Source/WebCore/style/ContainerQueryEvaluator.cpp:195
&gt; +    auto evaluateAspectRatioComparison = [&amp;](double aspectRation, const std::optional&lt;CQ::Comparison&gt;&amp; comparison, Side side) {

Typo: aspectRation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842909</commentid>
    <comment_count>3</comment_count>
      <attachid>452369</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-02-17 08:12:42 -0800</bug_when>
    <thetext>Created attachment 452369
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843000</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-17 11:39:23 -0800</bug_when>
    <thetext>Committed r290037 (247415@main): &lt;https://commits.webkit.org/247415@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452369.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843001</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-17 11:40:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89099831&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452353</attachid>
            <date>2022-02-17 05:04:41 -0800</date>
            <delta_ts>2022-02-17 08:12:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236771-20220217150440.patch</filename>
            <type>text/plain</type>
            <size>23246</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM0YzFjMjc2ZWY4MjZi
YTQ5NTA0NmE0YzlkY2JjMzIzODlhOTgwZi4uNDE2OTk5ZDAzNmE4ZmZkNDFlYmVhYmNjOTZjYTU3
YjY1ODk4NmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTAyLTE3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENvbnRhaW5lciBR
dWVyaWVzXSBTdXBwb3J0IGZ1bGwgcmFuZ2Ugbm90YXRpb24gaW4gc2l6ZSBxdWVyaWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJzZSBhbmQgZXZh
bHVhdGUgbm90YXRpb25zIGxpa2UgKDEwMHB4IDwgd2lkdGgpIGFuZCAoMTAwcHggPCB3aWR0aCA8
IDIwMHB4KS4KKworICAgICAgICAqIGNzcy9Db250YWluZXJRdWVyeS5oOgorCisgICAgICAgIFRo
ZXJlIGFyZSBub3cgb3B0aW9uYWwgbGVmdCBhbmQgcmlnaHQgY29tcGFyaXNvbnMuCisKKyAgICAg
ICAgKiBjc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVTaXplUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVTaXplRmVhdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVBsYWluU2l6ZUZlYXR1cmUpOgorCisg
ICAgICAgIEV2YWx1YXRlIHRoZSBwbGFpbiAoZm9vOiB2YWx1ZSkgbm90YXRpb24uCisKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lUmFuZ2VTaXplRmVhdHVy
ZSk6CisKKyAgICAgICAgRXZhbHVhdGUgcmFuZ2Ugbm90YXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lVmFsdWUpOgorICAgICAgICAqIGNzcy9D
b250YWluZXJRdWVyeVBhcnNlci5oOgorICAgICAgICAqIHN0eWxlL0NvbnRhaW5lclF1ZXJ5RXZh
bHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVyeUV2YWx1
YXRvcjo6ZXZhbHVhdGVTaXplRmVhdHVyZSBjb25zdCk6CisKKyAgICAgICAgRXZhbHVhdGUgYm90
aCBjb21wYXJpc29ucyBpZiB0aGV5IGV4aXN0LgorCisgICAgICAgICogc3R5bGUvQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjp0b0V2YWx1YXRpb25S
ZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om9wZXJhdG9yfCk6CisKIDIwMjItMDIt
MTYgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIENo
YW5nZSB0aGUgY2Fub25pY2FsIHVuaXQgZm9yIHRpbWUgY2F0ZWdvcnkgZnJvbSBtcyB0byBzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuaAppbmRleCBhZGFhZGQwNjRmNDQyMjZkY2JlMTEx
ZDI0ODUyMGI3NzZjNTEzZDk1Li43ZDlhMzU5NzNjYzllZmM4MjI1OWE1M2NiODcxNWIzYTVjNmE5
N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuaApAQCAtNDIsNyArNDIsNyBAQCB1
c2luZyBTaXplUXVlcnkgPSBzdGQ6OnZhcmlhbnQ8U2l6ZUNvbmRpdGlvbiwgU2l6ZUZlYXR1cmU+
OwogdXNpbmcgQ29udGFpbmVyUXVlcnkgPSBzdGQ6OnZhcmlhbnQ8Q29udGFpbmVyQ29uZGl0aW9u
LCBTaXplUXVlcnksIFVua25vd25RdWVyeT47CiAKIGVudW0gY2xhc3MgTG9naWNhbE9wZXJhdG9y
IDogdWludDhfdCB7IEFuZCwgT3IsIE5vdCB9OwotZW51bSBjbGFzcyBDb21wYXJpc29uT3BlcmF0
b3IgOiB1aW50OF90IHsgTGVzc1RoYW4sIExlc3NUaGFuT3JFcXVhbCwgRXF1YWwsIEdyZWF0ZXJU
aGFuLCBHcmVhdGVyVGhhbk9yRXF1YWwsIFRydWUgfTsKK2VudW0gY2xhc3MgQ29tcGFyaXNvbk9w
ZXJhdG9yIDogdWludDhfdCB7IExlc3NUaGFuLCBMZXNzVGhhbk9yRXF1YWwsIEVxdWFsLCBHcmVh
dGVyVGhhbiwgR3JlYXRlclRoYW5PckVxdWFsIH07CiAKIHN0cnVjdCBDb250YWluZXJDb25kaXRp
b24gewogICAgIExvZ2ljYWxPcGVyYXRvciBsb2dpY2FsT3BlcmF0b3IgeyBMb2dpY2FsT3BlcmF0
b3I6OkFuZCB9OwpAQCAtNTQsMTAgKzU0LDE1IEBAIHN0cnVjdCBTaXplQ29uZGl0aW9uIHsKICAg
ICBWZWN0b3I8U2l6ZVF1ZXJ5PiBxdWVyaWVzOwogfTsKIAorc3RydWN0IENvbXBhcmlzb24gewor
ICAgIENvbXBhcmlzb25PcGVyYXRvciBvcCB7IENvbXBhcmlzb25PcGVyYXRvcjo6RXF1YWwgfTsK
KyAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlOworfTsKKwogc3RydWN0IFNpemVGZWF0dXJlIHsK
LSAgICBDb21wYXJpc29uT3BlcmF0b3IgY29tcGFyaXNvbk9wZXJhdG9yIHsgQ29tcGFyaXNvbk9w
ZXJhdG9yOjpFcXVhbCB9OwogICAgIEF0b21TdHJpbmcgbmFtZTsKLSAgICBSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlOworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcGFyaXNvbj4gbGVmdENvbXBhcmlzb247
CisgICAgc3RkOjpvcHRpb25hbDxDb21wYXJpc29uPiByaWdodENvbXBhcmlzb247CiB9OwogCiBu
YW1lc3BhY2UgRmVhdHVyZU5hbWVzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
b250YWluZXJRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVl
cnlQYXJzZXIuY3BwCmluZGV4IDE0NzM4YjM1MTFmNzkwZDlmODJmMDAwZmRmMDY4NDcxNzUwNGVj
MDcuLjZkM2I0ZWNmNjY1YWExYTE2NjkyNjNjNTJkOWM1OWM2OGY1ODY4ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBA
IHN0ZDo6b3B0aW9uYWw8Q29uZGl0aW9uVHlwZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1
bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9rCiAKIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVRdWVyeT4g
Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVTaXplUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCiB7Ci0gICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gSWRlbnRUb2tlbiB8
fCByYW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZU5vdCkgeworICAgIGlmIChyYW5nZS5wZWVr
KCkudHlwZSgpID09IExlZnRQYXJlbnRoZXNpc1Rva2VuIHx8IChyYW5nZS5wZWVrKCkudHlwZSgp
ID09IElkZW50VG9rZW4gJiYgcmFuZ2UucGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVOb3QpKSB7CiAg
ICAgICAgIGF1dG8gc2l6ZUNvbmRpdGlvbiA9IGNvbnN1bWVDb25kaXRpb248Q1E6OlNpemVDb25k
aXRpb24+KHJhbmdlKTsKICAgICAgICAgaWYgKCFzaXplQ29uZGl0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTE0Nyw4MiArMTQ3LDE0MiBAQCBzdGQ6Om9wdGlvbmFsPENROjpTaXpl
UXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lU2l6ZVF1ZXJ5KENTU1BhcnNlclRv
awogICAgIGlmICghc2l6ZUZlYXR1cmUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByYW5n
ZS5jb25zdW1lV2hpdGVzcGFjZSgpOwotICAgIGlmICghcmFuZ2UuYXRFbmQoKSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQogICAgIHJldHVybiB7ICpzaXplRmVhdHVyZSB9OwogfQogCiBzdGQ6Om9w
dGlvbmFsPENROjpTaXplRmVhdHVyZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVTaXpl
RmVhdHVyZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKLSAgICAvLyBGSVhNRTogU3Vw
cG9ydCB2YWx1ZS1maXJzdCAoMTAwcHggPCB3aWR0aCkgYW5kIGZ1bGwgcmFuZ2UgKDEwMHB4IDwg
d2lkdGggPCAyMDBweCkgbm90YXRpb25zLgorICAgIGF1dG8gcmFuZ2VDb3B5ID0gcmFuZ2U7Cisg
ICAgaWYgKGF1dG8gc2l6ZUZlYXR1cmUgPSBjb25zdW1lUGxhaW5TaXplRmVhdHVyZShyYW5nZSkp
CisgICAgICAgIHJldHVybiBzaXplRmVhdHVyZTsKKworICAgIHJhbmdlID0gcmFuZ2VDb3B5Owor
ICAgIHJldHVybiBjb25zdW1lUmFuZ2VTaXplRmVhdHVyZShyYW5nZSk7Cit9CisKK3N0ZDo6b3B0
aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVBsYWlu
U2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byBjb25z
dW1lUGxhaW5GZWF0dXJlTmFtZSA9IFsmXSgpIC0+IHN0ZDo6cGFpcjxBdG9tU3RyaW5nLCBDUTo6
Q29tcGFyaXNvbk9wZXJhdG9yPiB7CisgICAgICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9
IElkZW50VG9rZW4pCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBhdXRvIHRva2Vu
ID0gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKKyAgICAgICAgYXV0byBuYW1l
ID0gdG9rZW4udmFsdWUoKTsKKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgibWluLSIpKQor
ICAgICAgICAgICAgcmV0dXJuIHsgbmFtZS5zdWJzdHJpbmcoNCkudG9BdG9tU3RyaW5nKCksIENR
OjpDb21wYXJpc29uT3BlcmF0b3I6OkdyZWF0ZXJUaGFuT3JFcXVhbCB9OworICAgICAgICBpZiAo
bmFtZS5zdGFydHNXaXRoKCJtYXgtIikpCisgICAgICAgICAgICByZXR1cm4geyBuYW1lLnN1YnN0
cmluZyg0KS50b0F0b21TdHJpbmcoKSwgQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6TGVzc1RoYW5P
ckVxdWFsIH07CisKKyAgICAgICAgcmV0dXJuIHsgbmFtZS50b0F0b21TdHJpbmcoKSwgQ1E6OkNv
bXBhcmlzb25PcGVyYXRvcjo6RXF1YWwgfTsKKyAgICB9OworCisgICAgYXV0byBbZmVhdHVyZU5h
bWUsIG9wXSA9IGNvbnN1bWVQbGFpbkZlYXR1cmVOYW1lKCk7CisgICAgaWYgKGZlYXR1cmVOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJhbmdlLmNvbnN1bWVXaGl0
ZXNwYWNlKCk7CiAKLSAgICBhdXRvIG5hbWVUb2tlbiA9IHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCk7Ci0gICAgQVNTRVJUKG5hbWVUb2tlbi50eXBlKCkgPT0gSWRlbnRUb2tlbik7
CisgICAgaWYgKHJhbmdlLmF0RW5kKCkpIHsKKyAgICAgICAgaWYgKG9wICE9IENROjpDb21wYXJp
c29uT3BlcmF0b3I6OkVxdWFsKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0
dXJuIENROjpTaXplRmVhdHVyZSB7IGZlYXR1cmVOYW1lLCB7IH0sIHsgfSB9OworICAgIH0KIAot
ICAgIGF1dG8gbmFtZSA9IG5hbWVUb2tlbi52YWx1ZSgpOworICAgIGlmIChyYW5nZS5wZWVrKCku
dHlwZSgpICE9IENvbG9uVG9rZW4pCisgICAgICAgIHJldHVybiB7IH07CiAKKyAgICByYW5nZS5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpOwogICAgIGlmIChyYW5nZS5hdEVuZCgpKQotICAg
ICAgICByZXR1cm4gQ1E6OlNpemVGZWF0dXJlIHsgQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6VHJ1
ZSwgbmFtZS50b0F0b21TdHJpbmcoKSwgeyB9IH07CisgICAgICAgIHJldHVybiB7IH07CiAKLSAg
ICBhdXRvIGNvbnN1bWVPcGVyYXRvciA9IFsmXSgpIC0+IHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbXBh
cmlzb25PcGVyYXRvcj4gewotICAgICAgICBhdXRvIG9wVG9rZW4gPSByYW5nZS5jb25zdW1lKCk7
CisgICAgYXV0byB2YWx1ZSA9IGNvbnN1bWVWYWx1ZShyYW5nZSk7CisgICAgCisgICAgcmV0dXJu
IENROjpTaXplRmVhdHVyZSB7IGZlYXR1cmVOYW1lLCB7IH0sIENROjpDb21wYXJpc29uIHsgb3As
IFdURk1vdmUodmFsdWUpIH0gfTsKK30KKworc3RkOjpvcHRpb25hbDxDUTo6U2l6ZUZlYXR1cmU+
IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lUmFuZ2VTaXplRmVhdHVyZShDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIGNvbnN1bWVGZWF0dXJlTmFtZSA9IFsmXSgp
IC0+IEF0b21TdHJpbmcgeworICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBJZGVu
dFRva2VuKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNv
bnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkudmFsdWUoKS50b0F0b21TdHJpbmcoKTsKKyAgICB9
OworCisgICAgYXV0byBjb25zdW1lUmFuZ2VPcGVyYXRvciA9IFsmXSgpIC0+IHN0ZDo6b3B0aW9u
YWw8Q1E6OkNvbXBhcmlzb25PcGVyYXRvcj4gewogICAgICAgICBpZiAocmFuZ2UuYXRFbmQoKSkK
ICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIGlmIChvcFRva2VuLnR5cGUoKSA9PSBD
b2xvblRva2VuKSB7Ci0gICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJtaW4tIikpIHsK
LSAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoNCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIENROjpDb21wYXJpc29uT3BlcmF0b3I6OkdyZWF0ZXJUaGFuT3JFcXVhbDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoIm1heC0iKSkgewot
ICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyg0KTsKKyAgICAgICAgYXV0byBv
cFRva2VuID0gcmFuZ2UuY29uc3VtZSgpOworICAgICAgICBpZiAocmFuZ2UuYXRFbmQoKSB8fCBv
cFRva2VuLnR5cGUoKSAhPSBEZWxpbWl0ZXJUb2tlbikKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisKKyAgICAgICAgc3dpdGNoIChvcFRva2VuLmRlbGltaXRlcigpKSB7CisgICAgICAgIGNhc2Ug
Jz0nOgorICAgICAgICAgICAgcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgICAg
IHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpFcXVhbDsKKyAgICAgICAgY2FzZSAnPCc6
CisgICAgICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBEZWxpbWl0ZXJUb2tlbiAm
JiByYW5nZS5wZWVrKCkuZGVsaW1pdGVyKCkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgcmFu
Z2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
Q1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6TGVzc1RoYW5PckVxdWFsOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29uT3BlcmF0b3I6OkVxdWFsOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChvcFRva2VuLnR5cGUoKSA9PSBEZWxpbWl0ZXJUb2tlbikgewotICAg
ICAgICAgICAgc3dpdGNoIChvcFRva2VuLmRlbGltaXRlcigpKSB7Ci0gICAgICAgICAgICBjYXNl
ICc9JzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6RXF1
YWw7Ci0gICAgICAgICAgICBjYXNlICc8JzoKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2UucGVl
aygpLnR5cGUoKSA9PSBEZWxpbWl0ZXJUb2tlbiAmJiByYW5nZS5wZWVrKCkuZGVsaW1pdGVyKCkg
PT0gJz0nKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJhbmdlLmNvbnN1bWUoKTsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuT3JFcXVh
bDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJp
c29uT3BlcmF0b3I6Okxlc3NUaGFuOwotICAgICAgICAgICAgY2FzZSAnPic6Ci0gICAgICAgICAg
ICAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRGVsaW1pdGVyVG9rZW4gJiYgcmFuZ2Uu
cGVlaygpLmRlbGltaXRlcigpID09ICc9JykgewotICAgICAgICAgICAgICAgICAgICByYW5nZS5j
b25zdW1lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJh
dG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbjsKLSAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIHJh
bmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgICAgICByZXR1cm4gQ1E6OkNvbXBhcmlz
b25PcGVyYXRvcjo6TGVzc1RoYW47CisgICAgICAgIGNhc2UgJz4nOgorICAgICAgICAgICAgaWYg
KHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRGVsaW1pdGVyVG9rZW4gJiYgcmFuZ2UucGVlaygpLmRl
bGltaXRlcigpID09ICc9JykgeworICAgICAgICAgICAgICAgIHJhbmdlLmNvbnN1bWVJbmNsdWRp
bmdXaGl0ZXNwYWNlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29uT3Bl
cmF0b3I6OkdyZWF0ZXJUaGFuT3JFcXVhbDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJh
bmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgICAgICByZXR1cm4gQ1E6OkNvbXBhcmlz
b25PcGVyYXRvcjo6R3JlYXRlclRoYW47CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBy
ZXR1cm4geyB9OwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7IH07CiAgICAgfTsKIAotICAg
IGF1dG8gb3AgPSBjb25zdW1lT3BlcmF0b3IoKTsKLSAgICBpZiAoIW9wKQotICAgICAgICByZXR1
cm4geyB9OworICAgIGF1dG8gY29uc3VtZUxlZnRDb21wYXJpc29uID0gWyZdKCkgLT4gc3RkOjpv
cHRpb25hbDxDUTo6Q29tcGFyaXNvbj4geworICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUo
KSA9PSBJZGVudFRva2VuKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgYXV0byB2
YWx1ZSA9IGNvbnN1bWVWYWx1ZShyYW5nZSk7CisgICAgICAgIGF1dG8gb3AgPSBjb25zdW1lUmFu
Z2VPcGVyYXRvcigpOworICAgICAgICBpZiAoIW9wKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIHJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgIHJldHVybiBDUTo6Q29t
cGFyaXNvbiB7ICpvcCwgV1RGTW92ZSh2YWx1ZSkgfTsKKyAgICB9OwogCi0gICAgYXV0byBmZWF0
dXJlTmFtZSA9IG5hbWUudG9BdG9tU3RyaW5nKCk7CisgICAgYXV0byBjb25zdW1lUmlnaHRDb21w
YXJpc29uID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDxDUTo6Q29tcGFyaXNvbj4geworICAgICAg
ICBhdXRvIG9wID0gY29uc3VtZVJhbmdlT3BlcmF0b3IoKTsKKyAgICAgICAgaWYgKCFvcCkKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGF1dG8gdmFsdWUgPSBjb25zdW1lVmFsdWUo
cmFuZ2UpOwogCi0gICAgYXV0byBjb25zdW1lVmFsdWUgPSBbJl0oKSAtPiBSZWZQdHI8Q1NTVmFs
dWU+IHsKLSAgICAgICAgaWYgKGZlYXR1cmVOYW1lID09IENROjpGZWF0dXJlTmFtZXM6Om9yaWVu
dGF0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpj
b25zdW1lSWRlbnQocmFuZ2UpOwotICAgICAgICBpZiAoZmVhdHVyZU5hbWUgPT0gQ1E6OkZlYXR1
cmVOYW1lczo6YXNwZWN0UmF0aW8oKSkKLSAgICAgICAgICAgIHJldHVybiBDU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnM6OmNvbnN1bWVBc3BlY3RSYXRpb1ZhbHVlKHJhbmdlKTsKLSAgICAgICAgcmV0
dXJuIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUxlbmd0aChyYW5nZSwgbV9jb250
ZXh0Lm1vZGUsIFZhbHVlUmFuZ2U6OkFsbCk7CisgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNv
biB7ICpvcCwgV1RGTW92ZSh2YWx1ZSkgfTsKICAgICB9OwogCi0gICAgYXV0byB2YWx1ZSA9IGNv
bnN1bWVWYWx1ZSgpOworICAgIGF1dG8gbGVmdENvbXBhcmlzb24gPSBjb25zdW1lTGVmdENvbXBh
cmlzb24oKTsKKworICAgIGF1dG8gZmVhdHVyZU5hbWUgPSBjb25zdW1lRmVhdHVyZU5hbWUoKTsK
KyAgICBpZiAoZmVhdHVyZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgYXV0byByaWdodENvbXBhcmlzb24gPSBjb25zdW1lUmlnaHRDb21wYXJpc29uKCk7CiAKLSAg
ICByZXR1cm4gQ1E6OlNpemVGZWF0dXJlIHsgKm9wLCBXVEZNb3ZlKGZlYXR1cmVOYW1lKSwgV1RG
TW92ZSh2YWx1ZSkgfTsKKyAgICBpZiAoIWxlZnRDb21wYXJpc29uICYmICFyaWdodENvbXBhcmlz
b24pCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gQ1E6OlNpemVGZWF0dXJlIHsg
V1RGTW92ZShmZWF0dXJlTmFtZSksIFdURk1vdmUobGVmdENvbXBhcmlzb24pLCBXVEZNb3ZlKHJp
Z2h0Q29tcGFyaXNvbikgfTsKK30KKworUmVmUHRyPENTU1ZhbHVlPiBDb250YWluZXJRdWVyeVBh
cnNlcjo6Y29uc3VtZVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlm
IChyYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byB2
YWx1ZSA9IENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUlkZW50KHJhbmdlKSkKKyAg
ICAgICAgcmV0dXJuIHZhbHVlOworICAgIGlmIChhdXRvIHZhbHVlID0gQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoKHJhbmdlLCBtX2NvbnRleHQubW9kZSwgVmFsdWVSYW5n
ZTo6QWxsKSkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIGlmIChhdXRvIHZhbHVlID0gQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQXNwZWN0UmF0aW9WYWx1ZShyYW5nZSkpCisg
ICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250
YWluZXJRdWVyeVBhcnNlci5oCmluZGV4IDUyZWQ0YmFkODEwYmYyOTk1NmY4YWJmNDhiZDQzY2Rl
YjRhNjlkMzQuLmFkZDNkYTNmNDQ1Nzk1YzRlYjg4OTlhNjdkNWU2MmY3NmRmMTM2YTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCkBAIC00MSw2ICs0MSw5IEBA
IHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxDUTo6U2l6ZVF1ZXJ5PiBjb25zdW1lU2l6ZVF1
ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRp
b25UeXBlPiBzdGQ6Om9wdGlvbmFsPENvbmRpdGlvblR5cGU+IGNvbnN1bWVDb25kaXRpb24oQ1NT
UGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBj
b25zdW1lU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIHN0ZDo6b3B0aW9u
YWw8Q1E6OlNpemVGZWF0dXJlPiBjb25zdW1lUGxhaW5TaXplRmVhdHVyZShDU1NQYXJzZXJUb2tl
blJhbmdlJik7CisgICAgc3RkOjpvcHRpb25hbDxDUTo6U2l6ZUZlYXR1cmU+IGNvbnN1bWVSYW5n
ZVNpemVGZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKICAgICBDb250YWluZXJRdWVy
eVBhcnNlcihjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQogICAgICAgICA6IG1fY29u
dGV4dChjb250ZXh0KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA2ZTE0MTIxNDk5YjUyNDY4YzA5YmZmYTU5MTk3Njc0YjAx
YmYwNTA0Li4zY2M3NTI2MDNiNWM0Yzg1MDIzYjk4NzRhZjE2M2EzOWE5NjRmM2Q2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIGJvb2wgQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0
IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmIGZpbHRlcmVkQ29uCiAKICAgICBhdXRvIGNvbnRhaW5l
ciA9IHJlc29sdmVDb250YWluZXIoKTsKICAgICBpZiAoIWNvbnRhaW5lcikKLSAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGV2YWx1YXRlUXVl
cnkoZmlsdGVyZWRDb250YWluZXJRdWVyeS5xdWVyeSwgKmNvbnRhaW5lcikgPT0gRXZhbHVhdGlv
blJlc3VsdDo6VHJ1ZTsKIH0KQEAgLTEwOCwxNiArMTA4LDggQEAgYXV0byBDb250YWluZXJRdWVy
eUV2YWx1YXRvcjo6ZXZhbHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0
aW9uLAogICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKIAogICAgIHN3
aXRjaCAoY29uZGl0aW9uLmxvZ2ljYWxPcGVyYXRvcikgewotICAgIGNhc2UgQ1E6OkxvZ2ljYWxP
cGVyYXRvcjo6Tm90OiB7Ci0gICAgICAgIHN3aXRjaCAoZXZhbHVhdGVRdWVyeShjb25kaXRpb24u
cXVlcmllcy5maXJzdCgpLCBjb250YWluZXIpKSB7Ci0gICAgICAgIGNhc2UgRXZhbHVhdGlvblJl
c3VsdDo6VHJ1ZToKLSAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZTsK
LSAgICAgICAgY2FzZSBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZToKLSAgICAgICAgICAgIHJldHVy
biBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOwotICAgICAgICBjYXNlIEV2YWx1YXRpb25SZXN1bHQ6
OlVua25vd246Ci0gICAgICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsK
LSAgICAgICAgfQotICAgIH0KKyAgICBjYXNlIENROjpMb2dpY2FsT3BlcmF0b3I6Ok5vdDoKKyAg
ICAgICAgcmV0dXJuICFldmFsdWF0ZVF1ZXJ5KGNvbmRpdGlvbi5xdWVyaWVzLmZpcnN0KCksIGNv
bnRhaW5lcik7CiAgICAgY2FzZSBDUTo6TG9naWNhbE9wZXJhdG9yOjpBbmQ6IHsKICAgICAgICAg
YXV0byByZXN1bHQgPSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOwogICAgICAgICBmb3IgKGF1dG8g
cXVlcnkgOiBjb25kaXRpb24ucXVlcmllcykgewpAQCAtMTYyLDEyICsxNTQsOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlU2l6ZShjb25zdCBDU1NWYWx1ZSogdmFs
dWUsIGNvbnN0IENTU1RvTAogCiBhdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0
ZVNpemVGZWF0dXJlKGNvbnN0IENROjpTaXplRmVhdHVyZSYgc2l6ZUZlYXR1cmUsIGNvbnN0IFJl
c29sdmVkQ29udGFpbmVyJiBjb250YWluZXIpIGNvbnN0IC0+IEV2YWx1YXRpb25SZXN1bHQKIHsK
LSAgICBhdXRvIHRvRXZhbHVhdGlvblJlc3VsdCA9IFtdKGJvb2wgYm9vbGVhbikgewotICAgICAg
ICByZXR1cm4gYm9vbGVhbiA/IEV2YWx1YXRpb25SZXN1bHQ6OlRydWUgOiBFdmFsdWF0aW9uUmVz
dWx0OjpGYWxzZTsKLSAgICB9OwotCi0gICAgYXV0byBjb21wYXJlID0gWyZdKGF1dG8gbGVmdCwg
YXV0byByaWdodCkgewotICAgICAgICBzd2l0Y2ggKHNpemVGZWF0dXJlLmNvbXBhcmlzb25PcGVy
YXRvcikgeworICAgIGF1dG8gY29tcGFyZSA9IFtdKENROjpDb21wYXJpc29uT3BlcmF0b3Igb3As
IGF1dG8gbGVmdCwgYXV0byByaWdodCkgeworICAgICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgICAg
IGNhc2UgQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6TGVzc1RoYW46CiAgICAgICAgICAgICByZXR1
cm4gbGVmdCA8IHJpZ2h0OwogICAgICAgICBjYXNlIENROjpDb21wYXJpc29uT3BlcmF0b3I6Okdy
ZWF0ZXJUaGFuOgpAQCAtMTc4LDIxICsxNjYsNTUgQEAgYXV0byBDb250YWluZXJRdWVyeUV2YWx1
YXRvcjo6ZXZhbHVhdGVTaXplRmVhdHVyZShjb25zdCBDUTo6U2l6ZUZlYXR1cmUmIHNpemVGZWEK
ICAgICAgICAgICAgIHJldHVybiBsZWZ0ID49IHJpZ2h0OwogICAgICAgICBjYXNlIENROjpDb21w
YXJpc29uT3BlcmF0b3I6OkVxdWFsOgogICAgICAgICAgICAgcmV0dXJuIGxlZnQgPT0gcmlnaHQ7
Ci0gICAgICAgIGNhc2UgQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6VHJ1ZToKLSAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgU2lkZSA6IHVpbnQ4X3QgeyBMZWZ0LCBSaWdo
dCB9OworICAgIGF1dG8gZXZhbHVhdGVTaXplQ29tcGFyaXNvbiA9IFsmXShMYXlvdXRVbml0IHNp
emUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbXBhcmlzb24+JiBjb21wYXJpc29uLCBTaWRl
IHNpZGUpIHsKKyAgICAgICAgaWYgKCFjb21wYXJpc29uKQorICAgICAgICAgICAgcmV0dXJuIEV2
YWx1YXRpb25SZXN1bHQ6OlRydWU7CisgICAgICAgIGF1dG8gZXhwcmVzc2lvblNpemUgPSBjb21w
dXRlU2l6ZShjb21wYXJpc29uLT52YWx1ZS5nZXQoKSwgY29udGFpbmVyLmNvbnZlcnNpb25EYXRh
KTsKKyAgICAgICAgaWYgKCFleHByZXNzaW9uU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBFdmFs
dWF0aW9uUmVzdWx0OjpVbmtub3duOworICAgICAgICBhdXRvIGxlZnQgPSBzaWRlID09IFNpZGU6
OkxlZnQgPyAqZXhwcmVzc2lvblNpemUgOiBzaXplOworICAgICAgICBhdXRvIHJpZ2h0ID0gc2lk
ZSA9PSBTaWRlOjpMZWZ0ID8gc2l6ZSA6ICpleHByZXNzaW9uU2l6ZTsKKworICAgICAgICByZXR1
cm4gdG9FdmFsdWF0aW9uUmVzdWx0KGNvbXBhcmUoY29tcGFyaXNvbi0+b3AsIGxlZnQsIHJpZ2h0
KSk7CisgICAgfTsKKwogICAgIGF1dG8gZXZhbHVhdGVTaXplID0gWyZdKExheW91dFVuaXQgc2l6
ZSkgewotICAgICAgICBpZiAoc2l6ZUZlYXR1cmUuY29tcGFyaXNvbk9wZXJhdG9yID09IENROjpD
b21wYXJpc29uT3BlcmF0b3I6OlRydWUpCisgICAgICAgIGlmICghc2l6ZUZlYXR1cmUubGVmdENv
bXBhcmlzb24gJiYgIXNpemVGZWF0dXJlLnJpZ2h0Q29tcGFyaXNvbikKICAgICAgICAgICAgIHJl
dHVybiB0b0V2YWx1YXRpb25SZXN1bHQoISFzaXplKTsKIAotICAgICAgICBhdXRvIGV4cHJlc3Np
b25TaXplID0gY29tcHV0ZVNpemUoc2l6ZUZlYXR1cmUudmFsdWUuZ2V0KCksIGNvbnRhaW5lci5j
b252ZXJzaW9uRGF0YSk7Ci0gICAgICAgIGlmICghZXhwcmVzc2lvblNpemUpCisgICAgICAgIGF1
dG8gbGVmdFJlc3VsdCA9IGV2YWx1YXRlU2l6ZUNvbXBhcmlzb24oc2l6ZSwgc2l6ZUZlYXR1cmUu
bGVmdENvbXBhcmlzb24sIFNpZGU6OkxlZnQpOworICAgICAgICBhdXRvIHJpZ2h0UmVzdWx0ID0g
ZXZhbHVhdGVTaXplQ29tcGFyaXNvbihzaXplLCBzaXplRmVhdHVyZS5yaWdodENvbXBhcmlzb24s
IFNpZGU6OlJpZ2h0KTsKKworICAgICAgICByZXR1cm4gbGVmdFJlc3VsdCAmIHJpZ2h0UmVzdWx0
OworICAgIH07CisKKyAgICBhdXRvIGV2YWx1YXRlQXNwZWN0UmF0aW9Db21wYXJpc29uID0gWyZd
KGRvdWJsZSBhc3BlY3RSYXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbXBhcmlzb24+
JiBjb21wYXJpc29uLCBTaWRlIHNpZGUpIHsKKyAgICAgICAgaWYgKCFjb21wYXJpc29uKQorICAg
ICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CisKKyAgICAgICAgaWYgKCFp
czxDU1NWYWx1ZUxpc3Q+KGNvbXBhcmlzb24tPnZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBF
dmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOworCisgICAgICAgIGF1dG8mIHJhdGlvTGlzdCA9IGRv
d25jYXN0PENTU1ZhbHVlTGlzdD4oKmNvbXBhcmlzb24tPnZhbHVlKTsKKyAgICAgICAgaWYgKHJh
dGlvTGlzdC5sZW5ndGgoKSAhPSAyKQogICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1
bHQ6OlVua25vd247CiAKLSAgICAgICAgcmV0dXJuIHRvRXZhbHVhdGlvblJlc3VsdChjb21wYXJl
KHNpemUsICpleHByZXNzaW9uU2l6ZSkpOworICAgICAgICBhdXRvIGZpcnN0ID0gZHluYW1pY0Rv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRpb0xpc3QuaXRlbSgwKSk7CisgICAgICAgIGF1
dG8gc2Vjb25kID0gZHluYW1pY0Rvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRpb0xpc3Qu
aXRlbSgxKSk7CisKKyAgICAgICAgaWYgKCFmaXJzdCB8fCAhc2Vjb25kIHx8ICFmaXJzdC0+aXNO
dW1iZXJPckludGVnZXIoKSB8fCAhc2Vjb25kLT5pc051bWJlck9ySW50ZWdlcigpKQorICAgICAg
ICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisKKyAgICAgICAgYXV0byBl
eHByZXNzaW9uUmF0aW8gPSBmaXJzdC0+ZG91YmxlVmFsdWUoKSAvIHNlY29uZC0+ZG91YmxlVmFs
dWUoKTsKKworICAgICAgICBhdXRvIGxlZnQgPSBzaWRlID09IFNpZGU6OkxlZnQgPyBleHByZXNz
aW9uUmF0aW8gOiBhc3BlY3RSYXRpb247CisgICAgICAgIGF1dG8gcmlnaHQgPSBzaWRlID09IFNp
ZGU6OkxlZnQgPyBhc3BlY3RSYXRpb24gOiBleHByZXNzaW9uUmF0aW87CisKKyAgICAgICAgcmV0
dXJuIHRvRXZhbHVhdGlvblJlc3VsdChjb21wYXJlKGNvbXBhcmlzb24tPm9wLCBsZWZ0LCByaWdo
dCkpOwogICAgIH07CiAKICAgICBlbnVtIGNsYXNzIEF4aXMgOiB1aW50OF90IHsgQm90aCwgQmxv
Y2ssIElubGluZSwgV2lkdGgsIEhlaWdodCB9OwpAQCAtMjQ1LDM1ICsyNjcsMjkgQEAgYXV0byBD
b250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVTaXplRmVhdHVyZShjb25zdCBDUTo6U2l6
ZUZlYXR1cmUmIHNpemVGZWEKICAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpV
bmtub3duOwogCiAgICAgICAgIGF1dG8gYm94UmF0aW8gPSBjb250YWluZXIucmVuZGVyZXIuY29u
dGVudFdpZHRoKCkudG9Eb3VibGUoKSAvIGNvbnRhaW5lci5yZW5kZXJlci5jb250ZW50SGVpZ2h0
KCkudG9Eb3VibGUoKTsKLSAgICAgICAgaWYgKHNpemVGZWF0dXJlLmNvbXBhcmlzb25PcGVyYXRv
ciA9PSBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpUcnVlKQorICAgICAgICAKKyAgICAgICAgaWYg
KCFzaXplRmVhdHVyZS5sZWZ0Q29tcGFyaXNvbiAmJiAhc2l6ZUZlYXR1cmUucmlnaHRDb21wYXJp
c29uKQogICAgICAgICAgICAgcmV0dXJuIHRvRXZhbHVhdGlvblJlc3VsdCghIWJveFJhdGlvKTsK
IAotICAgICAgICBpZiAoIWlzPENTU1ZhbHVlTGlzdD4oc2l6ZUZlYXR1cmUudmFsdWUpKQotICAg
ICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247Ci0KLSAgICAgICAgYXV0
byYgcmF0aW9MaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pigqc2l6ZUZlYXR1cmUudmFsdWUp
OwotICAgICAgICBpZiAocmF0aW9MaXN0Lmxlbmd0aCgpICE9IDIpCi0gICAgICAgICAgICByZXR1
cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKLQotICAgICAgICBhdXRvIGZpcnN0ID0gZHlu
YW1pY0Rvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRpb0xpc3QuaXRlbSgwKSk7Ci0gICAg
ICAgIGF1dG8gc2Vjb25kID0gZHluYW1pY0Rvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRp
b0xpc3QuaXRlbSgxKSk7Ci0KLSAgICAgICAgaWYgKCFmaXJzdCB8fCAhc2Vjb25kIHx8ICFmaXJz
dC0+aXNOdW1iZXJPckludGVnZXIoKSB8fCAhc2Vjb25kLT5pc051bWJlck9ySW50ZWdlcigpKQot
ICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247Ci0KLSAgICAgICAg
YXV0byBleHByZXNzaW9uUmF0aW8gPSBmaXJzdC0+ZG91YmxlVmFsdWUoKSAvIHNlY29uZC0+ZG91
YmxlVmFsdWUoKTsKKyAgICAgICAgYXV0byBsZWZ0UmVzdWx0ID0gZXZhbHVhdGVBc3BlY3RSYXRp
b0NvbXBhcmlzb24oYm94UmF0aW8sIHNpemVGZWF0dXJlLmxlZnRDb21wYXJpc29uLCBTaWRlOjpM
ZWZ0KTsKKyAgICAgICAgYXV0byByaWdodFJlc3VsdCA9IGV2YWx1YXRlQXNwZWN0UmF0aW9Db21w
YXJpc29uKGJveFJhdGlvLCBzaXplRmVhdHVyZS5yaWdodENvbXBhcmlzb24sIFNpZGU6OlJpZ2h0
KTsKIAotICAgICAgICByZXR1cm4gdG9FdmFsdWF0aW9uUmVzdWx0KGNvbXBhcmUoYm94UmF0aW8s
IGV4cHJlc3Npb25SYXRpbykpOworICAgICAgICByZXR1cm4gbGVmdFJlc3VsdCAmIHJpZ2h0UmVz
dWx0OwogICAgIH0KIAogICAgIGlmIChzaXplRmVhdHVyZS5uYW1lID09IENROjpGZWF0dXJlTmFt
ZXM6Om9yaWVudGF0aW9uKCkpIHsKICAgICAgICAgaWYgKCFjb250YWluZXJTdXBwb3J0c1JlcXVp
cmVkQXhpcyhBeGlzOjpCb3RoKSkKICAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0
OjpVbmtub3duOwogCi0gICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHNpemVGZWF0
dXJlLnZhbHVlKSB8fCBzaXplRmVhdHVyZS5jb21wYXJpc29uT3BlcmF0b3IgIT0gQ1E6OkNvbXBh
cmlzb25PcGVyYXRvcjo6RXF1YWwpCisgICAgICAgIGlmICghc2l6ZUZlYXR1cmUucmlnaHRDb21w
YXJpc29uKQorICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisK
KyAgICAgICAgYXV0byYgY29tcGFyaXNvbiA9ICpzaXplRmVhdHVyZS5yaWdodENvbXBhcmlzb247
CisKKyAgICAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oY29tcGFyaXNvbi52YWx1ZSkg
fHwgY29tcGFyaXNvbi5vcCAhPSBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpFcXVhbCkKICAgICAg
ICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOwogCi0gICAgICAgIGF1dG8m
IHZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpzaXplRmVhdHVyZS52YWx1ZSk7
CisgICAgICAgIGF1dG8mIHZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpzaXpl
RmVhdHVyZS5yaWdodENvbXBhcmlzb24tPnZhbHVlKTsKIAogICAgICAgICBib29sIGlzUG9ydHJh
aXQgPSBjb250YWluZXIucmVuZGVyZXIuY29udGVudEhlaWdodCgpID49IGNvbnRhaW5lci5yZW5k
ZXJlci5jb250ZW50V2lkdGgoKTsKICAgICAgICAgaWYgKHZhbHVlLnZhbHVlSUQoKSA9PSBDU1NW
YWx1ZVBvcnRyYWl0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZh
bHVhdG9yLmgKaW5kZXggY2ZlNDZhZDAzYzNhNjU1ODVjNWVlYWZmNWE2Zjc1MjA1YjM5N2U3YS4u
YTE2MGYwYzQ5N2YwY2E3OWMyZjJkODY4ZDk5NjgyMDJmMjcxY2ZmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCkBAIC0zMyw2ICszMyw4IEBA
IGNsYXNzIEVsZW1lbnQ7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKK2VudW0gY2xhc3MgRXZhbHVh
dGlvblJlc3VsdCA6IHVpbnQ4X3QgeyBGYWxzZSwgVHJ1ZSwgVW5rbm93biB9OworCiBjbGFzcyBD
b250YWluZXJRdWVyeUV2YWx1YXRvciB7CiBwdWJsaWM6CiAgICAgQ29udGFpbmVyUXVlcnlFdmFs
dWF0b3IoY29uc3QgVmVjdG9yPFJlZjxjb25zdCBFbGVtZW50Pj4mIGNvbnRhaW5lcnMpOwpAQCAt
NDEsNyArNDMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IFJlc29sdmVkQ29u
dGFpbmVyOwotICAgIGVudW0gY2xhc3MgRXZhbHVhdGlvblJlc3VsdCA6IHVpbnQ4X3QgeyBGYWxz
ZSwgVHJ1ZSwgVW5rbm93biB9OwogCiAgICAgRXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZVF1ZXJ5
KGNvbnN0IENROjpDb250YWluZXJRdWVyeSYsIGNvbnN0IFJlc29sdmVkQ29udGFpbmVyJikgY29u
c3Q7CiAgICAgRXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZVF1ZXJ5KGNvbnN0IENROjpTaXplUXVl
cnkmLCBjb25zdCBSZXNvbHZlZENvbnRhaW5lciYpIGNvbnN0OwpAQCAtNTEsNSArNTIsMzEgQEAg
cHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8UmVmPGNvbnN0IEVsZW1lbnQ+PiYgbV9jb250YWlu
ZXJzOwogfTsKIAoraW5saW5lIEV2YWx1YXRpb25SZXN1bHQgdG9FdmFsdWF0aW9uUmVzdWx0KGJv
b2wgYm9vbGVhbikKK3sKKyAgICByZXR1cm4gYm9vbGVhbiA/IEV2YWx1YXRpb25SZXN1bHQ6OlRy
dWUgOiBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZTsKK307CisKK2lubGluZSBFdmFsdWF0aW9uUmVz
dWx0IG9wZXJhdG9yJihFdmFsdWF0aW9uUmVzdWx0IGxlZnQsIEV2YWx1YXRpb25SZXN1bHQgcmln
aHQpCit7CisgICAgaWYgKGxlZnQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93biB8fCByaWdo
dCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duKQorICAgICAgICByZXR1cm4gRXZhbHVhdGlv
blJlc3VsdDo6VW5rbm93bjsKKyAgICBpZiAobGVmdCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVl
ICYmIHJpZ2h0ID09IEV2YWx1YXRpb25SZXN1bHQ6OlRydWUpCisgICAgICAgIHJldHVybiBFdmFs
dWF0aW9uUmVzdWx0OjpUcnVlOworICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZTsK
K30KKworaW5saW5lIEV2YWx1YXRpb25SZXN1bHQgb3BlcmF0b3IhKEV2YWx1YXRpb25SZXN1bHQg
cmVzdWx0KQoreworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBFdmFsdWF0aW9uUmVz
dWx0OjpUcnVlOgorICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7CisgICAg
Y2FzZSBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZToKKyAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25S
ZXN1bHQ6OlRydWU7CisgICAgY2FzZSBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOgorICAgICAg
ICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKKyAgICB9Cit9CisKIH0KIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGExZTI5MGQ3MTM1Mjk4ZmRhNzc0YmJlZTky
ODZjNjIwYzY5ZDFlZDkuLmYwMzkyZjg0OGY4YzQ4ODRmZWM0YmJiNjJmMmNjNmYwZGI1MDBiYzEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAy
LTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENv
bnRhaW5lciBRdWVyaWVzXSBTdXBwb3J0IGZ1bGwgcmFuZ2Ugbm90YXRpb24gaW4gc2l6ZSBxdWVy
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29u
dGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAyLTE2ICBKb29uZ2h1biBQYXJr
ICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBDaGFuZ2UgdGhlIGNhbm9uaWNh
bCB1bml0IGZvciB0aW1lIGNhdGVnb3J5IGZyb20gbXMgdG8gcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRleCA5
MTIxNDg1MWEyYjM4NDRiN2U1NTNkYzdiMjM4MDc0OGMwY2Y1MWZmLi4wZGZhMzA2YTUxZTQ3ZmE0
MDQ5MzI5Mjg2NzQ5YmEzNWU3ODRhYzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1
ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0yMSwxNiArMjEsMTYg
QEAgUEFTUyBzaXplKG5vdCAod2lkdGg6IDEwMHB4KSkKIFBBU1Mgc2l6ZSgod2lkdGg6IDEwMHB4
KSBhbmQgKGhlaWdodDogMTAwcHgpKQogUEFTUyBzaXplKCh3aWR0aDogNTBweCkgb3IgKGhlaWdo
dDogMTAwcHgpKQogUEFTUyBzaXplKHdpZHRoIDwgMTAwcHgpCi1GQUlMIHNpemUoMTAwcHggPCB3
aWR0aCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDAKLUZBSUwgc2l6ZSgxMDBw
eCA8IHdpZHRoIDwgMjAwcHgpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQ
QVNTIHNpemUoMTAwcHggPCB3aWR0aCkKK1BBU1Mgc2l6ZSgxMDBweCA8IHdpZHRoIDwgMjAwcHgp
CiBQQVNTIGZvbyh3aWR0aCkKIFBBU1Mgc2l6ZShhc2RmKQotRkFJTCBzaXplKHJlc29sdXRpb24g
PiAxMDBkcGkpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAwCi1GQUlMIHNpemUo
cmVzb2x1dGlvbjogMTUwZHBpKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMAor
UEFTUyBzaXplKHJlc29sdXRpb24gPiAxMDBkcGkpCitQQVNTIHNpemUocmVzb2x1dGlvbjogMTUw
ZHBpKQogUEFTUyBzaXplKGNvbG9yKQotRkFJTCBzaXplKG1pbi1jb2xvcjogMSkgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDAKLUZBSUwgc2l6ZShjb2xvci1pbmRleCA+PSAxKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCAoY29sb3ItaW5kZXggPj0g
MSkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDAKK1BBU1Mgc2l6ZShtaW4tY29s
b3I6IDEpCitQQVNTIHNpemUoY29sb3ItaW5kZXggPj0gMSkKK1BBU1MgKGNvbG9yLWluZGV4ID49
IDEpCiBQQVNTIHNpemUoZ3JpZCkKIFBBU1MgKGdyaWQpCiBQQVNTIHNjcmVlbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452369</attachid>
            <date>2022-02-17 08:12:42 -0800</date>
            <delta_ts>2022-02-17 11:39:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236771-20220217181240.patch</filename>
            <type>text/plain</type>
            <size>23239</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM0YzFjMjc2ZWY4MjZi
YTQ5NTA0NmE0YzlkY2JjMzIzODlhOTgwZi4uMGVjZGNkNjUzNWQ1MThiOWY4YzFkNzIwZGIzNjEx
YzU1ODg2MTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTAyLTE3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENvbnRhaW5lciBR
dWVyaWVzXSBTdXBwb3J0IGZ1bGwgcmFuZ2Ugbm90YXRpb24gaW4gc2l6ZSBxdWVyaWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUGFyc2UgYW5kIGV2YWx1
YXRlIG5vdGF0aW9ucyBsaWtlICgxMDBweCA8IHdpZHRoKSBhbmQgKDEwMHB4IDwgd2lkdGggPCAy
MDBweCkuCisKKyAgICAgICAgKiBjc3MvQ29udGFpbmVyUXVlcnkuaDoKKworICAgICAgICBUaGVy
ZSBhcmUgbm93IG9wdGlvbmFsIGxlZnQgYW5kIHJpZ2h0IGNvbXBhcmlzb25zLgorCisgICAgICAg
ICogY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
aW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lU2l6ZVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lU2l6ZUZlYXR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVQbGFpblNpemVGZWF0dXJlKToKKworICAg
ICAgICBFdmFsdWF0ZSB0aGUgcGxhaW4gKGZvbzogdmFsdWUpIG5vdGF0aW9uLgorCisgICAgICAg
IChXZWJDb3JlOjpDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVJhbmdlU2l6ZUZlYXR1cmUp
OgorCisgICAgICAgIEV2YWx1YXRlIHJhbmdlIG5vdGF0aW9uLgorCisgICAgICAgIChXZWJDb3Jl
OjpDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ29u
dGFpbmVyUXVlcnlQYXJzZXIuaDoKKyAgICAgICAgKiBzdHlsZS9Db250YWluZXJRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OmV2YWx1YXRlU2l6ZUZlYXR1cmUgY29uc3QpOgorCisgICAgICAgIEV2YWx1YXRlIGJvdGgg
Y29tcGFyaXNvbnMgaWYgdGhleSBleGlzdC4KKworICAgICAgICAqIHN0eWxlL0NvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6dG9FdmFsdWF0aW9uUmVz
dWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpvcGVyYXRvcnwpOgorCiAyMDIyLTAyLTE2
ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBDaGFu
Z2UgdGhlIGNhbm9uaWNhbCB1bml0IGZvciB0aW1lIGNhdGVnb3J5IGZyb20gbXMgdG8gcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKaW5kZXggYWRhYWRkMDY0ZjQ0MjI2ZGNiZTExMWQy
NDg1MjBiNzc2YzUxM2Q5NS4uN2Q5YTM1OTczY2M5ZWZjODIyNTlhNTNjYjg3MTViM2E1YzZhOTdl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKQEAgLTQyLDcgKzQyLDcgQEAgdXNp
bmcgU2l6ZVF1ZXJ5ID0gc3RkOjp2YXJpYW50PFNpemVDb25kaXRpb24sIFNpemVGZWF0dXJlPjsK
IHVzaW5nIENvbnRhaW5lclF1ZXJ5ID0gc3RkOjp2YXJpYW50PENvbnRhaW5lckNvbmRpdGlvbiwg
U2l6ZVF1ZXJ5LCBVbmtub3duUXVlcnk+OwogCiBlbnVtIGNsYXNzIExvZ2ljYWxPcGVyYXRvciA6
IHVpbnQ4X3QgeyBBbmQsIE9yLCBOb3QgfTsKLWVudW0gY2xhc3MgQ29tcGFyaXNvbk9wZXJhdG9y
IDogdWludDhfdCB7IExlc3NUaGFuLCBMZXNzVGhhbk9yRXF1YWwsIEVxdWFsLCBHcmVhdGVyVGhh
biwgR3JlYXRlclRoYW5PckVxdWFsLCBUcnVlIH07CitlbnVtIGNsYXNzIENvbXBhcmlzb25PcGVy
YXRvciA6IHVpbnQ4X3QgeyBMZXNzVGhhbiwgTGVzc1RoYW5PckVxdWFsLCBFcXVhbCwgR3JlYXRl
clRoYW4sIEdyZWF0ZXJUaGFuT3JFcXVhbCB9OwogCiBzdHJ1Y3QgQ29udGFpbmVyQ29uZGl0aW9u
IHsKICAgICBMb2dpY2FsT3BlcmF0b3IgbG9naWNhbE9wZXJhdG9yIHsgTG9naWNhbE9wZXJhdG9y
OjpBbmQgfTsKQEAgLTU0LDEwICs1NCwxNSBAQCBzdHJ1Y3QgU2l6ZUNvbmRpdGlvbiB7CiAgICAg
VmVjdG9yPFNpemVRdWVyeT4gcXVlcmllczsKIH07CiAKK3N0cnVjdCBDb21wYXJpc29uIHsKKyAg
ICBDb21wYXJpc29uT3BlcmF0b3Igb3AgeyBDb21wYXJpc29uT3BlcmF0b3I6OkVxdWFsIH07Cisg
ICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZTsKK307CisKIHN0cnVjdCBTaXplRmVhdHVyZSB7Ci0g
ICAgQ29tcGFyaXNvbk9wZXJhdG9yIGNvbXBhcmlzb25PcGVyYXRvciB7IENvbXBhcmlzb25PcGVy
YXRvcjo6RXF1YWwgfTsKICAgICBBdG9tU3RyaW5nIG5hbWU7Ci0gICAgUmVmUHRyPENTU1ZhbHVl
PiB2YWx1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBhcmlzb24+IGxlZnRDb21wYXJpc29uOwor
ICAgIHN0ZDo6b3B0aW9uYWw8Q29tcGFyaXNvbj4gcmlnaHRDb21wYXJpc29uOwogfTsKIAogbmFt
ZXNwYWNlIEZlYXR1cmVOYW1lcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5
UGFyc2VyLmNwcAppbmRleCAxNDczOGIzNTExZjc5MGQ5ZjgyZjAwMGZkZjA2ODQ3MTc1MDRlYzA3
Li42ZDNiNGVjZjY2NWFhMWExNjY5MjYzYzUyZDljNTljNjhmNTg2ODg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBz
dGQ6Om9wdGlvbmFsPENvbmRpdGlvblR5cGU+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1l
Q29uZGl0aW9uKENTU1BhcnNlclRvawogCiBzdGQ6Om9wdGlvbmFsPENROjpTaXplUXVlcnk+IENv
bnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lU2l6ZVF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogewotICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwg
cmFuZ2UucGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVOb3QpIHsKKyAgICBpZiAocmFuZ2UucGVlaygp
LnR5cGUoKSA9PSBMZWZ0UGFyZW50aGVzaXNUb2tlbiB8fCAocmFuZ2UucGVlaygpLnR5cGUoKSA9
PSBJZGVudFRva2VuICYmIHJhbmdlLnBlZWsoKS5pZCgpID09IENTU1ZhbHVlTm90KSkgewogICAg
ICAgICBhdXRvIHNpemVDb25kaXRpb24gPSBjb25zdW1lQ29uZGl0aW9uPENROjpTaXplQ29uZGl0
aW9uPihyYW5nZSk7CiAgICAgICAgIGlmICghc2l6ZUNvbmRpdGlvbikKICAgICAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xNDcsODIgKzE0NywxNDIgQEAgc3RkOjpvcHRpb25hbDxDUTo6U2l6ZVF1
ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVNpemVRdWVyeShDU1NQYXJzZXJUb2sK
ICAgICBpZiAoIXNpemVGZWF0dXJlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmFuZ2Uu
Y29uc3VtZVdoaXRlc3BhY2UoKTsKLSAgICBpZiAoIXJhbmdlLmF0RW5kKCkpCi0gICAgICAgIHJl
dHVybiB7IH07Ci0KICAgICByZXR1cm4geyAqc2l6ZUZlYXR1cmUgfTsKIH0KIAogc3RkOjpvcHRp
b25hbDxDUTo6U2l6ZUZlYXR1cmU+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lU2l6ZUZl
YXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7Ci0gICAgLy8gRklYTUU6IFN1cHBv
cnQgdmFsdWUtZmlyc3QgKDEwMHB4IDwgd2lkdGgpIGFuZCBmdWxsIHJhbmdlICgxMDBweCA8IHdp
ZHRoIDwgMjAwcHgpIG5vdGF0aW9ucy4KKyAgICBhdXRvIHJhbmdlQ29weSA9IHJhbmdlOworICAg
IGlmIChhdXRvIHNpemVGZWF0dXJlID0gY29uc3VtZVBsYWluU2l6ZUZlYXR1cmUocmFuZ2UpKQor
ICAgICAgICByZXR1cm4gc2l6ZUZlYXR1cmU7CisKKyAgICByYW5nZSA9IHJhbmdlQ29weTsKKyAg
ICByZXR1cm4gY29uc3VtZVJhbmdlU2l6ZUZlYXR1cmUocmFuZ2UpOworfQorCitzdGQ6Om9wdGlv
bmFsPENROjpTaXplRmVhdHVyZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVQbGFpblNp
emVGZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gY29uc3Vt
ZVBsYWluRmVhdHVyZU5hbWUgPSBbJl0oKSAtPiBzdGQ6OnBhaXI8QXRvbVN0cmluZywgQ1E6OkNv
bXBhcmlzb25PcGVyYXRvcj4geworICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBJ
ZGVudFRva2VuKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgYXV0byB0b2tlbiA9
IHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAgIGF1dG8gbmFtZSA9
IHRva2VuLnZhbHVlKCk7CisgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoIm1pbi0iKSkKKyAg
ICAgICAgICAgIHJldHVybiB7IG5hbWUuc3Vic3RyaW5nKDQpLnRvQXRvbVN0cmluZygpLCBDUTo6
Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbk9yRXF1YWwgfTsKKyAgICAgICAgaWYgKG5h
bWUuc3RhcnRzV2l0aCgibWF4LSIpKQorICAgICAgICAgICAgcmV0dXJuIHsgbmFtZS5zdWJzdHJp
bmcoNCkudG9BdG9tU3RyaW5nKCksIENROjpDb21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuT3JF
cXVhbCB9OworCisgICAgICAgIHJldHVybiB7IG5hbWUudG9BdG9tU3RyaW5nKCksIENROjpDb21w
YXJpc29uT3BlcmF0b3I6OkVxdWFsIH07CisgICAgfTsKKworICAgIGF1dG8gW2ZlYXR1cmVOYW1l
LCBvcF0gPSBjb25zdW1lUGxhaW5GZWF0dXJlTmFtZSgpOworICAgIGlmIChmZWF0dXJlTmFtZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByYW5nZS5jb25zdW1lV2hpdGVz
cGFjZSgpOwogCi0gICAgYXV0byBuYW1lVG9rZW4gPSByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hp
dGVzcGFjZSgpOwotICAgIEFTU0VSVChuYW1lVG9rZW4udHlwZSgpID09IElkZW50VG9rZW4pOwor
ICAgIGlmIChyYW5nZS5hdEVuZCgpKSB7CisgICAgICAgIGlmIChvcCAhPSBDUTo6Q29tcGFyaXNv
bk9wZXJhdG9yOjpFcXVhbCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBDUTo6U2l6ZUZlYXR1cmUgeyBmZWF0dXJlTmFtZSwgeyB9LCB7IH0gfTsKKyAgICB9CiAKLSAg
ICBhdXRvIG5hbWUgPSBuYW1lVG9rZW4udmFsdWUoKTsKKyAgICBpZiAocmFuZ2UucGVlaygpLnR5
cGUoKSAhPSBDb2xvblRva2VuKQorICAgICAgICByZXR1cm4geyB9OwogCisgICAgcmFuZ2UuY29u
c3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKICAgICBpZiAocmFuZ2UuYXRFbmQoKSkKLSAgICAg
ICAgcmV0dXJuIENROjpTaXplRmVhdHVyZSB7IENROjpDb21wYXJpc29uT3BlcmF0b3I6OlRydWUs
IG5hbWUudG9BdG9tU3RyaW5nKCksIHsgfSB9OworICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
YXV0byBjb25zdW1lT3BlcmF0b3IgPSBbJl0oKSAtPiBzdGQ6Om9wdGlvbmFsPENROjpDb21wYXJp
c29uT3BlcmF0b3I+IHsKLSAgICAgICAgYXV0byBvcFRva2VuID0gcmFuZ2UuY29uc3VtZSgpOwor
ICAgIGF1dG8gdmFsdWUgPSBjb25zdW1lVmFsdWUocmFuZ2UpOworICAgIAorICAgIHJldHVybiBD
UTo6U2l6ZUZlYXR1cmUgeyBmZWF0dXJlTmFtZSwgeyB9LCBDUTo6Q29tcGFyaXNvbiB7IG9wLCBX
VEZNb3ZlKHZhbHVlKSB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBD
b250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVJhbmdlU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byBjb25zdW1lRmVhdHVyZU5hbWUgPSBbJl0oKSAt
PiBBdG9tU3RyaW5nIHsKKyAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gSWRlbnRU
b2tlbikKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiByYW5nZS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLnZhbHVlKCkudG9BdG9tU3RyaW5nKCk7CisgICAgfTsK
KworICAgIGF1dG8gY29uc3VtZVJhbmdlT3BlcmF0b3IgPSBbJl0oKSAtPiBzdGQ6Om9wdGlvbmFs
PENROjpDb21wYXJpc29uT3BlcmF0b3I+IHsKICAgICAgICAgaWYgKHJhbmdlLmF0RW5kKCkpCiAg
ICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBpZiAob3BUb2tlbi50eXBlKCkgPT0gQ29s
b25Ub2tlbikgewotICAgICAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgibWluLSIpKSB7Ci0g
ICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKDQpOwotICAgICAgICAgICAgICAg
IHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJtYXgtIikpIHsKLSAg
ICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoNCk7CisgICAgICAgIGF1dG8gb3BU
b2tlbiA9IHJhbmdlLmNvbnN1bWUoKTsKKyAgICAgICAgaWYgKHJhbmdlLmF0RW5kKCkgfHwgb3BU
b2tlbi50eXBlKCkgIT0gRGVsaW1pdGVyVG9rZW4pCisgICAgICAgICAgICByZXR1cm4geyB9Owor
CisgICAgICAgIHN3aXRjaCAob3BUb2tlbi5kZWxpbWl0ZXIoKSkgeworICAgICAgICBjYXNlICc9
JzoKKyAgICAgICAgICAgIHJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgICAgICBy
ZXR1cm4gQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6RXF1YWw7CisgICAgICAgIGNhc2UgJzwnOgor
ICAgICAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRGVsaW1pdGVyVG9rZW4gJiYg
cmFuZ2UucGVlaygpLmRlbGltaXRlcigpID09ICc9JykgeworICAgICAgICAgICAgICAgIHJhbmdl
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIENR
OjpDb21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuT3JFcXVhbDsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpFcXVhbDsKLSAgICAgICAg
fQotICAgICAgICBpZiAob3BUb2tlbi50eXBlKCkgPT0gRGVsaW1pdGVyVG9rZW4pIHsKLSAgICAg
ICAgICAgIHN3aXRjaCAob3BUb2tlbi5kZWxpbWl0ZXIoKSkgewotICAgICAgICAgICAgY2FzZSAn
PSc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29uT3BlcmF0b3I6OkVxdWFs
OwotICAgICAgICAgICAgY2FzZSAnPCc6Ci0gICAgICAgICAgICAgICAgaWYgKHJhbmdlLnBlZWso
KS50eXBlKCkgPT0gRGVsaW1pdGVyVG9rZW4gJiYgcmFuZ2UucGVlaygpLmRlbGltaXRlcigpID09
ICc9JykgewotICAgICAgICAgICAgICAgICAgICByYW5nZS5jb25zdW1lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpMZXNzVGhhbk9yRXF1YWw7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNv
bk9wZXJhdG9yOjpMZXNzVGhhbjsKLSAgICAgICAgICAgIGNhc2UgJz4nOgotICAgICAgICAgICAg
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IERlbGltaXRlclRva2VuICYmIHJhbmdlLnBl
ZWsoKS5kZWxpbWl0ZXIoKSA9PSAnPScpIHsKLSAgICAgICAgICAgICAgICAgICAgcmFuZ2UuY29u
c3VtZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1E6OkNvbXBhcmlzb25PcGVyYXRv
cjo6R3JlYXRlclRoYW5PckVxdWFsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICByZXR1cm4gQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6R3JlYXRlclRoYW47Ci0gICAgICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgICAgICByYW5n
ZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29u
T3BlcmF0b3I6Okxlc3NUaGFuOworICAgICAgICBjYXNlICc+JzoKKyAgICAgICAgICAgIGlmIChy
YW5nZS5wZWVrKCkudHlwZSgpID09IERlbGltaXRlclRva2VuICYmIHJhbmdlLnBlZWsoKS5kZWxp
bWl0ZXIoKSA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICByYW5nZS5jb25zdW1lSW5jbHVkaW5n
V2hpdGVzcGFjZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBDUTo6Q29tcGFyaXNvbk9wZXJh
dG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByYW5n
ZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAgICAgICAgcmV0dXJuIENROjpDb21wYXJpc29u
T3BlcmF0b3I6OkdyZWF0ZXJUaGFuOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4geyB9OwogICAgIH07CiAKLSAgICBh
dXRvIG9wID0gY29uc3VtZU9wZXJhdG9yKCk7Ci0gICAgaWYgKCFvcCkKLSAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICBhdXRvIGNvbnN1bWVMZWZ0Q29tcGFyaXNvbiA9IFsmXSgpIC0+IHN0ZDo6b3B0
aW9uYWw8Q1E6OkNvbXBhcmlzb24+IHsKKyAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkg
PT0gSWRlbnRUb2tlbikKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGF1dG8gdmFs
dWUgPSBjb25zdW1lVmFsdWUocmFuZ2UpOworICAgICAgICBhdXRvIG9wID0gY29uc3VtZVJhbmdl
T3BlcmF0b3IoKTsKKyAgICAgICAgaWYgKCFvcCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAK
LSAgICByYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAgICByZXR1cm4gQ1E6OkNvbXBh
cmlzb24geyAqb3AsIFdURk1vdmUodmFsdWUpIH07CisgICAgfTsKIAotICAgIGF1dG8gZmVhdHVy
ZU5hbWUgPSBuYW1lLnRvQXRvbVN0cmluZygpOworICAgIGF1dG8gY29uc3VtZVJpZ2h0Q29tcGFy
aXNvbiA9IFsmXSgpIC0+IHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbXBhcmlzb24+IHsKKyAgICAgICAg
YXV0byBvcCA9IGNvbnN1bWVSYW5nZU9wZXJhdG9yKCk7CisgICAgICAgIGlmICghb3ApCisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICBhdXRvIHZhbHVlID0gY29uc3VtZVZhbHVlKHJh
bmdlKTsKIAotICAgIGF1dG8gY29uc3VtZVZhbHVlID0gWyZdKCkgLT4gUmVmUHRyPENTU1ZhbHVl
PiB7Ci0gICAgICAgIGlmIChmZWF0dXJlTmFtZSA9PSBDUTo6RmVhdHVyZU5hbWVzOjpvcmllbnRh
dGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29u
c3VtZUlkZW50KHJhbmdlKTsKLSAgICAgICAgaWYgKGZlYXR1cmVOYW1lID09IENROjpGZWF0dXJl
TmFtZXM6OmFzcGVjdFJhdGlvKCkpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpjb25zdW1lQXNwZWN0UmF0aW9WYWx1ZShyYW5nZSk7Ci0gICAgICAgIHJldHVy
biBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGgocmFuZ2UsIG1fY29udGV4
dC5tb2RlLCBWYWx1ZVJhbmdlOjpBbGwpOworICAgICAgICByZXR1cm4gQ1E6OkNvbXBhcmlzb24g
eyAqb3AsIFdURk1vdmUodmFsdWUpIH07CiAgICAgfTsKIAotICAgIGF1dG8gdmFsdWUgPSBjb25z
dW1lVmFsdWUoKTsKKyAgICBhdXRvIGxlZnRDb21wYXJpc29uID0gY29uc3VtZUxlZnRDb21wYXJp
c29uKCk7CisKKyAgICBhdXRvIGZlYXR1cmVOYW1lID0gY29uc3VtZUZlYXR1cmVOYW1lKCk7Cisg
ICAgaWYgKGZlYXR1cmVOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8gcmlnaHRDb21wYXJpc29uID0gY29uc3VtZVJpZ2h0Q29tcGFyaXNvbigpOwogCi0gICAg
cmV0dXJuIENROjpTaXplRmVhdHVyZSB7ICpvcCwgV1RGTW92ZShmZWF0dXJlTmFtZSksIFdURk1v
dmUodmFsdWUpIH07CisgICAgaWYgKCFsZWZ0Q29tcGFyaXNvbiAmJiAhcmlnaHRDb21wYXJpc29u
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIENROjpTaXplRmVhdHVyZSB7IFdU
Rk1vdmUoZmVhdHVyZU5hbWUpLCBXVEZNb3ZlKGxlZnRDb21wYXJpc29uKSwgV1RGTW92ZShyaWdo
dENvbXBhcmlzb24pIH07Cit9CisKK1JlZlB0cjxDU1NWYWx1ZT4gQ29udGFpbmVyUXVlcnlQYXJz
ZXI6OmNvbnN1bWVWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBpZiAo
cmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGF1dG8gdmFs
dWUgPSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJZGVudChyYW5nZSkpCisgICAg
ICAgIHJldHVybiB2YWx1ZTsKKyAgICBpZiAoYXV0byB2YWx1ZSA9IENTU1Byb3BlcnR5UGFyc2Vy
SGVscGVyczo6Y29uc3VtZUxlbmd0aChyYW5nZSwgbV9jb250ZXh0Lm1vZGUsIFZhbHVlUmFuZ2U6
OkFsbCkpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBpZiAoYXV0byB2YWx1ZSA9IENTU1By
b3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUFzcGVjdFJhdGlvVmFsdWUocmFuZ2UpKQorICAg
ICAgICByZXR1cm4gdmFsdWU7CisgICAgcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2Uo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFp
bmVyUXVlcnlQYXJzZXIuaAppbmRleCA1MmVkNGJhZDgxMGJmMjk5NTZmOGFiZjQ4YmQ0M2NkZWI0
YTY5ZDM0Li5hZGQzZGEzZjQ0NTc5NWM0ZWI4ODk5YTY3ZDVlNjJmNzZkZjEzNmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaApAQCAtNDEsNiArNDEsOSBAQCBw
cml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVRdWVyeT4gY29uc3VtZVNpemVRdWVy
eShDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9u
VHlwZT4gc3RkOjpvcHRpb25hbDxDb25kaXRpb25UeXBlPiBjb25zdW1lQ29uZGl0aW9uKENTU1Bh
cnNlclRva2VuUmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpTaXplRmVhdHVyZT4gY29u
c3VtZVNpemVGZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PENROjpTaXplRmVhdHVyZT4gY29uc3VtZVBsYWluU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBjb25zdW1lUmFuZ2VT
aXplRmVhdHVyZShDU1NQYXJzZXJUb2tlblJhbmdlJik7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBj
b25zdW1lVmFsdWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiAgICAgQ29udGFpbmVyUXVlcnlQ
YXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWlu
ZXJRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVy
eUV2YWx1YXRvci5jcHAKaW5kZXggNmUxNDEyMTQ5OWI1MjQ2OGMwOWJmZmE1OTE5NzY3NGIwMWJm
MDUwNC4uMzY3ZTExMmQ4YTZhZTNhNzkwM2Q4ODJhZDNlNmRkZjVhMmRjMzVhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNzYs
NyArNzYsNyBAQCBib29sIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBG
aWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0ZXJlZENvbgogCiAgICAgYXV0byBjb250YWluZXIg
PSByZXNvbHZlQ29udGFpbmVyKCk7CiAgICAgaWYgKCFjb250YWluZXIpCi0gICAgICAgIHJldHVy
biB7IH07CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBldmFsdWF0ZVF1ZXJ5
KGZpbHRlcmVkQ29udGFpbmVyUXVlcnkucXVlcnksICpjb250YWluZXIpID09IEV2YWx1YXRpb25S
ZXN1bHQ6OlRydWU7CiB9CkBAIC0xMDgsMTYgKzEwOCw4IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlF
dmFsdWF0b3I6OmV2YWx1YXRlQ29uZGl0aW9uKGNvbnN0IENvbmRpdGlvblR5cGUmIGNvbmRpdGlv
biwKICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CiAKICAgICBzd2l0
Y2ggKGNvbmRpdGlvbi5sb2dpY2FsT3BlcmF0b3IpIHsKLSAgICBjYXNlIENROjpMb2dpY2FsT3Bl
cmF0b3I6Ok5vdDogewotICAgICAgICBzd2l0Y2ggKGV2YWx1YXRlUXVlcnkoY29uZGl0aW9uLnF1
ZXJpZXMuZmlyc3QoKSwgY29udGFpbmVyKSkgewotICAgICAgICBjYXNlIEV2YWx1YXRpb25SZXN1
bHQ6OlRydWU6Ci0gICAgICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7Ci0g
ICAgICAgIGNhc2UgRXZhbHVhdGlvblJlc3VsdDo6RmFsc2U6Ci0gICAgICAgICAgICByZXR1cm4g
RXZhbHVhdGlvblJlc3VsdDo6VHJ1ZTsKLSAgICAgICAgY2FzZSBFdmFsdWF0aW9uUmVzdWx0OjpV
bmtub3duOgotICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247Ci0g
ICAgICAgIH0KLSAgICB9CisgICAgY2FzZSBDUTo6TG9naWNhbE9wZXJhdG9yOjpOb3Q6CisgICAg
ICAgIHJldHVybiAhZXZhbHVhdGVRdWVyeShjb25kaXRpb24ucXVlcmllcy5maXJzdCgpLCBjb250
YWluZXIpOwogICAgIGNhc2UgQ1E6OkxvZ2ljYWxPcGVyYXRvcjo6QW5kOiB7CiAgICAgICAgIGF1
dG8gcmVzdWx0ID0gRXZhbHVhdGlvblJlc3VsdDo6VHJ1ZTsKICAgICAgICAgZm9yIChhdXRvIHF1
ZXJ5IDogY29uZGl0aW9uLnF1ZXJpZXMpIHsKQEAgLTE2MiwxMiArMTU0LDggQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZVNpemUoY29uc3QgQ1NTVmFsdWUqIHZhbHVl
LCBjb25zdCBDU1NUb0wKIAogYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVT
aXplRmVhdHVyZShjb25zdCBDUTo6U2l6ZUZlYXR1cmUmIHNpemVGZWF0dXJlLCBjb25zdCBSZXNv
bHZlZENvbnRhaW5lciYgY29udGFpbmVyKSBjb25zdCAtPiBFdmFsdWF0aW9uUmVzdWx0CiB7Ci0g
ICAgYXV0byB0b0V2YWx1YXRpb25SZXN1bHQgPSBbXShib29sIGJvb2xlYW4pIHsKLSAgICAgICAg
cmV0dXJuIGJvb2xlYW4gPyBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlIDogRXZhbHVhdGlvblJlc3Vs
dDo6RmFsc2U7Ci0gICAgfTsKLQotICAgIGF1dG8gY29tcGFyZSA9IFsmXShhdXRvIGxlZnQsIGF1
dG8gcmlnaHQpIHsKLSAgICAgICAgc3dpdGNoIChzaXplRmVhdHVyZS5jb21wYXJpc29uT3BlcmF0
b3IpIHsKKyAgICBhdXRvIGNvbXBhcmUgPSBbXShDUTo6Q29tcGFyaXNvbk9wZXJhdG9yIG9wLCBh
dXRvIGxlZnQsIGF1dG8gcmlnaHQpIHsKKyAgICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICBj
YXNlIENROjpDb21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuOgogICAgICAgICAgICAgcmV0dXJu
IGxlZnQgPCByaWdodDsKICAgICAgICAgY2FzZSBDUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVh
dGVyVGhhbjoKQEAgLTE3OCwyMSArMTY2LDU1IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OmV2YWx1YXRlU2l6ZUZlYXR1cmUoY29uc3QgQ1E6OlNpemVGZWF0dXJlJiBzaXplRmVhCiAg
ICAgICAgICAgICByZXR1cm4gbGVmdCA+PSByaWdodDsKICAgICAgICAgY2FzZSBDUTo6Q29tcGFy
aXNvbk9wZXJhdG9yOjpFcXVhbDoKICAgICAgICAgICAgIHJldHVybiBsZWZ0ID09IHJpZ2h0Owot
ICAgICAgICBjYXNlIENROjpDb21wYXJpc29uT3BlcmF0b3I6OlRydWU6Ci0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgIH07CiAKKyAgICBlbnVtIGNsYXNzIFNpZGUgOiB1aW50OF90IHsgTGVmdCwgUmlnaHQg
fTsKKyAgICBhdXRvIGV2YWx1YXRlU2l6ZUNvbXBhcmlzb24gPSBbJl0oTGF5b3V0VW5pdCBzaXpl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPENROjpDb21wYXJpc29uPiYgY29tcGFyaXNvbiwgU2lkZSBz
aWRlKSB7CisgICAgICAgIGlmICghY29tcGFyaXNvbikKKyAgICAgICAgICAgIHJldHVybiBFdmFs
dWF0aW9uUmVzdWx0OjpUcnVlOworICAgICAgICBhdXRvIGV4cHJlc3Npb25TaXplID0gY29tcHV0
ZVNpemUoY29tcGFyaXNvbi0+dmFsdWUuZ2V0KCksIGNvbnRhaW5lci5jb252ZXJzaW9uRGF0YSk7
CisgICAgICAgIGlmICghZXhwcmVzc2lvblNpemUpCisgICAgICAgICAgICByZXR1cm4gRXZhbHVh
dGlvblJlc3VsdDo6VW5rbm93bjsKKyAgICAgICAgYXV0byBsZWZ0ID0gc2lkZSA9PSBTaWRlOjpM
ZWZ0ID8gKmV4cHJlc3Npb25TaXplIDogc2l6ZTsKKyAgICAgICAgYXV0byByaWdodCA9IHNpZGUg
PT0gU2lkZTo6TGVmdCA/IHNpemUgOiAqZXhwcmVzc2lvblNpemU7CisKKyAgICAgICAgcmV0dXJu
IHRvRXZhbHVhdGlvblJlc3VsdChjb21wYXJlKGNvbXBhcmlzb24tPm9wLCBsZWZ0LCByaWdodCkp
OworICAgIH07CisKICAgICBhdXRvIGV2YWx1YXRlU2l6ZSA9IFsmXShMYXlvdXRVbml0IHNpemUp
IHsKLSAgICAgICAgaWYgKHNpemVGZWF0dXJlLmNvbXBhcmlzb25PcGVyYXRvciA9PSBDUTo6Q29t
cGFyaXNvbk9wZXJhdG9yOjpUcnVlKQorICAgICAgICBpZiAoIXNpemVGZWF0dXJlLmxlZnRDb21w
YXJpc29uICYmICFzaXplRmVhdHVyZS5yaWdodENvbXBhcmlzb24pCiAgICAgICAgICAgICByZXR1
cm4gdG9FdmFsdWF0aW9uUmVzdWx0KCEhc2l6ZSk7CiAKLSAgICAgICAgYXV0byBleHByZXNzaW9u
U2l6ZSA9IGNvbXB1dGVTaXplKHNpemVGZWF0dXJlLnZhbHVlLmdldCgpLCBjb250YWluZXIuY29u
dmVyc2lvbkRhdGEpOwotICAgICAgICBpZiAoIWV4cHJlc3Npb25TaXplKQorICAgICAgICBhdXRv
IGxlZnRSZXN1bHQgPSBldmFsdWF0ZVNpemVDb21wYXJpc29uKHNpemUsIHNpemVGZWF0dXJlLmxl
ZnRDb21wYXJpc29uLCBTaWRlOjpMZWZ0KTsKKyAgICAgICAgYXV0byByaWdodFJlc3VsdCA9IGV2
YWx1YXRlU2l6ZUNvbXBhcmlzb24oc2l6ZSwgc2l6ZUZlYXR1cmUucmlnaHRDb21wYXJpc29uLCBT
aWRlOjpSaWdodCk7CisKKyAgICAgICAgcmV0dXJuIGxlZnRSZXN1bHQgJiByaWdodFJlc3VsdDsK
KyAgICB9OworCisgICAgYXV0byBldmFsdWF0ZUFzcGVjdFJhdGlvQ29tcGFyaXNvbiA9IFsmXShk
b3VibGUgYXNwZWN0UmF0aW8sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbXBhcmlzb24+JiBj
b21wYXJpc29uLCBTaWRlIHNpZGUpIHsKKyAgICAgICAgaWYgKCFjb21wYXJpc29uKQorICAgICAg
ICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CisKKyAgICAgICAgaWYgKCFpczxD
U1NWYWx1ZUxpc3Q+KGNvbXBhcmlzb24tPnZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBFdmFs
dWF0aW9uUmVzdWx0OjpVbmtub3duOworCisgICAgICAgIGF1dG8mIHJhdGlvTGlzdCA9IGRvd25j
YXN0PENTU1ZhbHVlTGlzdD4oKmNvbXBhcmlzb24tPnZhbHVlKTsKKyAgICAgICAgaWYgKHJhdGlv
TGlzdC5sZW5ndGgoKSAhPSAyKQogICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6
OlVua25vd247CiAKLSAgICAgICAgcmV0dXJuIHRvRXZhbHVhdGlvblJlc3VsdChjb21wYXJlKHNp
emUsICpleHByZXNzaW9uU2l6ZSkpOworICAgICAgICBhdXRvIGZpcnN0ID0gZHluYW1pY0Rvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRpb0xpc3QuaXRlbSgwKSk7CisgICAgICAgIGF1dG8g
c2Vjb25kID0gZHluYW1pY0Rvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihyYXRpb0xpc3QuaXRl
bSgxKSk7CisKKyAgICAgICAgaWYgKCFmaXJzdCB8fCAhc2Vjb25kIHx8ICFmaXJzdC0+aXNOdW1i
ZXJPckludGVnZXIoKSB8fCAhc2Vjb25kLT5pc051bWJlck9ySW50ZWdlcigpKQorICAgICAgICAg
ICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisKKyAgICAgICAgYXV0byBleHBy
ZXNzaW9uUmF0aW8gPSBmaXJzdC0+ZG91YmxlVmFsdWUoKSAvIHNlY29uZC0+ZG91YmxlVmFsdWUo
KTsKKworICAgICAgICBhdXRvIGxlZnQgPSBzaWRlID09IFNpZGU6OkxlZnQgPyBleHByZXNzaW9u
UmF0aW8gOiBhc3BlY3RSYXRpbzsKKyAgICAgICAgYXV0byByaWdodCA9IHNpZGUgPT0gU2lkZTo6
TGVmdCA/IGFzcGVjdFJhdGlvIDogZXhwcmVzc2lvblJhdGlvOworCisgICAgICAgIHJldHVybiB0
b0V2YWx1YXRpb25SZXN1bHQoY29tcGFyZShjb21wYXJpc29uLT5vcCwgbGVmdCwgcmlnaHQpKTsK
ICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBBeGlzIDogdWludDhfdCB7IEJvdGgsIEJsb2NrLCBJ
bmxpbmUsIFdpZHRoLCBIZWlnaHQgfTsKQEAgLTI0NSwzNSArMjY3LDI5IEBAIGF1dG8gQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlU2l6ZUZlYXR1cmUoY29uc3QgQ1E6OlNpemVGZWF0
dXJlJiBzaXplRmVhCiAgICAgICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93
bjsKIAogICAgICAgICBhdXRvIGJveFJhdGlvID0gY29udGFpbmVyLnJlbmRlcmVyLmNvbnRlbnRX
aWR0aCgpLnRvRG91YmxlKCkgLyBjb250YWluZXIucmVuZGVyZXIuY29udGVudEhlaWdodCgpLnRv
RG91YmxlKCk7Ci0gICAgICAgIGlmIChzaXplRmVhdHVyZS5jb21wYXJpc29uT3BlcmF0b3IgPT0g
Q1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6VHJ1ZSkKKyAgICAgICAgCisgICAgICAgIGlmICghc2l6
ZUZlYXR1cmUubGVmdENvbXBhcmlzb24gJiYgIXNpemVGZWF0dXJlLnJpZ2h0Q29tcGFyaXNvbikK
ICAgICAgICAgICAgIHJldHVybiB0b0V2YWx1YXRpb25SZXN1bHQoISFib3hSYXRpbyk7CiAKLSAg
ICAgICAgaWYgKCFpczxDU1NWYWx1ZUxpc3Q+KHNpemVGZWF0dXJlLnZhbHVlKSkKLSAgICAgICAg
ICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOwotCi0gICAgICAgIGF1dG8mIHJh
dGlvTGlzdCA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oKnNpemVGZWF0dXJlLnZhbHVlKTsKLSAg
ICAgICAgaWYgKHJhdGlvTGlzdC5sZW5ndGgoKSAhPSAyKQotICAgICAgICAgICAgcmV0dXJuIEV2
YWx1YXRpb25SZXN1bHQ6OlVua25vd247Ci0KLSAgICAgICAgYXV0byBmaXJzdCA9IGR5bmFtaWNE
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4ocmF0aW9MaXN0Lml0ZW0oMCkpOwotICAgICAgICBh
dXRvIHNlY29uZCA9IGR5bmFtaWNEb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4ocmF0aW9MaXN0
Lml0ZW0oMSkpOwotCi0gICAgICAgIGlmICghZmlyc3QgfHwgIXNlY29uZCB8fCAhZmlyc3QtPmlz
TnVtYmVyT3JJbnRlZ2VyKCkgfHwgIXNlY29uZC0+aXNOdW1iZXJPckludGVnZXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOwotCi0gICAgICAgIGF1dG8g
ZXhwcmVzc2lvblJhdGlvID0gZmlyc3QtPmRvdWJsZVZhbHVlKCkgLyBzZWNvbmQtPmRvdWJsZVZh
bHVlKCk7CisgICAgICAgIGF1dG8gbGVmdFJlc3VsdCA9IGV2YWx1YXRlQXNwZWN0UmF0aW9Db21w
YXJpc29uKGJveFJhdGlvLCBzaXplRmVhdHVyZS5sZWZ0Q29tcGFyaXNvbiwgU2lkZTo6TGVmdCk7
CisgICAgICAgIGF1dG8gcmlnaHRSZXN1bHQgPSBldmFsdWF0ZUFzcGVjdFJhdGlvQ29tcGFyaXNv
bihib3hSYXRpbywgc2l6ZUZlYXR1cmUucmlnaHRDb21wYXJpc29uLCBTaWRlOjpSaWdodCk7CiAK
LSAgICAgICAgcmV0dXJuIHRvRXZhbHVhdGlvblJlc3VsdChjb21wYXJlKGJveFJhdGlvLCBleHBy
ZXNzaW9uUmF0aW8pKTsKKyAgICAgICAgcmV0dXJuIGxlZnRSZXN1bHQgJiByaWdodFJlc3VsdDsK
ICAgICB9CiAKICAgICBpZiAoc2l6ZUZlYXR1cmUubmFtZSA9PSBDUTo6RmVhdHVyZU5hbWVzOjpv
cmllbnRhdGlvbigpKSB7CiAgICAgICAgIGlmICghY29udGFpbmVyU3VwcG9ydHNSZXF1aXJlZEF4
aXMoQXhpczo6Qm90aCkpCiAgICAgICAgICAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5r
bm93bjsKIAotICAgICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPihzaXplRmVhdHVyZS52
YWx1ZSkgfHwgc2l6ZUZlYXR1cmUuY29tcGFyaXNvbk9wZXJhdG9yICE9IENROjpDb21wYXJpc29u
T3BlcmF0b3I6OkVxdWFsKQorICAgICAgICBpZiAoIXNpemVGZWF0dXJlLnJpZ2h0Q29tcGFyaXNv
bikKKyAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOworCisgICAg
ICAgIGF1dG8mIGNvbXBhcmlzb24gPSAqc2l6ZUZlYXR1cmUucmlnaHRDb21wYXJpc29uOworCisg
ICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KGNvbXBhcmlzb24udmFsdWUpIHx8IGNv
bXBhcmlzb24ub3AgIT0gQ1E6OkNvbXBhcmlzb25PcGVyYXRvcjo6RXF1YWwpCiAgICAgICAgICAg
ICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKIAotICAgICAgICBhdXRvJiB2YWx1
ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqc2l6ZUZlYXR1cmUudmFsdWUpOworICAg
ICAgICBhdXRvJiB2YWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqc2l6ZUZlYXR1
cmUucmlnaHRDb21wYXJpc29uLT52YWx1ZSk7CiAKICAgICAgICAgYm9vbCBpc1BvcnRyYWl0ID0g
Y29udGFpbmVyLnJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKSA+PSBjb250YWluZXIucmVuZGVyZXIu
Y29udGVudFdpZHRoKCk7CiAgICAgICAgIGlmICh2YWx1ZS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVQ
b3J0cmFpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5
RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRv
ci5oCmluZGV4IGNmZTQ2YWQwM2MzYTY1NTg1YzVlZWFmZjVhNmY3NTIwNWIzOTdlN2EuLmExNjBm
MGM0OTdmMGNhNzljMmYyZDg2OGQ5OTY4MjAyZjI3MWNmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaApAQCAtMzMsNiArMzMsOCBAQCBjbGFz
cyBFbGVtZW50OwogCiBuYW1lc3BhY2UgU3R5bGUgewogCitlbnVtIGNsYXNzIEV2YWx1YXRpb25S
ZXN1bHQgOiB1aW50OF90IHsgRmFsc2UsIFRydWUsIFVua25vd24gfTsKKwogY2xhc3MgQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3IgewogcHVibGljOgogICAgIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9y
KGNvbnN0IFZlY3RvcjxSZWY8Y29uc3QgRWxlbWVudD4+JiBjb250YWluZXJzKTsKQEAgLTQxLDcg
KzQzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0cnVjdCBSZXNvbHZlZENvbnRhaW5l
cjsKLSAgICBlbnVtIGNsYXNzIEV2YWx1YXRpb25SZXN1bHQgOiB1aW50OF90IHsgRmFsc2UsIFRy
dWUsIFVua25vd24gfTsKIAogICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVRdWVyeShjb25z
dCBDUTo6Q29udGFpbmVyUXVlcnkmLCBjb25zdCBSZXNvbHZlZENvbnRhaW5lciYpIGNvbnN0Owog
ICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVRdWVyeShjb25zdCBDUTo6U2l6ZVF1ZXJ5Jiwg
Y29uc3QgUmVzb2x2ZWRDb250YWluZXImKSBjb25zdDsKQEAgLTUxLDUgKzUyLDMxIEBAIHByaXZh
dGU6CiAgICAgY29uc3QgVmVjdG9yPFJlZjxjb25zdCBFbGVtZW50Pj4mIG1fY29udGFpbmVyczsK
IH07CiAKK2lubGluZSBFdmFsdWF0aW9uUmVzdWx0IHRvRXZhbHVhdGlvblJlc3VsdChib29sIGJv
b2xlYW4pCit7CisgICAgcmV0dXJuIGJvb2xlYW4gPyBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlIDog
RXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7Cit9OworCitpbmxpbmUgRXZhbHVhdGlvblJlc3VsdCBv
cGVyYXRvciYoRXZhbHVhdGlvblJlc3VsdCBsZWZ0LCBFdmFsdWF0aW9uUmVzdWx0IHJpZ2h0KQor
eworICAgIGlmIChsZWZ0ID09IEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd24gfHwgcmlnaHQgPT0g
RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bikKKyAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1
bHQ6OlVua25vd247CisgICAgaWYgKGxlZnQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VHJ1ZSAmJiBy
aWdodCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlKQorICAgICAgICByZXR1cm4gRXZhbHVhdGlv
blJlc3VsdDo6VHJ1ZTsKKyAgICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7Cit9CisK
K2lubGluZSBFdmFsdWF0aW9uUmVzdWx0IG9wZXJhdG9yIShFdmFsdWF0aW9uUmVzdWx0IHJlc3Vs
dCkKK3sKKyAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgIGNhc2UgRXZhbHVhdGlvblJlc3VsdDo6
VHJ1ZToKKyAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OkZhbHNlOworICAgIGNhc2Ug
RXZhbHVhdGlvblJlc3VsdDo6RmFsc2U6CisgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0
OjpUcnVlOworICAgIGNhc2UgRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjoKKyAgICAgICAgcmV0
dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisgICAgfQorfQorCiB9CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBhMWUyOTBkNzEzNTI5OGZkYTc3NGJiZWU5Mjg2YzYy
MGM2OWQxZWQ5Li5hYTU4NzU2NjQzZTYwMDUxYmUyOTM2YmNkYTYwOTFhOGM0YjgxZTFlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMi0xNyAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBDb250YWlu
ZXIgUXVlcmllc10gU3VwcG9ydCBmdWxsIHJhbmdlIG5vdGF0aW9uIGluIHNpemUgcXVlcmllcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzcxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXIt
cGFyc2luZy1leHBlY3RlZC50eHQ6CisKIDIwMjItMDItMTYgIEpvb25naHVuIFBhcmsgIDxqaDcx
OC5wYXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIENoYW5nZSB0aGUgY2Fub25pY2FsIHVuaXQg
Zm9yIHRpbWUgY2F0ZWdvcnkgZnJvbSBtcyB0byBzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVy
LXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVy
LXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0CmluZGV4IDkxMjE0ODUx
YTJiMzg0NGI3ZTU1M2RjN2IyMzgwNzQ4YzBjZjUxZmYuLjBkZmEzMDZhNTFlNDdmYTQwNDkzMjky
ODY3NDliYTM1ZTc4NGFjOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNv
bnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9h
dC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTIxLDE2ICsyMSwxNiBAQCBQQVNT
IHNpemUobm90ICh3aWR0aDogMTAwcHgpKQogUEFTUyBzaXplKCh3aWR0aDogMTAwcHgpIGFuZCAo
aGVpZ2h0OiAxMDBweCkpCiBQQVNTIHNpemUoKHdpZHRoOiA1MHB4KSBvciAoaGVpZ2h0OiAxMDBw
eCkpCiBQQVNTIHNpemUod2lkdGggPCAxMDBweCkKLUZBSUwgc2l6ZSgxMDBweCA8IHdpZHRoKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBzaXplKDEwMHB4IDwgd2lk
dGggPCAyMDBweCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDAKK1BBU1Mgc2l6
ZSgxMDBweCA8IHdpZHRoKQorUEFTUyBzaXplKDEwMHB4IDwgd2lkdGggPCAyMDBweCkKIFBBU1Mg
Zm9vKHdpZHRoKQogUEFTUyBzaXplKGFzZGYpCi1GQUlMIHNpemUocmVzb2x1dGlvbiA+IDEwMGRw
aSkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDAKLUZBSUwgc2l6ZShyZXNvbHV0
aW9uOiAxNTBkcGkpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIHNp
emUocmVzb2x1dGlvbiA+IDEwMGRwaSkKK1BBU1Mgc2l6ZShyZXNvbHV0aW9uOiAxNTBkcGkpCiBQ
QVNTIHNpemUoY29sb3IpCi1GQUlMIHNpemUobWluLWNvbG9yOiAxKSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBzaXplKGNvbG9yLWluZGV4ID49IDEpIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAwCi1GQUlMIChjb2xvci1pbmRleCA+PSAxKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMAorUEFTUyBzaXplKG1pbi1jb2xvcjogMSkK
K1BBU1Mgc2l6ZShjb2xvci1pbmRleCA+PSAxKQorUEFTUyAoY29sb3ItaW5kZXggPj0gMSkKIFBB
U1Mgc2l6ZShncmlkKQogUEFTUyAoZ3JpZCkKIFBBU1Mgc2NyZWVuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>