<?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>233723</bug_id>
          
          <creation_ts>2021-12-01 13:38:28 -0800</creation_ts>
          <short_desc>Remove StructureIDBlob</short_desc>
          <delta_ts>2021-12-07 08:53:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>233930</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>annulen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819391</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-01 13:38:28 -0800</bug_when>
    <thetext>Remove StructureIDBlob</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819392</commentid>
    <comment_count>1</comment_count>
      <attachid>445608</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-01 13:38:56 -0800</bug_when>
    <thetext>Created attachment 445608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819394</commentid>
    <comment_count>2</comment_count>
      <attachid>445609</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-01 13:41:53 -0800</bug_when>
    <thetext>Created attachment 445609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819401</commentid>
    <comment_count>3</comment_count>
      <attachid>445609</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-01 13:59:42 -0800</bug_when>
    <thetext>Comment on attachment 445609
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/Structure.h:861
&gt; +    // part of the object. And need to match the order of the equivalent properties in
&gt; +    // JSCell.
&gt; +    IndexingType m_indexingModeIncludingHistory;
&gt; +    JSType m_type;
&gt; +    TypeInfo::InlineTypeFlags m_inlineTypeFlags;
&gt; +    CellState m_defaultCellState { CellState::DefinitelyWhite };

I think we should rename them to explicitly state that they are information of JSCell allocated with this Structure.
Since Structure itself is a JSCell, it has Structure::m_type etc. in JSCell parent class. So using the same name here is confusing.
e.g. m_instanceType, m_instanceIndexingModeIncludingHistory etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819413</commentid>
    <comment_count>4</comment_count>
      <attachid>445609</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-01 14:21:30 -0800</bug_when>
    <thetext>Comment on attachment 445609
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        can be a single load platforms that allow (and don&apos;t penalize) misaligned loads.

/load platforms/load on platforms/

&gt;&gt; Source/JavaScriptCore/runtime/Structure.h:861
&gt;&gt; +    IndexingType m_indexingModeIncludingHistory;
&gt;&gt; +    JSType m_type;
&gt;&gt; +    TypeInfo::InlineTypeFlags m_inlineTypeFlags;
&gt;&gt; +    CellState m_defaultCellState { CellState::DefinitelyWhite };
&gt; 
&gt; I think we should rename them to explicitly state that they are information of JSCell allocated with this Structure.
&gt; Since Structure itself is a JSCell, it has Structure::m_type etc. in JSCell parent class. So using the same name here is confusing.
&gt; e.g. m_instanceType, m_instanceIndexingModeIncludingHistory etc.

I suggest adding static_asserts to guarantee that the order of these fields match those in JSCell to ensure that anyone messing this up will not go unnoticed.  Alternatively, define a JSCellHeader macro / struct and use that both here and in JSCell to ensure that we never mess up.  That would be a much stronger guarantee than the comment above.  I think the static_asserts would probably be least intrusive for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819414</commentid>
    <comment_count>5</comment_count>
      <attachid>445609</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-01 14:24:36 -0800</bug_when>
    <thetext>Comment on attachment 445609
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/Structure.h:861
&gt;&gt;&gt; +    CellState m_defaultCellState { CellState::DefinitelyWhite };
&gt;&gt; 
&gt;&gt; I think we should rename them to explicitly state that they are information of JSCell allocated with this Structure.
&gt;&gt; Since Structure itself is a JSCell, it has Structure::m_type etc. in JSCell parent class. So using the same name here is confusing.
&gt;&gt; e.g. m_instanceType, m_instanceIndexingModeIncludingHistory etc.
&gt; 
&gt; I suggest adding static_asserts to guarantee that the order of these fields match those in JSCell to ensure that anyone messing this up will not go unnoticed.  Alternatively, define a JSCellHeader macro / struct and use that both here and in JSCell to ensure that we never mess up.  That would be a much stronger guarantee than the comment above.  I think the static_asserts would probably be least intrusive for now.

In response to Yusuke&apos;s comment, one alternative id to to put these in an embedded struct here e.g.

    struct {
        IndexingType m_indexingModeIncludingHistory;
        JSType m_type;
        TypeInfo::InlineTypeFlags m_inlineTypeFlags;
        CellState m_defaultCellState { CellState::DefinitelyWhite };
    } m_cellHeader;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819767</commentid>
    <comment_count>6</comment_count>
      <attachid>445609</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-02 10:34:34 -0800</bug_when>
    <thetext>Comment on attachment 445609
Patch

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

Nice

&gt; Source/JavaScriptCore/runtime/Structure.h:168
&gt; +    int32_t objectInitializationBlob() const { return *reinterpret_cast_ptr&lt;const uint32_t*&gt;(&amp;m_indexingModeIncludingHistory); }

nit: bitwise_cast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820178</commentid>
    <comment_count>7</comment_count>
      <attachid>445609</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-03 09:36:16 -0800</bug_when>
    <thetext>Comment on attachment 445609
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Structure.h:168
&gt;&gt; +    int32_t objectInitializationBlob() const { return *reinterpret_cast_ptr&lt;const uint32_t*&gt;(&amp;m_indexingModeIncludingHistory); }
&gt; 
&gt; nit: bitwise_cast

Why bitwise_cast? It&apos;s casting a pointer to a different pointer, I usually only use bitwise_cast for integral-&gt;integral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820180</commentid>
    <comment_count>8</comment_count>
      <attachid>445867</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-03 09:36:51 -0800</bug_when>
    <thetext>Created attachment 445867
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820209</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-03 10:30:17 -0800</bug_when>
    <thetext>Committed r286502 (244841@main): &lt;https://commits.webkit.org/244841@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445867.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820210</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-03 10:31:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/86024479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821054</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-12-07 08:53:58 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 233930</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445608</attachid>
            <date>2021-12-01 13:38:56 -0800</date>
            <delta_ts>2021-12-01 13:41:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233723-20211201163855.patch</filename>
            <type>text/plain</type>
            <size>28822</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTk1MTM1NTkwNmY1MzM5Mjg5ZDA4OTYxOTllMzJkNzdlY2M3NmVlLi5lNGZmYjQ5MmE2NWJhM2E4
ODJlYjE4NWJiNDAyMDY4NzZlNWVmNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMS0xMi0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgU3RydWN0dXJlSURCbG9iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRTdG9yZVN0cnVjdHVyZVdpdGhUeXBlSW5m
byk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX3B1dF90b19zY29wZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6YWRkTmV3UHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjpyZW1vdmVOZXdQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6Om5vblByb3BlcnR5VHJhbnNpdGlvblNsb3cpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
OnNldEJyYW5kVHJhbnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjppZCBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6b2JqZWN0SW5pdGlhbGl6YXRpb25CbG9iIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjppZEJsb2IgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmlzUHJveHkgY29u
c3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnR5cGVJbmZvIGNvbnN0KToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlOjppbmRleGluZ1R5cGUgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmluZGV4aW5nTW9kZSBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZmVu
Y2VkSW5kZXhpbmdNb2RlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppbmRleGluZ01vZGVJ
bmNsdWRpbmdIaXN0b3J5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppbmRleGlu
Z01vZGVJbmNsdWRpbmdIaXN0b3J5T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVJ
REJsb2IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpoYXNJbmRleGluZ0hlYWRlciBjb25zdCk6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjp2ZXJpZnlDZWxsU2l6ZSk6CisKIDIwMjEtMTItMDEgIFhhbiBMb3BleiAgPHhhbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtKU0NdIEZpeCBwb3RlbnRpYWwgYnVpbGQgYnJlYWsgcmVsYXRl
ZCB0byBTdHJ1Y3R1cmVJRC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MDU1MDJkZDYyMmVmNmM1MzAzYzc4ZDFhZDVlYmI2Mzc2YTU2YWE3My4uODEwZjQ1NTcyNTUzNjA1
MzYyODE4OTYzNTdlYWQ0MDYyYjQ1M2I2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTE4Niw3ICsxMTg2LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL1N0cnVjdHVyZUNhY2hlLmgKICAgICBydW50aW1l
L1N0cnVjdHVyZUNoYWluLmgKICAgICBydW50aW1lL1N0cnVjdHVyZUlELmgKLSAgICBydW50aW1l
L1N0cnVjdHVyZUlEQmxvYi5oCiAgICAgcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKICAgICBy
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKICAgICBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRh
SW5saW5lcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwOWE2YWQ3Yzk0YjQw
OTIyMjgzZGFkZTc5NGQ2NzkzZDc0ZTk4NzkuLjQ5MDljNTIzNDZjODk3NzJjZDkzNzk2YTcyZGQw
ZTY3MzExZGE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTIsNyArODUy
LDYgQEAKIAkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBNEJC
N0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi87IH07CiAJ
CTJBODM2Mzg2MThEN0QwRUUwMDAwRUJDQyAvKiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTgzNjM4NDE4RDdE
MEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBODM2MzhBMThEN0QwRkUwMDAwRUJD
QyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQTgzNjM4ODE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0
aXZpdHlDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTJBQUFBMzEyMThCRDQ5RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBQUFBMzEwMThC
RDQ5RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQUFCQ0RFNzE4RUYyOTQyMDAwMDIwOTYgLyog
R0NMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQUFCQ0RFNjE4RUYyOTQyMDAwMDIwOTYgLyogR0NMb2dnaW5nLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkFBQ0U2M0QxOENBNUEwMzAwRUQw
MTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlD
YWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRDJFREZBMTk3OTlFMzgw
MDRENjQ3OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzYzMiw3ICszNjMxLDYgQEAKIAkJMkE4MzYzODQxOEQ3
RDBFRTAwMDBFQkNDIC8qIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQTgzNjM4NzE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZp
dHlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdWxs
R0NBY3Rpdml0eUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE4
MzYzODgxOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyQUFBQTMxMDE4QkQ0OUQxMDAzOTRDQzggLyogU3Ry
dWN0dXJlSURCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVy
ZUlEQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUFCQ0RFNjE4RUYyOTQy
MDAwMDIwOTYgLyogR0NMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdDTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUFDRTYzQTE4Q0E1
QTAzMDBFRDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdDQWN0aXZpdHlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJBQUNFNjNCMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2Fs
bGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NBY3Rpdml0eUNhbGxi
YWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDc2LDcgKzgwNzQsNiBAQAog
CQkJCTdFNEVFNzBFMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5jcHAgKi8sCiAJ
CQkJN0U0RUU3MDgwRUJCNzk2MzAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmggKi8sCiAJCQkJ
NTM3RkVFQzgyNzQyQkRBMzAwQzlFRkVFIC8qIFN0cnVjdHVyZUlELmggKi8sCi0JCQkJMkFBQUEz
MTAxOEJENDlEMTAwMzk0Q0M4IC8qIFN0cnVjdHVyZUlEQmxvYi5oICovLAogCQkJCTBGRDJDOTIz
MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8sCiAJCQkJQzJGMEYyRDAx
NkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCAqLywKIAkJCQlDMkZFMThB
MzE2QkFFQzQwMDBBRjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLywKQEAgLTEwMTYwLDYg
KzEwMTU3LDcgQEAKIAkJCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRDMkFCMTFDNjU0NEYyMDBBMThENzggLyogSGVhcFNu
YXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMxMUMzNjFDNzdDRUM1MDBFNkIxQjYgLyog
SGVhcFNuYXBzaG90QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkUyQ0M5MzAyNzU2QjJC
OTAwM0Y1QUI4IC8qIEhlYXBTdWJzcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFE
RTY3MzFENEQyM0JFMDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZF
MUJEMDI1MUU3MjA1MzgwMDEzNEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRzLmggaW4gSGVhZGVycyAqLywK
QEAgLTEwMjc2LDYgKzEwMjc0LDcgQEAKIAkJCQkwRkI0Njc4MTFGRERBNkY3MDAzRkNCMDkgLyog
SXNvQ2VsbFNldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkYxQkFFMjM4QUFFREIw
MDNBMUMyQiAvKiBJc29IZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQzhFRDQz
MjNBMURCQ0IwMDEzMTk1OCAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlGRTY1QjE1MTI3NDg2MDFGMDBEQjVCMTYgLyogSXNvSW5saW5lZEhlYXBDZWxsVHlw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzN0ZFRUQxMjc0MkJERTEwMEM5RUZFRSAv
KiBJc29NZW1vcnlBbGxvY2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzdGRUVDRTI3
NDJCREUxMDBDOUVGRUUgLyogSXNvTWVtb3J5QWxsb2NhdG9yQmFzZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRENFMTJEMUZBRkI0RTUwMDZGMzkwMSAvKiBJc29TdWJzcGFjZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMDQyNiw3ICsxMDQyNSw2IEBACiAJCQkJRTMzRjUwODExQjg0MjlB
NDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzNG
NTA3OTFCODQyMjU3MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTMzRjUwODcxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQ
cm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTY1QjE1MTI3NDg2
MDFGMDBEQjVCMTYgLyogSXNvSW5saW5lZEhlYXBDZWxsVHlwZUlubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzM0Y1MDc1MUI4NDIxQzAwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZVBy
b3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwM0ZBMUUxODhFMEZCMDAwMTEwRjE0IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0MTYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTEwODMyLDcgKzEwODMwLDYgQEAKIAkJCQk3OTg2OTQzQjFGOEMwQUNDMDA5MjMy
QUUgLyogU3RydWN0dXJlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEVFNzA5MEVCQjc5
NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM3RkVF
QzkyNzQyQkRBMzAwQzlFRkVFIC8qIFN0cnVjdHVyZUlELmggaW4gSGVhZGVycyAqLywKLQkJCQky
QUFBQTMxMjE4QkQ0OUQxMDAzOTRDQzggLyogU3RydWN0dXJlSURCbG9iLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzJGRTE4QTQxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJh
cmVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjBCQTkyRDE2QkIxQzE1MDBCM0FFQTIgLyog
U3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEwOTU1LDcgKzEw
OTUyLDYgQEAKIAkJCQlFMzM3Qjk2NzIyNDMyNEVBMDA5M0E4MjAgLyogV2FzbUNhcGFiaWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2QUM0QjcxRTk3N0M1RDAwMzUwMEUxIC8qIFdhc21D
b2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkQyQjc2MjJGMjc1MDIwMDExNzY1QyAv
KiBXYXNtQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTJDQzkzMDI3NTZC
MkI5MDAzRjVBQjggLyogSGVhcFN1YnNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFE
NDEyQjM0MUU3QjJFOUUwMDhBRjE1NyAvKiBXYXNtQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzU5M0M4OThCRTcxNEE2NEJFOTNBNkU3IC8qIFdhc21Db250ZXh0SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTM2Q0M5NDcyMDg2MzE0RjAwNTFGRkQ2IC8qIFdhc21DcmVhdGlvbk1v
ZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCAzMTVmOTBkNGNlYTIzOTk2ZGQwNzI4
YjZiNmJkY2I0ODRiYmIxZTYwLi5mZTJhYzVjZjJmMzMwZDBlYmYzOTZiMTViMTU1YTdlMjVkZGVk
NDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaApAQCAtMTQ5LDcgKzE0OSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfb3V0T2ZMaW5lVHlwZUZsYWdzLCBTdHJ1
Y3R1cmU6Om91dE9mTGluZVR5cGVGbGFnc09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJl
X3ByZXZpb3VzT3JSYXJlRGF0YSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQo
KSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBl
T2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6
c3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hl
ZEtleXMsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZXMoQ2Fj
aGVkUHJvcGVydHlOYW1lc0tpbmQ6OktleXMpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURh
dGFfY2FjaGVkR2V0T3duUHJvcGVydHlOYW1lcywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9m
Q2FjaGVkUHJvcGVydHlOYW1lcyhDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZDo6R2V0T3duUHJvcGVy
dHlOYW1lcykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0YV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDFkZDJhNDJiNjIzYzcyYzAyYWJkNzJmZjk3
Nzc0ZWQ3ZTM0OTQxMGUuLmM1ZTI1OWE4MTUyMThjNTI0YTEzOTQwYzUzNjY0MzViMGU3NGVhMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAg
LTE2ODAyLDcgKzE2ODAyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTFZhbHVlIGlkID0gbV9vdXQubG9hZDMy
KHN0cnVjdHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfc3RydWN0dXJlSUQpOworICAgICAgICBMVmFs
dWUgaWQgPSBtX291dC5iaXRBbmQobV9vdXQuY2FzdFRvSW50MzIoc3RydWN0dXJlKSwgbV9vdXQu
Y29uc3RJbnQzMihzdHJ1Y3R1cmVJRE1hc2spKTsKICAgICAgICAgbV9vdXQuc3RvcmUzMihpZCwg
b2JqZWN0LCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAKICAgICAgICAgTFZhbHVlIGJs
b2IgPSBtX291dC5sb2FkMzIoc3RydWN0dXJlLCBtX2hlYXBzLlN0cnVjdHVyZV9pbmRleGluZ01v
ZGVJbmNsdWRpbmdIaXN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCmluZGV4IDFlOWFhZGFiYjZhOWUxZmUwYTYwZjQxMjcwYjZkNDk1ZDJkMmE5ZjUu
Ljk4MzFlMTAwZDQ4ZmNlZWJlNWMyOGFlZDU3MjIyNGU3OGU5ZWM5ZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTYwMiwxNCArMTYwMiwxNCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVtaXRTdG9yZVN0cnVjdHVyZVdpdGhUeXBlSW5mbyhSZWdp
c3RlcklEIHN0cnVjdHVyZSwgUmVnaXN0ZXJJRCBkZXN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpCiAg
ICAgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdHJ1Y3R1cmUsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0
Y2gpOwotICAgICAgICBzdG9yZTY0KHNjcmF0Y2gsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRl
c3QsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSkpOwotI2Vsc2UKICAgICAgICAgLy8gU3Rv
cmUgYWxsIHRoZSBpbmZvIGZsYWdzIHVzaW5nIGEgc2luZ2xlIDMyLWJpdCB3aWRlIGxvYWQgYW5k
IHN0b3JlLgogICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RydWN0dXJl
LCBTdHJ1Y3R1cmU6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKSksIHNjcmF0
Y2gpOwogICAgICAgICBzdG9yZTMyKHNjcmF0Y2gsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRl
c3QsIEpTQ2VsbDo6aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSk7CiAKKyNpZiBDUFUoQURE
UkVTUzY0KQorICAgICAgICBhbmQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0cnVj
dHVyZUlETWFzayksIHN0cnVjdHVyZSwgc2NyYXRjaCk7CisgICAgICAgIHN0b3JlMzIoc2NyYXRj
aCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZGVzdCwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSk7CisjZWxzZQogICAgICAgICAvLyBTdG9yZSB0aGUgU3RydWN0dXJlSUQKICAgICAgICAg
c3RvcmVQdHIoc3RydWN0dXJlLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhkZXN0LCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBiNTAwZmJjYTI2YjVkZmQ2N2ExYjAw
OGVkNTc3OWQxZTI3MTQ1NGM5Li40MWExY2E4ODljODg5YjJiNDc4NDgxNjZkMThlZjA4YzExMzgx
YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcApAQCAtMjQ5Miw3ICsyNDkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3Bl
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgICAgICBsb2Fk
UHRyRnJvbU1ldGFkYXRhKGJ5dGVjb2RlLCBPcFB1dFRvU2NvcGU6Ok1ldGFkYXRhOjpvZmZzZXRP
ZlN0cnVjdHVyZSgpLCBzY3JhdGNoR1BSMSk7CiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyUGF5bG9hZChzY29wZSwgc2NvcGVHUFIpOwogICAgICAgICAgICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoVGVzdFB0cihaZXJvLCBzY3JhdGNoR1BSMSkpOwotICAgICAgICAgICAgbG9hZDMyKEFk
ZHJlc3Moc2NyYXRjaEdQUjEsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0
Y2hHUFIxKTsKKyAgICAgICAgICAgIGFuZDMyKFRydXN0ZWRJbW0zMihzdHJ1Y3R1cmVJRE1hc2sp
LCBzY3JhdGNoR1BSMSk7CiAgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVh
bCwgQWRkcmVzcyhzY29wZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRj
aEdQUjEpKTsKIAogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgdmFs
dWVKU1IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5k
ZXggYjYwZTNjYjBlM2JmNTYzODczMmY4NWMwZGNiMDdjMzk2ZDNmZDY4Yi4uMGEzMTI1MzNkYWYx
M2UzZDQxNGRlMjVhZThhYzYzYTExYmY3MTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xOTcsNyArMTk3LDkgQEAgaW5saW5lIHZvaWQgU3Ry
dWN0dXJlOjp2YWxpZGF0ZUZsYWdzKCkgeyB9CiAKIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvJiB0eXBlSW5mbywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIEluZGV4aW5n
VHlwZSBpbmRleGluZ1R5cGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5KQogICAgIDogSlNDZWxs
KHZtLCB2bS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2Jsb2IoU3RydWN0dXJl
SUQ6OmVuY29kZSh0aGlzKSwgaW5kZXhpbmdUeXBlLCB0eXBlSW5mbykKKyAgICAsIG1faW5kZXhp
bmdNb2RlSW5jbHVkaW5nSGlzdG9yeShpbmRleGluZ1R5cGUpCisgICAgLCBtX3R5cGUodHlwZUlu
Zm8udHlwZSgpKQorICAgICwgbV9pbmxpbmVUeXBlRmxhZ3ModHlwZUluZm8uaW5saW5lVHlwZUZs
YWdzKCkpCiAgICAgLCBtX291dE9mTGluZVR5cGVGbGFncyh0eXBlSW5mby5vdXRPZkxpbmVUeXBl
RmxhZ3MoKSkKICAgICAsIG1faW5saW5lQ2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCiAgICAgLCBt
X2JpdEZpZWxkKDApCkBAIC0yMzgsNiArMjQwLDggQEAgY29uc3QgQ2xhc3NJbmZvIFN0cnVjdHVy
ZTo6c19pbmZvID0geyAiU3RydWN0dXJlIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1IK
IAogU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKICAg
ICA6IEpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbCkKKyAgICAsIG1faW5kZXhpbmdNb2RlSW5jbHVk
aW5nSGlzdG9yeShOb0luZGV4aW5nU2hhcGUpCisgICAgLCBtX3R5cGUoU3RydWN0dXJlVHlwZSkK
ICAgICAsIG1faW5saW5lQ2FwYWNpdHkoMCkKICAgICAsIG1fYml0RmllbGQoMCkKICAgICAsIG1f
cHJvdG90eXBlKHZtLCB0aGlzLCBqc051bGwoKSkKQEAgLTI2NCw3ICsyNjgsNyBAQCBTdHJ1Y3R1
cmU6OlN0cnVjdHVyZShWTSYgdm0sIENyZWF0aW5nRWFybHlDZWxsVGFnKQogICAgIHNldE1heE9m
ZnNldCh2bSwgaW52YWxpZE9mZnNldCk7CiAgCiAgICAgVHlwZUluZm8gdHlwZUluZm8gPSBUeXBl
SW5mbyhTdHJ1Y3R1cmVUeXBlLCBTdHJ1Y3R1cmVGbGFncyk7Ci0gICAgbV9ibG9iID0gU3RydWN0
dXJlSURCbG9iKFN0cnVjdHVyZUlEOjplbmNvZGUodGhpcyksIDAsIHR5cGVJbmZvKTsKKyAgICBt
X2lubGluZVR5cGVGbGFncyA9IHR5cGVJbmZvLmlubGluZVR5cGVGbGFncygpOwogICAgIG1fb3V0
T2ZMaW5lVHlwZUZsYWdzID0gdHlwZUluZm8ub3V0T2ZMaW5lVHlwZUZsYWdzKCk7CiAKICAgICBB
U1NFUlQoaGFzUmVhZE9ubHlPckdldHRlclNldHRlclByb3BlcnRpZXNFeGNsdWRpbmdQcm90bygp
IHx8ICFtX2NsYXNzSW5mby0+aGFzU3RhdGljU2V0dGVyT3JSZWFkb25seVByb3BlcnRpZXMoKSk7
CkBAIC0yNzQsNiArMjc4LDEwIEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgQ3JlYXRp
bmdFYXJseUNlbGxUYWcpCiAKIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJl
KiBwcmV2aW91cywgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUqIGRl
ZmVycmVkKQogICAgIDogSlNDZWxsKHZtLCB2bS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCisg
ICAgLCBtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkocHJldmlvdXMtPm1faW5kZXhpbmdN
b2RlSW5jbHVkaW5nSGlzdG9yeSkKKyAgICAsIG1fdHlwZShwcmV2aW91cy0+bV90eXBlKQorICAg
ICwgbV9pbmxpbmVUeXBlRmxhZ3MocHJldmlvdXMtPm1faW5saW5lVHlwZUZsYWdzKQorICAgICwg
bV9vdXRPZkxpbmVUeXBlRmxhZ3MocHJldmlvdXMtPm1fb3V0T2ZMaW5lVHlwZUZsYWdzKQogICAg
ICwgbV9pbmxpbmVDYXBhY2l0eShwcmV2aW91cy0+bV9pbmxpbmVDYXBhY2l0eSkKICAgICAsIG1f
Yml0RmllbGQoMCkKICAgICAsIG1fcHJvdG90eXBlKHZtLCB0aGlzLCBwcmV2aW91cy0+bV9wcm90
b3R5cGUuZ2V0KCkpCkBAIC0zMDAsMTAgKzMwOCw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZN
JiB2bSwgU3RydWN0dXJlKiBwcmV2aW91cywgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0
CiAgICAgc2V0VHJhbnNpdGlvbk9mZnNldCh2bSwgaW52YWxpZE9mZnNldCk7CiAgICAgc2V0TWF4
T2Zmc2V0KHZtLCBpbnZhbGlkT2Zmc2V0KTsKICAKLSAgICBUeXBlSW5mbyB0eXBlSW5mbyA9IHBy
ZXZpb3VzLT50eXBlSW5mbygpOwotICAgIG1fYmxvYiA9IFN0cnVjdHVyZUlEQmxvYihTdHJ1Y3R1
cmVJRDo6ZW5jb2RlKHRoaXMpLCBwcmV2aW91cy0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9y
eSgpLCB0eXBlSW5mbyk7Ci0gICAgbV9vdXRPZkxpbmVUeXBlRmxhZ3MgPSB0eXBlSW5mby5vdXRP
ZkxpbmVUeXBlRmxhZ3MoKTsKLQogICAgIEFTU0VSVCghcHJldmlvdXMtPnR5cGVJbmZvKCkuc3Ry
dWN0dXJlSXNJbW1vcnRhbCgpKTsKICAgICBzZXRQcmV2aW91c0lEKHZtLCBwcmV2aW91cyk7CiAK
QEAgLTUyOSw3ICs1MzMsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkTmV3UHJvcGVydHlU
cmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBybwogICAgICAgICB0cmFu
c2l0aW9uLT5zZXRQcm90ZWN0UHJvcGVydHlUYWJsZVdoaWxlVHJhbnNpdGlvbmluZyh0cnVlKTsK
ICAgICB9CiAKLSAgICB0cmFuc2l0aW9uLT5tX2Jsb2Iuc2V0SW5kZXhpbmdNb2RlSW5jbHVkaW5n
SGlzdG9yeShzdHJ1Y3R1cmUtPmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSAmIH5Db3B5
T25Xcml0ZSk7CisgICAgdHJhbnNpdGlvbi0+bV9pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5
ID0gc3RydWN0dXJlLT5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiB+Q29weU9uV3Jp
dGU7CiAgICAgdHJhbnNpdGlvbi0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1lID0gcHJvcGVydHlO
YW1lLnVpZCgpOwogICAgIHRyYW5zaXRpb24tPnNldFRyYW5zaXRpb25Qcm9wZXJ0eUF0dHJpYnV0
ZXMoYXR0cmlidXRlcyk7CiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJhbnNp
dGlvbktpbmQ6OlByb3BlcnR5QWRkaXRpb24pOwpAQCAtNjI2LDcgKzYzMCw3IEBAIFN0cnVjdHVy
ZSogU3RydWN0dXJlOjpyZW1vdmVOZXdQcm9wZXJ0eVRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwKICAgICAgICAgdHJhbnNpdGlvbi0+c2V0UHJvdGVjdFByb3BlcnR5VGFi
bGVXaGlsZVRyYW5zaXRpb25pbmcodHJ1ZSk7CiAgICAgfQogCi0gICAgdHJhbnNpdGlvbi0+bV9i
bG9iLnNldEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnkoc3RydWN0dXJlLT5pbmRleGluZ01v
ZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiB+Q29weU9uV3JpdGUpOworICAgIHRyYW5zaXRpb24tPm1f
aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSA9IHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5j
bHVkaW5nSGlzdG9yeSgpICYgfkNvcHlPbldyaXRlOwogICAgIHRyYW5zaXRpb24tPm1fdHJhbnNp
dGlvblByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZS51aWQoKTsKICAgICB0cmFuc2l0aW9uLT5z
ZXRUcmFuc2l0aW9uS2luZChUcmFuc2l0aW9uS2luZDo6UHJvcGVydHlEZWxldGlvbik7CiAgICAg
dHJhbnNpdGlvbi0+c2V0UHJvcGVydHlUYWJsZSh2bSwgc3RydWN0dXJlLT50YWtlUHJvcGVydHlU
YWJsZU9yQ2xvbmVJZlBpbm5lZCh2bSkpOwpAQCAtNzIwLDcgKzcyNCw3IEBAIFN0cnVjdHVyZSog
U3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFByCiAgICAgICAgIHRyYW5zaXRpb24tPnNldFByb3RlY3RQcm9wZXJ0eVRhYmxl
V2hpbGVUcmFuc2l0aW9uaW5nKHRydWUpOwogICAgIH0KIAotICAgIHRyYW5zaXRpb24tPm1fYmxv
Yi5zZXRJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KHN0cnVjdHVyZS0+aW5kZXhpbmdNb2Rl
SW5jbHVkaW5nSGlzdG9yeSgpICYgfkNvcHlPbldyaXRlKTsKKyAgICB0cmFuc2l0aW9uLT5tX2lu
ZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkgPSBzdHJ1Y3R1cmUtPmluZGV4aW5nTW9kZUluY2x1
ZGluZ0hpc3RvcnkoKSAmIH5Db3B5T25Xcml0ZTsKICAgICB0cmFuc2l0aW9uLT5tX3RyYW5zaXRp
b25Qcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWUudWlkKCk7CiAgICAgdHJhbnNpdGlvbi0+c2V0
VHJhbnNpdGlvblByb3BlcnR5QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKICAgICB0cmFuc2l0aW9u
LT5zZXRUcmFuc2l0aW9uS2luZChUcmFuc2l0aW9uS2luZDo6UHJvcGVydHlBdHRyaWJ1dGVDaGFu
Z2UpOwpAQCAtODE4LDcgKzgyMiw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpub25Qcm9wZXJ0
eVRyYW5zaXRpb25TbG93KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRyCiAgICAgCiAg
ICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gY3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwogICAgIHRy
YW5zaXRpb24tPnNldFRyYW5zaXRpb25LaW5kKHRyYW5zaXRpb25LaW5kKTsKLSAgICB0cmFuc2l0
aW9uLT5tX2Jsb2Iuc2V0SW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShpbmRleGluZ01vZGVJ
bmNsdWRpbmdIaXN0b3J5KTsKKyAgICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nTW9kZUluY2x1ZGlu
Z0hpc3RvcnkgPSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OwogICAgIAogICAgIGlmIChw
cmV2ZW50c0V4dGVuc2lvbnModHJhbnNpdGlvbktpbmQpKQogICAgICAgICB0cmFuc2l0aW9uLT5z
ZXREaWRQcmV2ZW50RXh0ZW5zaW9ucyh0cnVlKTsKQEAgLTE1NDYsNyArMTU1MCw3IEBAIFN0cnVj
dHVyZSogU3RydWN0dXJlOjpzZXRCcmFuZFRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgU3ltYm9sKiBiCiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJh
bnNpdGlvbktpbmQ6OlNldEJyYW5kKTsKIAogICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90
eXBlQ2hhaW4uc2V0TWF5QmVOdWxsKHZtLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fY2FjaGVk
UHJvdG90eXBlQ2hhaW4uZ2V0KCkpOwotICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGlu
Z01vZGVJbmNsdWRpbmdIaXN0b3J5KHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlz
dG9yeSgpKTsKKyAgICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnkg
PSBzdHJ1Y3R1cmUtPmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKTsKICAgICB0cmFuc2l0
aW9uLT5tX3RyYW5zaXRpb25Qcm9wZXJ0eU5hbWUgPSAmYnJhbmQtPnVpZCgpOwogICAgIHRyYW5z
aXRpb24tPnNldFRyYW5zaXRpb25Qcm9wZXJ0eUF0dHJpYnV0ZXMoMCk7CiAgICAgdHJhbnNpdGlv
bi0+c2V0UHJvcGVydHlUYWJsZSh2bSwgc3RydWN0dXJlLT50YWtlUHJvcGVydHlUYWJsZU9yQ2xv
bmVJZlBpbm5lZCh2bSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aAppbmRleCA3MDQ1Nzk2NmUyYTQ4OTE3YzMyYTE2OWY2MGRkNTZiODVlZDk4OGQxLi4yNjZiZmZl
NDBlYTZlYWQ4YTViOGFjZDJlMjNmYzg4N2E4YmQwZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlByb3Bl
cnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJQ
dXRQcm9wZXJ0eVNsb3QuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVJREJsb2IuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVRyYW5zaXRpb25UYWJs
ZS5oIgogI2luY2x1ZGUgIlRpbnlCbG9vbUZpbHRlci5oIgpAQCAtMTY1LDE0ICsxNjQsMTMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHZhbGlkYXRlRmxhZ3MoKTsKIAogcHVibGljOgotICAgIFN0cnVj
dHVyZUlEIGlkKCkgY29uc3QgeyBBU1NFUlQobV9ibG9iLnN0cnVjdHVyZUlEKCkgPT0gU3RydWN0
dXJlSUQ6OmVuY29kZSh0aGlzKSk7IHJldHVybiBtX2Jsb2Iuc3RydWN0dXJlSUQoKTsgfQotICAg
IGludDMyX3Qgb2JqZWN0SW5pdGlhbGl6YXRpb25CbG9iKCkgY29uc3QgeyByZXR1cm4gbV9ibG9i
LmJsb2JFeGNsdWRpbmdTdHJ1Y3R1cmVJRCgpOyB9Ci0gICAgaW50NjRfdCBpZEJsb2IoKSBjb25z
dCB7IHJldHVybiBtX2Jsb2IuYmxvYigpOyB9CisgICAgU3RydWN0dXJlSUQgaWQoKSBjb25zdCB7
IHJldHVybiBTdHJ1Y3R1cmVJRDo6ZW5jb2RlKHRoaXMpOyB9CisgICAgaW50MzJfdCBvYmplY3RJ
bml0aWFsaXphdGlvbkJsb2IoKSBjb25zdCB7IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdF9wdHI8
Y29uc3QgdWludDMyX3QqPigmbV9pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KTsgfQorICAg
IGludDY0X3QgaWRCbG9iKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9i
amVjdEluaXRpYWxpemF0aW9uQmxvYigpKSA8PCAzMiB8IGlkKCkuYml0cygpOyB9CiAKICAgICBi
b29sIGlzUHJveHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgSlNUeXBlIHR5cGUgPSBtX2Jsb2Iu
dHlwZSgpOwotICAgICAgICByZXR1cm4gdHlwZSA9PSBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSB8
fCB0eXBlID09IFByb3h5T2JqZWN0VHlwZTsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBQdXJl
Rm9yd2FyZGluZ1Byb3h5VHlwZSB8fCBtX3R5cGUgPT0gUHJveHlPYmplY3RUeXBlOwogICAgIH0K
IAogICAgIHN0YXRpYyB2b2lkIGR1bXBTdGF0aXN0aWNzKCk7CkBAIC0yNjMsMjIgKzI2MSwyMiBA
QCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIC8vIFR5cGUgYWNjZXNzb3JzLgotICAgIFR5cGVJ
bmZvIHR5cGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9ibG9iLnR5cGVJbmZvKG1fb3V0T2ZMaW5l
VHlwZUZsYWdzKTsgfQorICAgIFR5cGVJbmZvIHR5cGVJbmZvKCkgY29uc3QgeyByZXR1cm4gVHlw
ZUluZm8obV90eXBlLCBtX2lubGluZVR5cGVGbGFncywgbV9vdXRPZkxpbmVUeXBlRmxhZ3MpOyB9
CiAgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVJbmZvKCkuaXNPYmplY3Qo
KTsgfQogcHJvdGVjdGVkOgogICAgIC8vIFlvdSBwcm9iYWJseSB3YW50IHR5cGVJbmZvKCkudHlw
ZSgpCiAgICAgSlNUeXBlIHR5cGUoKSB7IHJldHVybiBKU0NlbGw6OnR5cGUoKTsgfQogcHVibGlj
OgogCi0gICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxv
Yi5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiBBbGxXcml0YWJsZUFycmF5VHlwZXM7
IH0KLSAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdNb2RlKCkgY29uc3QgIHsgcmV0dXJuIG1fYmxv
Yi5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiBBbGxBcnJheVR5cGVzOyB9CisgICAg
SW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGluZGV4aW5nTW9kZUlu
Y2x1ZGluZ0hpc3RvcnkoKSAmIEFsbFdyaXRhYmxlQXJyYXlUeXBlczsgfQorICAgIEluZGV4aW5n
VHlwZSBpbmRleGluZ01vZGUoKSBjb25zdCAgeyByZXR1cm4gaW5kZXhpbmdNb2RlSW5jbHVkaW5n
SGlzdG9yeSgpICYgQWxsQXJyYXlUeXBlczsgfQogICAgIERlcGVuZGVuY3kgZmVuY2VkSW5kZXhp
bmdNb2RlKEluZGV4aW5nVHlwZSYgaW5kZXhpbmdUeXBlKQogICAgIHsKLSAgICAgICAgRGVwZW5k
ZW5jeSBkZXBlbmRlbmN5ID0gbV9ibG9iLmZlbmNlZEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rv
cnkoaW5kZXhpbmdUeXBlKTsKKyAgICAgICAgRGVwZW5kZW5jeSBkZXBlbmRlbmN5ID0gRGVwZW5k
ZW5jeTo6bG9hZEFuZEZlbmNlKCZtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnksIGluZGV4
aW5nVHlwZSk7CiAgICAgICAgIGluZGV4aW5nVHlwZSAmPSBBbGxBcnJheVR5cGVzOwogICAgICAg
ICByZXR1cm4gZGVwZW5kZW5jeTsKICAgICB9Ci0gICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9k
ZUluY2x1ZGluZ0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Jsb2IuaW5kZXhpbmdNb2RlSW5j
bHVkaW5nSGlzdG9yeSgpOyB9CisgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGlu
Z0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7
IH0KICAgICAgICAgCiAgICAgaW5saW5lIGJvb2wgbWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2Vz
KCkgY29uc3Q7CiAgICAgCkBAIC01NTcsMTEgKzU1NSw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0luZm87IH0KIAot
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgc3RydWN0dXJlSURPZmZzZXQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikgKyBTdHJ1Y3R1cmVJREJs
b2I6OnN0cnVjdHVyZUlET2Zmc2V0KCk7Ci0gICAgfQotCiAgICAgc3RhdGljIHB0cmRpZmZfdCBw
cm90b3R5cGVPZmZzZXQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihT
dHJ1Y3R1cmUsIG1fcHJvdG90eXBlKTsKQEAgLTU4NCw3ICs1NzcsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgcHRyZGlmZl90IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikg
KyBTdHJ1Y3R1cmVJREJsb2I6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKTsK
KyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1faW5kZXhpbmdNb2Rl
SW5jbHVkaW5nSGlzdG9yeSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3QgcHJv
cGVydHlUYWJsZVVuc2FmZU9mZnNldCgpCkBAIC04NjAsOCArODUzLDEyIEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1
dEJ5SWQgPSA1MTI7CiAKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIHByb3Blcmx5IGFsaWduZWQg
YXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgJ1N0cnVjdHVyZScKLSAgICAvLyBwYXJ0IG9mIHRoZSBv
YmplY3QuCi0gICAgU3RydWN0dXJlSURCbG9iIG1fYmxvYjsKKyAgICAvLyBwYXJ0IG9mIHRoZSBv
YmplY3QuIEFuZCBuZWVkIHRvIG1hdGNoIHRoZSBvcmRlciBvZiB0aGUgZXF1aXZhbGVudCBwcm9w
ZXJ0aWVzIGluCisgICAgLy8gSlNDZWxsLgorICAgIEluZGV4aW5nVHlwZSBtX2luZGV4aW5nTW9k
ZUluY2x1ZGluZ0hpc3Rvcnk7CisgICAgSlNUeXBlIG1fdHlwZTsKKyAgICBUeXBlSW5mbzo6SW5s
aW5lVHlwZUZsYWdzIG1faW5saW5lVHlwZUZsYWdzOworICAgIENlbGxTdGF0ZSBtX2RlZmF1bHRD
ZWxsU3RhdGUgeyBDZWxsU3RhdGU6OkRlZmluaXRlbHlXaGl0ZSB9OwogICAgIFR5cGVJbmZvOjpP
dXRPZkxpbmVUeXBlRmxhZ3MgbV9vdXRPZkxpbmVUeXBlRmxhZ3M7CiAKICAgICB1aW50OF90IG1f
aW5saW5lQ2FwYWNpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJREJsb2IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlEQmxvYi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGFjMTUyOTE4NTRm
NGM3OTcwODBlYjkxYzlhZGYzOWJiOGM3ZDViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZUlEQmxvYi5oCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDZWxsU3RhdGUuaCIKLSNpbmNsdWRlICJJbmRl
eGluZ1R5cGUuaCIKLSNpbmNsdWRlICJKU1R5cGVJbmZvLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJl
SUQuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIFN0cnVjdHVyZUlEQmxvYiB7Ci0gICAg
ZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKLXB1YmxpYzoKLSAgICBTdHJ1Y3R1
cmVJREJsb2IoKSA9IGRlZmF1bHQ7Ci0KLSAgICBTdHJ1Y3R1cmVJREJsb2IoU3RydWN0dXJlSUQg
c3RydWN0dXJlSUQsIEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5LCBj
b25zdCBUeXBlSW5mbyYgdHlwZUluZm8pCi0gICAgewotICAgICAgICB1LmZpZWxkcy5zdHJ1Y3R1
cmVJRCA9IHN0cnVjdHVyZUlEOwotICAgICAgICB1LmZpZWxkcy5pbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5ID0gaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeTsKLSAgICAgICAgdS5maWVs
ZHMudHlwZSA9IHR5cGVJbmZvLnR5cGUoKTsKLSAgICAgICAgdS5maWVsZHMuaW5saW5lVHlwZUZs
YWdzID0gdHlwZUluZm8uaW5saW5lVHlwZUZsYWdzKCk7Ci0gICAgICAgIHUuZmllbGRzLmRlZmF1
bHRDZWxsU3RhdGUgPSBDZWxsU3RhdGU6OkRlZmluaXRlbHlXaGl0ZTsKLSAgICB9Ci0KLSAgICB2
b2lkIG9wZXJhdG9yPShjb25zdCBTdHJ1Y3R1cmVJREJsb2ImIG90aGVyKSB7IHUuZG91YmxlV29y
ZCA9IG90aGVyLnUuZG91YmxlV29yZDsgfQotICAgIAotICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVy
ZUlEKCkgY29uc3QgeyByZXR1cm4gdS5maWVsZHMuc3RydWN0dXJlSUQ7IH0KLSAgICBJbmRleGlu
Z1R5cGUgaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIHUuZmll
bGRzLmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7IH0KLSAgICBEZXBlbmRlbmN5IGZlbmNl
ZEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoSW5kZXhpbmdUeXBlJiBpbmRleGluZ1R5cGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gRGVwZW5kZW5jeTo6bG9hZEFuZEZlbmNlKCZ1LmZpZWxk
cy5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5LCBpbmRleGluZ1R5cGUpOwotICAgIH0KLSAg
ICB2b2lkIHNldEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoSW5kZXhpbmdUeXBlIGluZGV4
aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkpIHsgdS5maWVsZHMuaW5kZXhpbmdNb2RlSW5jbHVkaW5n
SGlzdG9yeSA9IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7IH0KLSAgICBKU1R5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIHUuZmllbGRzLnR5cGU7IH0KLSAgICBUeXBlSW5mbzo6SW5saW5l
VHlwZUZsYWdzIGlubGluZVR5cGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIHUuZmllbGRzLmlubGlu
ZVR5cGVGbGFnczsgfQotICAgIAotICAgIFR5cGVJbmZvIHR5cGVJbmZvKFR5cGVJbmZvOjpPdXRP
ZkxpbmVUeXBlRmxhZ3Mgb3V0T2ZMaW5lVHlwZUZsYWdzKSBjb25zdCB7IHJldHVybiBUeXBlSW5m
byh0eXBlKCksIGlubGluZVR5cGVGbGFncygpLCBvdXRPZkxpbmVUeXBlRmxhZ3MpOyB9Ci0gICAg
Ci0gICAgaW50MzJfdCBibG9iRXhjbHVkaW5nU3RydWN0dXJlSUQoKSBjb25zdCB7IHJldHVybiB1
LndvcmRzLndvcmQyOyB9Ci0gICAgaW50NjRfdCBibG9iKCkgY29uc3QgeyByZXR1cm4gdS5kb3Vi
bGVXb3JkOyB9Ci0gICAgCi0gICAgc3RhdGljIHB0cmRpZmZfdCBzdHJ1Y3R1cmVJRE9mZnNldCgp
Ci0gICAgewotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZUlEQmxvYiwg
dS5maWVsZHMuc3RydWN0dXJlSUQpOwotICAgIH0KLQotICAgIHN0YXRpYyBwdHJkaWZmX3QgaW5k
ZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeU9mZnNldCgpCi0gICAgewotICAgICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZUlEQmxvYiwgdS5maWVsZHMuaW5kZXhpbmdNb2RlSW5j
bHVkaW5nSGlzdG9yeSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHVuaW9uIERhdGEgewotICAg
ICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgdGhp
cyBzaW5jZSB0aGUgc3RydWN0dXJlSUQgY2FuIGJlIGRpcmVjdGx5IGNvbXB1dGVkIGZyb20gdGhl
IFN0cnVjdHVyZSoKLSAgICAgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEOwotICAgICAg
ICAgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7Ci0gICAgICAg
ICAgICBKU1R5cGUgdHlwZTsKLSAgICAgICAgICAgIFR5cGVJbmZvOjpJbmxpbmVUeXBlRmxhZ3Mg
aW5saW5lVHlwZUZsYWdzOwotICAgICAgICAgICAgQ2VsbFN0YXRlIGRlZmF1bHRDZWxsU3RhdGU7
Ci0gICAgICAgIH0gZmllbGRzOwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgaW50MzJf
dCB3b3JkMTsKLSAgICAgICAgICAgIGludDMyX3Qgd29yZDI7Ci0gICAgICAgIH0gd29yZHM7Ci0g
ICAgICAgIGludDY0X3QgZG91YmxlV29yZDsKLQotICAgICAgICBEYXRhKCkgeyBkb3VibGVXb3Jk
ID0gMHhiYmFkYmVlZjsgfQotICAgIH07Ci0KLSAgICBEYXRhIHU7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaAppbmRleCA1M2I4M2QwNGE0NmEzMzM1YzhlZGJlYzRmZGJkYzViZTI2MThkNzljLi41
NGVhZTdmZmJkMzdmZTU2ZDJjM2UxYWVhNzIzNTVjZGJlZjRiYTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCkBAIC0yNTYsNyArMjU2
LDcgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjpoYXNJbmRleGluZ0hlYWRlcihjb25zdCBKU0Nl
bGwqIGNlbGwpIGNvbnN0CiAgICAgaWYgKGhhc0luZGV4ZWRQcm9wZXJ0aWVzKGluZGV4aW5nVHlw
ZSgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgaWYgKCFpc1R5cGVkVmlldyh0
eXBlZEFycmF5VHlwZUZvclR5cGUobV9ibG9iLnR5cGUoKSkpKQorICAgIGlmICghaXNUeXBlZFZp
ZXcodHlwZWRBcnJheVR5cGVGb3JUeXBlKG1fdHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTQXJyYXlCdWZmZXJWaWV3Kj4oY2VsbCktPm1v
ZGUoKSA9PSBXYXN0ZWZ1bFR5cGVkQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvVk1JbnNwZWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvVk1JbnNwZWN0b3JJbmxpbmVzLmgKaW5kZXggZDlmOTU0NmM3ZmEwODgxOGI5MDQ1NmZm
NDk5YTQ2NDA5ODc5Y2U3ZS4uOGMyMjFhNmYwYWI3MjViZGQwNDIwZTk3ZTJhM2IyOTljNzQ0YzAz
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9ySW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3RvcklubGlu
ZXMuaApAQCAtNDUsNyArNDUsNyBAQCBib29sIFZNSW5zcGVjdG9yOjp2ZXJpZnlDZWxsU2l6ZShW
TSYgdm0sIEpTQ2VsbCogY2VsbCwgc2l6ZV90IGFsbG9jYXRvckNlbGxTaXplKQogICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gY2VsbC0+c3RydWN0dXJlKHZtKTsKICAgICBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbyA9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCk7CiAgICAgSlNUeXBlIGNlbGxU
eXBlID0gY2VsbC0+dHlwZSgpOwotICAgIEFVRElUX1ZFUklGWShhY3Rpb24sIHZlcmlmaWVyLCBj
ZWxsVHlwZSA9PSBzdHJ1Y3R1cmUtPm1fYmxvYi50eXBlKCksIGNlbGwsIGNlbGxUeXBlLCBzdHJ1
Y3R1cmUtPm1fYmxvYi50eXBlKCkpOworICAgIEFVRElUX1ZFUklGWShhY3Rpb24sIHZlcmlmaWVy
LCBjZWxsVHlwZSA9PSBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpLCBjZWxsLCBjZWxsVHlw
ZSwgc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNl
bGxTaXplKHZtLCBjZWxsKTsKICAgICBBVURJVF9WRVJJRlkoYWN0aW9uLCB2ZXJpZmllciwgc2l6
ZSA8PSBhbGxvY2F0b3JDZWxsU2l6ZSwgY2VsbCwgY2VsbFR5cGUsIHNpemUsIGFsbG9jYXRvckNl
bGxTaXplLCBjbGFzc0luZm8tPnN0YXRpY0NsYXNzU2l6ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445609</attachid>
            <date>2021-12-01 13:41:53 -0800</date>
            <delta_ts>2021-12-03 09:36:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233723-20211201164151.patch</filename>
            <type>text/plain</type>
            <size>29152</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTk1MTM1NTkwNmY1MzM5Mjg5ZDA4OTYxOTllMzJkNzdlY2M3NmVlLi5jNWI5ZjM0ZjgwYTEzMzVl
MGNjNzQ0MzAyZDNkMGUwNGQxODcxNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMS0xMi0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgU3RydWN0dXJlSURCbG9iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJ1Y3R1cmVJREJsb2IgaXNuJ3QgdmVy
eSB1c2VmdWwgbm93IHRoYXQgU3RydWN0dXJlSURzIGFyZSBqdXN0IHRoZQorICAgICAgICBib3R0
b20gYml0cyBvZiB0aGUgcG9pbnRlciBvbiA2NCBiaXQgcGxhdGZvcm1zLiBJbiBhIGZvbGxvdyB1
cCBwYXRjaAorICAgICAgICBJJ2xsIGNoYW5nZSB0aGUgbGF5b3V0IG9mIEpTQ2VsbCBhbmQgU3Ry
dWN0dXJlIHNvIHRoYXQgVHlwZUluZm8gY3JlYXRpb24KKyAgICAgICAgY2FuIGJlIGEgc2luZ2xl
IGxvYWQgcGxhdGZvcm1zIHRoYXQgYWxsb3cgKGFuZCBkb24ndCBwZW5hbGl6ZSkgbWlzYWxpZ25l
ZCBsb2Fkcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVTdHJp
Y3RFcSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJseUhlbHBlcnM6OmVtaXRTdG9yZVN0cnVjdHVyZVdpdGhUeXBlSW5mbyk6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3B1dF90b19zY29wZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
YWRkTmV3UHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpyZW1v
dmVOZXdQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmF0dHJp
YnV0ZUNoYW5nZVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om5vblByb3Bl
cnR5VHJhbnNpdGlvblNsb3cpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnNldEJyYW5kVHJh
bnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlOjppZCBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6b2JqZWN0SW5p
dGlhbGl6YXRpb25CbG9iIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppZEJsb2Ig
Y29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmlzUHJveHkgY29uc3QpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OnR5cGVJbmZvIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjppbmRleGluZ1R5cGUgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmluZGV4
aW5nTW9kZSBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZmVuY2VkSW5kZXhpbmdN
b2RlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0
b3J5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9m
ZnNldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVJREJsb2IuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlOjpoYXNJbmRleGluZ0hlYWRlciBjb25zdCk6CisgICAgICAgICogdG9vbHMv
Vk1JbnNwZWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlZNSW5zcGVjdG9yOjp2ZXJpZnlD
ZWxsU2l6ZSk6CisKIDIwMjEtMTItMDEgIFhhbiBMb3BleiAgPHhhbkBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtKU0NdIEZpeCBwb3RlbnRpYWwgYnVpbGQgYnJlYWsgcmVsYXRlZCB0byBTdHJ1Y3R1
cmVJRC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDU1MDJkZDYyMmVm
NmM1MzAzYzc4ZDFhZDVlYmI2Mzc2YTU2YWE3My4uODEwZjQ1NTcyNTUzNjA1MzYyODE4OTYzNTdl
YWQ0MDYyYjQ1M2I2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTE4
Niw3ICsxMTg2LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBydW50aW1lL1N0cnVjdHVyZUNhY2hlLmgKICAgICBydW50aW1lL1N0cnVjdHVyZUNo
YWluLmgKICAgICBydW50aW1lL1N0cnVjdHVyZUlELmgKLSAgICBydW50aW1lL1N0cnVjdHVyZUlE
QmxvYi5oCiAgICAgcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKICAgICBydW50aW1lL1N0cnVj
dHVyZVJhcmVEYXRhLmgKICAgICBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwOWE2YWQ3Yzk0YjQwOTIyMjgzZGFkZTc5
NGQ2NzkzZDc0ZTk4NzkuLjQ5MDljNTIzNDZjODk3NzJjZDkzNzk2YTcyZGQwZTY3MzExZGE3Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTIsNyArODUyLDYgQEAKIAkJMkE0
QkI3RjMxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBNEJCN0YyMThBNDExNzkw
MDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi87IH07CiAJCTJBODM2Mzg2MThE
N0QwRUUwMDAwRUJDQyAvKiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTgzNjM4NDE4RDdEMEVFMDAwMEVCQ0Mg
LyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJBODM2MzhBMThEN0QwRkUwMDAwRUJDQyAvKiBGdWxsR0NB
Y3Rpdml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQTgzNjM4ODE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTJB
QUFBMzEyMThCRDQ5RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBQUFBMzEwMThCRDQ5RDEwMDM5NEND
OCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkyQUFCQ0RFNzE4RUYyOTQyMDAwMDIwOTYgLyogR0NMb2dnaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUFCQ0RFNjE4
RUYyOTQyMDAwMDIwOTYgLyogR0NMb2dnaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkFBQ0U2M0QxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0
aXZpdHlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBRDJFREZC
MTk3OTlFMzgwMDRENjQ3OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRDJFREZBMTk3OTlFMzgwMDRENjQ3OCAvKiBF
bnVtZXJhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMzYzMiw3ICszNjMxLDYgQEAKIAkJMkE4MzYzODQxOEQ3RDBFRTAwMDBFQkND
IC8qIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyQTgzNjM4NzE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdWxsR0NBY3Rpdml0eUNh
bGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE4MzYzODgxOEQ3RDBG
RTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyQUFBQTMxMDE4QkQ0OUQxMDAzOTRDQzggLyogU3RydWN0dXJlSURCbG9i
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZUlEQmxvYi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUFCQ0RFNjE4RUYyOTQyMDAwMDIwOTYgLyog
R0NMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDTG9nZ2luZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUFDRTYzQTE4Q0E1QTAzMDBFRDAxOTEg
LyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdDQWN0aXZpdHlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJBQUNFNjNCMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NBY3Rpdml0eUNhbGxiYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDc2LDcgKzgwNzQsNiBAQAogCQkJCTdFNEVFNzBF
MEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5jcHAgKi8sCiAJCQkJN0U0RUU3MDgw
RUJCNzk2MzAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmggKi8sCiAJCQkJNTM3RkVFQzgyNzQy
QkRBMzAwQzlFRkVFIC8qIFN0cnVjdHVyZUlELmggKi8sCi0JCQkJMkFBQUEzMTAxOEJENDlEMTAw
Mzk0Q0M4IC8qIFN0cnVjdHVyZUlEQmxvYi5oICovLAogCQkJCTBGRDJDOTIzMTZEMDFFRTkwMEM3
ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8sCiAJCQkJQzJGMEYyRDAxNkJBRUVFOTAwMTg3
QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCAqLywKIAkJCQlDMkZFMThBMzE2QkFFQzQwMDBB
RjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLywKQEAgLTEwMTYwLDYgKzEwMTU3LDcgQEAK
IAkJCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTRDMkFCMTFDNjU0NEYyMDBBMThENzggLyogSGVhcFNuYXBzaG90LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTMxMUMzNjFDNzdDRUM1MDBFNkIxQjYgLyogSGVhcFNuYXBzaG90
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkUyQ0M5MzAyNzU2QjJCOTAwM0Y1QUI4IC8q
IEhlYXBTdWJzcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFENEQyM0JF
MDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1MUU3MjA1
MzgwMDEzNEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCURDMjE0MzA3
MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRzLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMjc2LDYg
KzEwMjc0LDcgQEAKIAkJCQkwRkI0Njc4MTFGRERBNkY3MDAzRkNCMDkgLyogSXNvQ2VsbFNldElu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkYxQkFFMjM4QUFFREIwMDNBMUMyQiAvKiBJ
c29IZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQzhFRDQzMjNBMURCQ0IwMDEz
MTk1OCAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRTY1
QjE1MTI3NDg2MDFGMDBEQjVCMTYgLyogSXNvSW5saW5lZEhlYXBDZWxsVHlwZUlubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUzN0ZFRUQxMjc0MkJERTEwMEM5RUZFRSAvKiBJc29NZW1vcnlB
bGxvY2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzdGRUVDRTI3NDJCREUxMDBDOUVG
RUUgLyogSXNvTWVtb3J5QWxsb2NhdG9yQmFzZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRENFMTJEMUZBRkI0RTUwMDZGMzkwMSAvKiBJc29TdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xMDQyNiw3ICsxMDQyNSw2IEBACiAJCQkJRTMzRjUwODExQjg0MjlBNDAwNDEzODU2IC8q
IEpTSW50ZXJuYWxQcm9taXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzNGNTA3OTFCODQyMjU3
MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTMzRjUwODcxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3Ry
dWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTY1QjE1MTI3NDg2MDFGMDBEQjVCMTYg
LyogSXNvSW5saW5lZEhlYXBDZWxsVHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUz
M0Y1MDc1MUI4NDIxQzAwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTUwM0ZBMUUxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2YVNjcmlw
dENhbGxGcmFtZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTYwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTTGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTEw
ODMyLDcgKzEwODMwLDYgQEAKIAkJCQk3OTg2OTQzQjFGOEMwQUNDMDA5MjMyQUUgLyogU3RydWN0
dXJlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEVFNzA5MEVCQjc5NjMwMDU5MzRBQSAv
KiBTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM3RkVFQzkyNzQyQkRBMzAw
QzlFRkVFIC8qIFN0cnVjdHVyZUlELmggaW4gSGVhZGVycyAqLywKLQkJCQkyQUFBQTMxMjE4QkQ0
OUQxMDAzOTRDQzggLyogU3RydWN0dXJlSURCbG9iLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQy
QzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzJGRTE4QTQxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMjBCQTkyRDE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFy
ZURhdGFJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEwOTU1LDcgKzEwOTUyLDYgQEAKIAkJ
CQlFMzM3Qjk2NzIyNDMyNEVBMDA5M0E4MjAgLyogV2FzbUNhcGFiaWxpdGllcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTI2QUM0QjcxRTk3N0M1RDAwMzUwMEUxIC8qIFdhc21Db2RlQmxvY2suaCBp
biBIZWFkZXJzICovLAogCQkJCUUzQkQyQjc2MjJGMjc1MDIwMDExNzY1QyAvKiBXYXNtQ29tcGls
YXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTJDQzkzMDI3NTZCMkI5MDAzRjVBQjgg
LyogSGVhcFN1YnNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENDEyQjM0MUU3QjJF
OUUwMDhBRjE1NyAvKiBXYXNtQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU5M0M4OThC
RTcxNEE2NEJFOTNBNkU3IC8qIFdhc21Db250ZXh0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTM2Q0M5NDcyMDg2MzE0RjAwNTFGRkQ2IC8qIFdhc21DcmVhdGlvbk1vZGUuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaAppbmRleCAzMTVmOTBkNGNlYTIzOTk2ZGQwNzI4YjZiNmJkY2I0ODRi
YmIxZTYwLi5mZTJhYzVjZjJmMzMwZDBlYmYzOTZiMTViMTU1YTdlMjVkZGVkNDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaApAQCAtMTQ5LDcgKzE0OSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
ICAgICBtYWNybyhTdHJ1Y3R1cmVfb3V0T2ZMaW5lVHlwZUZsYWdzLCBTdHJ1Y3R1cmU6Om91dE9m
TGluZVR5cGVGbGFnc09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3ByZXZpb3VzT3JS
YXJlRGF0YSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSkgXAogICAgIG1h
Y3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwK
LSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURP
ZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZEtleXMsIFN0cnVj
dHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZXMoQ2FjaGVkUHJvcGVydHlO
YW1lc0tpbmQ6OktleXMpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVkR2V0
T3duUHJvcGVydHlOYW1lcywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVy
dHlOYW1lcyhDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZDo6R2V0T3duUHJvcGVydHlOYW1lcykpIFwK
ICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0YV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
QW5kRmxhZywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51
bWVyYXRvckFuZEZsYWcoKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCmluZGV4IDFkZDJhNDJiNjIzYzcyYzAyYWJkNzJmZjk3Nzc0ZWQ3ZTM0OTQx
MGUuLmM1ZTI1OWE4MTUyMThjNTI0YTEzOTQwYzUzNjY0MzViMGU3NGVhMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE2ODAyLDcgKzE2
ODAyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgTFZhbHVlIGlkID0gbV9vdXQubG9hZDMyKHN0cnVjdHVyZSwg
bV9oZWFwcy5TdHJ1Y3R1cmVfc3RydWN0dXJlSUQpOworICAgICAgICBMVmFsdWUgaWQgPSBtX291
dC5iaXRBbmQobV9vdXQuY2FzdFRvSW50MzIoc3RydWN0dXJlKSwgbV9vdXQuY29uc3RJbnQzMihz
dHJ1Y3R1cmVJRE1hc2spKTsKICAgICAgICAgbV9vdXQuc3RvcmUzMihpZCwgb2JqZWN0LCBtX2hl
YXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAKICAgICAgICAgTFZhbHVlIGJsb2IgPSBtX291dC5s
b2FkMzIoc3RydWN0dXJlLCBtX2hlYXBzLlN0cnVjdHVyZV9pbmRleGluZ01vZGVJbmNsdWRpbmdI
aXN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmlu
ZGV4IDFlOWFhZGFiYjZhOWUxZmUwYTYwZjQxMjcwYjZkNDk1ZDJkMmE5ZjUuLjk4MzFlMTAwZDQ4
ZmNlZWJlNWMyOGFlZDU3MjIyNGU3OGU5ZWM5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTYwMiwxNCArMTYwMiwxNCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGVtaXRTdG9yZVN0cnVjdHVyZVdpdGhUeXBlSW5mbyhSZWdpc3RlcklEIHN0cnVj
dHVyZSwgUmVnaXN0ZXJJRCBkZXN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpCiAgICAgewotI2lmIFVT
RShKU1ZBTFVFNjQpCi0gICAgICAgIGxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdHJ1
Y3R1cmUsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2gpOwotICAgICAg
ICBzdG9yZTY0KHNjcmF0Y2gsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRlc3QsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSkpOwotI2Vsc2UKICAgICAgICAgLy8gU3RvcmUgYWxsIHRoZSBp
bmZvIGZsYWdzIHVzaW5nIGEgc2luZ2xlIDMyLWJpdCB3aWRlIGxvYWQgYW5kIHN0b3JlLgogICAg
ICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RydWN0dXJlLCBTdHJ1Y3R1cmU6
OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKSksIHNjcmF0Y2gpOwogICAgICAg
ICBzdG9yZTMyKHNjcmF0Y2gsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRlc3QsIEpTQ2VsbDo6
aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSk7CiAKKyNpZiBDUFUoQUREUkVTUzY0KQorICAg
ICAgICBhbmQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0cnVjdHVyZUlETWFzayks
IHN0cnVjdHVyZSwgc2NyYXRjaCk7CisgICAgICAgIHN0b3JlMzIoc2NyYXRjaCwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoZGVzdCwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSk7CisjZWxz
ZQogICAgICAgICAvLyBTdG9yZSB0aGUgU3RydWN0dXJlSUQKICAgICAgICAgc3RvcmVQdHIoc3Ry
dWN0dXJlLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhkZXN0LCBKU0NlbGw6OnN0cnVjdHVyZUlE
T2Zmc2V0KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcAppbmRleCBiNTAwZmJjYTI2YjVkZmQ2N2ExYjAwOGVkNTc3OWQxZTI3
MTQ1NGM5Li40MWExY2E4ODljODg5YjJiNDc4NDgxNjZkMThlZjA4YzExMzgxYjYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMjQ5
Miw3ICsyNDkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgICAgICBsb2FkUHRyRnJvbU1ldGFk
YXRhKGJ5dGVjb2RlLCBPcFB1dFRvU2NvcGU6Ok1ldGFkYXRhOjpvZmZzZXRPZlN0cnVjdHVyZSgp
LCBzY3JhdGNoR1BSMSk7CiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyUGF5bG9h
ZChzY29wZSwgc2NvcGVHUFIpOwogICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVzdFB0
cihaZXJvLCBzY3JhdGNoR1BSMSkpOwotICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3Moc2NyYXRj
aEdQUjEsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIxKTsKKyAg
ICAgICAgICAgIGFuZDMyKFRydXN0ZWRJbW0zMihzdHJ1Y3R1cmVJRE1hc2spLCBzY3JhdGNoR1BS
MSk7CiAgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgQWRkcmVzcyhz
Y29wZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUjEpKTsKIAog
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgdmFsdWVKU1IpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggYjYwZTNjYjBl
M2JmNTYzODczMmY4NWMwZGNiMDdjMzk2ZDNmZDY4Yi4uMGEzMTI1MzNkYWYxM2UzZDQxNGRlMjVh
ZThhYzYzYTExYmY3MTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCkBAIC0xOTcsNyArMTk3LDkgQEAgaW5saW5lIHZvaWQgU3RydWN0dXJlOjp2YWxp
ZGF0ZUZsYWdzKCkgeyB9CiAKIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0
eXBlSW5mbywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIEluZGV4aW5nVHlwZSBpbmRleGlu
Z1R5cGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5KQogICAgIDogSlNDZWxsKHZtLCB2bS5zdHJ1
Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2Jsb2IoU3RydWN0dXJlSUQ6OmVuY29kZSh0
aGlzKSwgaW5kZXhpbmdUeXBlLCB0eXBlSW5mbykKKyAgICAsIG1faW5kZXhpbmdNb2RlSW5jbHVk
aW5nSGlzdG9yeShpbmRleGluZ1R5cGUpCisgICAgLCBtX3R5cGUodHlwZUluZm8udHlwZSgpKQor
ICAgICwgbV9pbmxpbmVUeXBlRmxhZ3ModHlwZUluZm8uaW5saW5lVHlwZUZsYWdzKCkpCiAgICAg
LCBtX291dE9mTGluZVR5cGVGbGFncyh0eXBlSW5mby5vdXRPZkxpbmVUeXBlRmxhZ3MoKSkKICAg
ICAsIG1faW5saW5lQ2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCiAgICAgLCBtX2JpdEZpZWxkKDAp
CkBAIC0yMzgsNiArMjQwLDggQEAgY29uc3QgQ2xhc3NJbmZvIFN0cnVjdHVyZTo6c19pbmZvID0g
eyAiU3RydWN0dXJlIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1IKIAogU3RydWN0dXJl
OjpTdHJ1Y3R1cmUoVk0mIHZtLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKICAgICA6IEpTQ2VsbChD
cmVhdGluZ0Vhcmx5Q2VsbCkKKyAgICAsIG1faW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShO
b0luZGV4aW5nU2hhcGUpCisgICAgLCBtX3R5cGUoU3RydWN0dXJlVHlwZSkKICAgICAsIG1faW5s
aW5lQ2FwYWNpdHkoMCkKICAgICAsIG1fYml0RmllbGQoMCkKICAgICAsIG1fcHJvdG90eXBlKHZt
LCB0aGlzLCBqc051bGwoKSkKQEAgLTI2NCw3ICsyNjgsNyBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVy
ZShWTSYgdm0sIENyZWF0aW5nRWFybHlDZWxsVGFnKQogICAgIHNldE1heE9mZnNldCh2bSwgaW52
YWxpZE9mZnNldCk7CiAgCiAgICAgVHlwZUluZm8gdHlwZUluZm8gPSBUeXBlSW5mbyhTdHJ1Y3R1
cmVUeXBlLCBTdHJ1Y3R1cmVGbGFncyk7Ci0gICAgbV9ibG9iID0gU3RydWN0dXJlSURCbG9iKFN0
cnVjdHVyZUlEOjplbmNvZGUodGhpcyksIDAsIHR5cGVJbmZvKTsKKyAgICBtX2lubGluZVR5cGVG
bGFncyA9IHR5cGVJbmZvLmlubGluZVR5cGVGbGFncygpOwogICAgIG1fb3V0T2ZMaW5lVHlwZUZs
YWdzID0gdHlwZUluZm8ub3V0T2ZMaW5lVHlwZUZsYWdzKCk7CiAKICAgICBBU1NFUlQoaGFzUmVh
ZE9ubHlPckdldHRlclNldHRlclByb3BlcnRpZXNFeGNsdWRpbmdQcm90bygpIHx8ICFtX2NsYXNz
SW5mby0+aGFzU3RhdGljU2V0dGVyT3JSZWFkb25seVByb3BlcnRpZXMoKSk7CkBAIC0yNzQsNiAr
Mjc4LDEwIEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgQ3JlYXRpbmdFYXJseUNlbGxU
YWcpCiAKIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBwcmV2aW91cywg
RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUqIGRlZmVycmVkKQogICAg
IDogSlNDZWxsKHZtLCB2bS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCisgICAgLCBtX2luZGV4
aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkocHJldmlvdXMtPm1faW5kZXhpbmdNb2RlSW5jbHVkaW5n
SGlzdG9yeSkKKyAgICAsIG1fdHlwZShwcmV2aW91cy0+bV90eXBlKQorICAgICwgbV9pbmxpbmVU
eXBlRmxhZ3MocHJldmlvdXMtPm1faW5saW5lVHlwZUZsYWdzKQorICAgICwgbV9vdXRPZkxpbmVU
eXBlRmxhZ3MocHJldmlvdXMtPm1fb3V0T2ZMaW5lVHlwZUZsYWdzKQogICAgICwgbV9pbmxpbmVD
YXBhY2l0eShwcmV2aW91cy0+bV9pbmxpbmVDYXBhY2l0eSkKICAgICAsIG1fYml0RmllbGQoMCkK
ICAgICAsIG1fcHJvdG90eXBlKHZtLCB0aGlzLCBwcmV2aW91cy0+bV9wcm90b3R5cGUuZ2V0KCkp
CkBAIC0zMDAsMTAgKzMwOCw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgU3RydWN0
dXJlKiBwcmV2aW91cywgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0CiAgICAgc2V0VHJh
bnNpdGlvbk9mZnNldCh2bSwgaW52YWxpZE9mZnNldCk7CiAgICAgc2V0TWF4T2Zmc2V0KHZtLCBp
bnZhbGlkT2Zmc2V0KTsKICAKLSAgICBUeXBlSW5mbyB0eXBlSW5mbyA9IHByZXZpb3VzLT50eXBl
SW5mbygpOwotICAgIG1fYmxvYiA9IFN0cnVjdHVyZUlEQmxvYihTdHJ1Y3R1cmVJRDo6ZW5jb2Rl
KHRoaXMpLCBwcmV2aW91cy0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpLCB0eXBlSW5m
byk7Ci0gICAgbV9vdXRPZkxpbmVUeXBlRmxhZ3MgPSB0eXBlSW5mby5vdXRPZkxpbmVUeXBlRmxh
Z3MoKTsKLQogICAgIEFTU0VSVCghcHJldmlvdXMtPnR5cGVJbmZvKCkuc3RydWN0dXJlSXNJbW1v
cnRhbCgpKTsKICAgICBzZXRQcmV2aW91c0lEKHZtLCBwcmV2aW91cyk7CiAKQEAgLTUyOSw3ICs1
MzMsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkTmV3UHJvcGVydHlUcmFuc2l0aW9uKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBybwogICAgICAgICB0cmFuc2l0aW9uLT5zZXRQ
cm90ZWN0UHJvcGVydHlUYWJsZVdoaWxlVHJhbnNpdGlvbmluZyh0cnVlKTsKICAgICB9CiAKLSAg
ICB0cmFuc2l0aW9uLT5tX2Jsb2Iuc2V0SW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShzdHJ1
Y3R1cmUtPmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSAmIH5Db3B5T25Xcml0ZSk7Cisg
ICAgdHJhbnNpdGlvbi0+bV9pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5ID0gc3RydWN0dXJl
LT5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiB+Q29weU9uV3JpdGU7CiAgICAgdHJh
bnNpdGlvbi0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lLnVpZCgpOwog
ICAgIHRyYW5zaXRpb24tPnNldFRyYW5zaXRpb25Qcm9wZXJ0eUF0dHJpYnV0ZXMoYXR0cmlidXRl
cyk7CiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJhbnNpdGlvbktpbmQ6OlBy
b3BlcnR5QWRkaXRpb24pOwpAQCAtNjI2LDcgKzYzMCw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJl
OjpyZW1vdmVOZXdQcm9wZXJ0eVRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwKICAgICAgICAgdHJhbnNpdGlvbi0+c2V0UHJvdGVjdFByb3BlcnR5VGFibGVXaGlsZVRyYW5z
aXRpb25pbmcodHJ1ZSk7CiAgICAgfQogCi0gICAgdHJhbnNpdGlvbi0+bV9ibG9iLnNldEluZGV4
aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnkoc3RydWN0dXJlLT5pbmRleGluZ01vZGVJbmNsdWRpbmdI
aXN0b3J5KCkgJiB+Q29weU9uV3JpdGUpOworICAgIHRyYW5zaXRpb24tPm1faW5kZXhpbmdNb2Rl
SW5jbHVkaW5nSGlzdG9yeSA9IHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9y
eSgpICYgfkNvcHlPbldyaXRlOwogICAgIHRyYW5zaXRpb24tPm1fdHJhbnNpdGlvblByb3BlcnR5
TmFtZSA9IHByb3BlcnR5TmFtZS51aWQoKTsKICAgICB0cmFuc2l0aW9uLT5zZXRUcmFuc2l0aW9u
S2luZChUcmFuc2l0aW9uS2luZDo6UHJvcGVydHlEZWxldGlvbik7CiAgICAgdHJhbnNpdGlvbi0+
c2V0UHJvcGVydHlUYWJsZSh2bSwgc3RydWN0dXJlLT50YWtlUHJvcGVydHlUYWJsZU9yQ2xvbmVJ
ZlBpbm5lZCh2bSkpOwpAQCAtNzIwLDcgKzcyNCw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjph
dHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBy
CiAgICAgICAgIHRyYW5zaXRpb24tPnNldFByb3RlY3RQcm9wZXJ0eVRhYmxlV2hpbGVUcmFuc2l0
aW9uaW5nKHRydWUpOwogICAgIH0KIAotICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGlu
Z01vZGVJbmNsdWRpbmdIaXN0b3J5KHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlz
dG9yeSgpICYgfkNvcHlPbldyaXRlKTsKKyAgICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nTW9kZUlu
Y2x1ZGluZ0hpc3RvcnkgPSBzdHJ1Y3R1cmUtPmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnko
KSAmIH5Db3B5T25Xcml0ZTsKICAgICB0cmFuc2l0aW9uLT5tX3RyYW5zaXRpb25Qcm9wZXJ0eU5h
bWUgPSBwcm9wZXJ0eU5hbWUudWlkKCk7CiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvblBy
b3BlcnR5QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKICAgICB0cmFuc2l0aW9uLT5zZXRUcmFuc2l0
aW9uS2luZChUcmFuc2l0aW9uS2luZDo6UHJvcGVydHlBdHRyaWJ1dGVDaGFuZ2UpOwpAQCAtODE4
LDcgKzgyMiw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpub25Qcm9wZXJ0eVRyYW5zaXRpb25T
bG93KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRyCiAgICAgCiAgICAgU3RydWN0dXJl
KiB0cmFuc2l0aW9uID0gY3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwogICAgIHRyYW5zaXRpb24tPnNl
dFRyYW5zaXRpb25LaW5kKHRyYW5zaXRpb25LaW5kKTsKLSAgICB0cmFuc2l0aW9uLT5tX2Jsb2Iu
c2V0SW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0
b3J5KTsKKyAgICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkgPSBp
bmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OwogICAgIAogICAgIGlmIChwcmV2ZW50c0V4dGVu
c2lvbnModHJhbnNpdGlvbktpbmQpKQogICAgICAgICB0cmFuc2l0aW9uLT5zZXREaWRQcmV2ZW50
RXh0ZW5zaW9ucyh0cnVlKTsKQEAgLTE1NDYsNyArMTU1MCw3IEBAIFN0cnVjdHVyZSogU3RydWN0
dXJlOjpzZXRCcmFuZFRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3lt
Ym9sKiBiCiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJhbnNpdGlvbktpbmQ6
OlNldEJyYW5kKTsKIAogICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0
TWF5QmVOdWxsKHZtLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fY2FjaGVkUHJvdG90eXBlQ2hh
aW4uZ2V0KCkpOwotICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5KHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpKTsKKyAg
ICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkgPSBzdHJ1Y3R1cmUt
PmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKTsKICAgICB0cmFuc2l0aW9uLT5tX3RyYW5z
aXRpb25Qcm9wZXJ0eU5hbWUgPSAmYnJhbmQtPnVpZCgpOwogICAgIHRyYW5zaXRpb24tPnNldFRy
YW5zaXRpb25Qcm9wZXJ0eUF0dHJpYnV0ZXMoMCk7CiAgICAgdHJhbnNpdGlvbi0+c2V0UHJvcGVy
dHlUYWJsZSh2bSwgc3RydWN0dXJlLT50YWtlUHJvcGVydHlUYWJsZU9yQ2xvbmVJZlBpbm5lZCh2
bSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCA3MDQ1
Nzk2NmUyYTQ4OTE3YzMyYTE2OWY2MGRkNTZiODVlZDk4OGQxLi4yNjZiZmZlNDBlYTZlYWQ4YTVi
OGFjZDJlMjNmYzg4N2E4YmQwZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5
LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJQdXRQcm9wZXJ0eVNs
b3QuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVJREJsb2IuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVS
YXJlRGF0YS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIgogI2luY2x1
ZGUgIlRpbnlCbG9vbUZpbHRlci5oIgpAQCAtMTY1LDE0ICsxNjQsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHZhbGlkYXRlRmxhZ3MoKTsKIAogcHVibGljOgotICAgIFN0cnVjdHVyZUlEIGlkKCkg
Y29uc3QgeyBBU1NFUlQobV9ibG9iLnN0cnVjdHVyZUlEKCkgPT0gU3RydWN0dXJlSUQ6OmVuY29k
ZSh0aGlzKSk7IHJldHVybiBtX2Jsb2Iuc3RydWN0dXJlSUQoKTsgfQotICAgIGludDMyX3Qgb2Jq
ZWN0SW5pdGlhbGl6YXRpb25CbG9iKCkgY29uc3QgeyByZXR1cm4gbV9ibG9iLmJsb2JFeGNsdWRp
bmdTdHJ1Y3R1cmVJRCgpOyB9Ci0gICAgaW50NjRfdCBpZEJsb2IoKSBjb25zdCB7IHJldHVybiBt
X2Jsb2IuYmxvYigpOyB9CisgICAgU3RydWN0dXJlSUQgaWQoKSBjb25zdCB7IHJldHVybiBTdHJ1
Y3R1cmVJRDo6ZW5jb2RlKHRoaXMpOyB9CisgICAgaW50MzJfdCBvYmplY3RJbml0aWFsaXphdGlv
bkJsb2IoKSBjb25zdCB7IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgdWludDMy
X3QqPigmbV9pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KTsgfQorICAgIGludDY0X3QgaWRC
bG9iKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9iamVjdEluaXRpYWxp
emF0aW9uQmxvYigpKSA8PCAzMiB8IGlkKCkuYml0cygpOyB9CiAKICAgICBib29sIGlzUHJveHko
KSBjb25zdAogICAgIHsKLSAgICAgICAgSlNUeXBlIHR5cGUgPSBtX2Jsb2IudHlwZSgpOwotICAg
ICAgICByZXR1cm4gdHlwZSA9PSBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSB8fCB0eXBlID09IFBy
b3h5T2JqZWN0VHlwZTsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBQdXJlRm9yd2FyZGluZ1By
b3h5VHlwZSB8fCBtX3R5cGUgPT0gUHJveHlPYmplY3RUeXBlOwogICAgIH0KIAogICAgIHN0YXRp
YyB2b2lkIGR1bXBTdGF0aXN0aWNzKCk7CkBAIC0yNjMsMjIgKzI2MSwyMiBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogICAgIC8vIFR5cGUgYWNjZXNzb3JzLgotICAgIFR5cGVJbmZvIHR5cGVJbmZv
KCkgY29uc3QgeyByZXR1cm4gbV9ibG9iLnR5cGVJbmZvKG1fb3V0T2ZMaW5lVHlwZUZsYWdzKTsg
fQorICAgIFR5cGVJbmZvIHR5cGVJbmZvKCkgY29uc3QgeyByZXR1cm4gVHlwZUluZm8obV90eXBl
LCBtX2lubGluZVR5cGVGbGFncywgbV9vdXRPZkxpbmVUeXBlRmxhZ3MpOyB9CiAgICAgYm9vbCBp
c09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVJbmZvKCkuaXNPYmplY3QoKTsgfQogcHJvdGVj
dGVkOgogICAgIC8vIFlvdSBwcm9iYWJseSB3YW50IHR5cGVJbmZvKCkudHlwZSgpCiAgICAgSlNU
eXBlIHR5cGUoKSB7IHJldHVybiBKU0NlbGw6OnR5cGUoKTsgfQogcHVibGljOgogCi0gICAgSW5k
ZXhpbmdUeXBlIGluZGV4aW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvYi5pbmRleGluZ01v
ZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiBBbGxXcml0YWJsZUFycmF5VHlwZXM7IH0KLSAgICBJbmRl
eGluZ1R5cGUgaW5kZXhpbmdNb2RlKCkgY29uc3QgIHsgcmV0dXJuIG1fYmxvYi5pbmRleGluZ01v
ZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiBBbGxBcnJheVR5cGVzOyB9CisgICAgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rv
cnkoKSAmIEFsbFdyaXRhYmxlQXJyYXlUeXBlczsgfQorICAgIEluZGV4aW5nVHlwZSBpbmRleGlu
Z01vZGUoKSBjb25zdCAgeyByZXR1cm4gaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpICYg
QWxsQXJyYXlUeXBlczsgfQogICAgIERlcGVuZGVuY3kgZmVuY2VkSW5kZXhpbmdNb2RlKEluZGV4
aW5nVHlwZSYgaW5kZXhpbmdUeXBlKQogICAgIHsKLSAgICAgICAgRGVwZW5kZW5jeSBkZXBlbmRl
bmN5ID0gbV9ibG9iLmZlbmNlZEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoaW5kZXhpbmdU
eXBlKTsKKyAgICAgICAgRGVwZW5kZW5jeSBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeTo6bG9hZEFu
ZEZlbmNlKCZtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnksIGluZGV4aW5nVHlwZSk7CiAg
ICAgICAgIGluZGV4aW5nVHlwZSAmPSBBbGxBcnJheVR5cGVzOwogICAgICAgICByZXR1cm4gZGVw
ZW5kZW5jeTsKICAgICB9Ci0gICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hp
c3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Jsb2IuaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9y
eSgpOyB9CisgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7IH0KICAgICAgICAg
CiAgICAgaW5saW5lIGJvb2wgbWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKCkgY29uc3Q7CiAg
ICAgCkBAIC01NTcsMTEgKzU1NSw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0luZm87IH0KIAotICAgIHN0YXRpYyBw
dHJkaWZmX3Qgc3RydWN0dXJlSURPZmZzZXQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikgKyBTdHJ1Y3R1cmVJREJsb2I6OnN0cnVjdHVy
ZUlET2Zmc2V0KCk7Ci0gICAgfQotCiAgICAgc3RhdGljIHB0cmRpZmZfdCBwcm90b3R5cGVPZmZz
ZXQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1f
cHJvdG90eXBlKTsKQEAgLTU4NCw3ICs1NzcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgcHRy
ZGlmZl90IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikgKyBTdHJ1Y3R1cmVJ
REJsb2I6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKTsKKyAgICAgICAgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1faW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlz
dG9yeSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3QgcHJvcGVydHlUYWJsZVVu
c2FmZU9mZnNldCgpCkBAIC04NjAsOCArODUzLDEyIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7
CiAKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIHByb3Blcmx5IGFsaWduZWQgYXQgdGhlIGJlZ2lu
bmluZyBvZiB0aGUgJ1N0cnVjdHVyZScKLSAgICAvLyBwYXJ0IG9mIHRoZSBvYmplY3QuCi0gICAg
U3RydWN0dXJlSURCbG9iIG1fYmxvYjsKKyAgICAvLyBwYXJ0IG9mIHRoZSBvYmplY3QuIEFuZCBu
ZWVkIHRvIG1hdGNoIHRoZSBvcmRlciBvZiB0aGUgZXF1aXZhbGVudCBwcm9wZXJ0aWVzIGluCisg
ICAgLy8gSlNDZWxsLgorICAgIEluZGV4aW5nVHlwZSBtX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hp
c3Rvcnk7CisgICAgSlNUeXBlIG1fdHlwZTsKKyAgICBUeXBlSW5mbzo6SW5saW5lVHlwZUZsYWdz
IG1faW5saW5lVHlwZUZsYWdzOworICAgIENlbGxTdGF0ZSBtX2RlZmF1bHRDZWxsU3RhdGUgeyBD
ZWxsU3RhdGU6OkRlZmluaXRlbHlXaGl0ZSB9OwogICAgIFR5cGVJbmZvOjpPdXRPZkxpbmVUeXBl
RmxhZ3MgbV9vdXRPZkxpbmVUeXBlRmxhZ3M7CiAKICAgICB1aW50OF90IG1faW5saW5lQ2FwYWNp
dHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJ
REJsb2IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEQmxvYi5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGFjMTUyOTE4NTRmNGM3OTcwODBlYjkx
YzlhZGYzOWJiOGM3ZDViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEQmxvYi5oCisr
KyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJDZWxsU3RhdGUuaCIKLSNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIK
LSNpbmNsdWRlICJKU1R5cGVJbmZvLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlSUQuaCIKLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIFN0cnVjdHVyZUlEQmxvYiB7Ci0gICAgZnJpZW5kIGNsYXNz
IExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKLXB1YmxpYzoKLSAgICBTdHJ1Y3R1cmVJREJsb2IoKSA9
IGRlZmF1bHQ7Ci0KLSAgICBTdHJ1Y3R1cmVJREJsb2IoU3RydWN0dXJlSUQgc3RydWN0dXJlSUQs
IEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5LCBjb25zdCBUeXBlSW5m
byYgdHlwZUluZm8pCi0gICAgewotICAgICAgICB1LmZpZWxkcy5zdHJ1Y3R1cmVJRCA9IHN0cnVj
dHVyZUlEOwotICAgICAgICB1LmZpZWxkcy5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5ID0g
aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeTsKLSAgICAgICAgdS5maWVsZHMudHlwZSA9IHR5
cGVJbmZvLnR5cGUoKTsKLSAgICAgICAgdS5maWVsZHMuaW5saW5lVHlwZUZsYWdzID0gdHlwZUlu
Zm8uaW5saW5lVHlwZUZsYWdzKCk7Ci0gICAgICAgIHUuZmllbGRzLmRlZmF1bHRDZWxsU3RhdGUg
PSBDZWxsU3RhdGU6OkRlZmluaXRlbHlXaGl0ZTsKLSAgICB9Ci0KLSAgICB2b2lkIG9wZXJhdG9y
PShjb25zdCBTdHJ1Y3R1cmVJREJsb2ImIG90aGVyKSB7IHUuZG91YmxlV29yZCA9IG90aGVyLnUu
ZG91YmxlV29yZDsgfQotICAgIAotICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEKCkgY29uc3Qg
eyByZXR1cm4gdS5maWVsZHMuc3RydWN0dXJlSUQ7IH0KLSAgICBJbmRleGluZ1R5cGUgaW5kZXhp
bmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIHUuZmllbGRzLmluZGV4aW5n
TW9kZUluY2x1ZGluZ0hpc3Rvcnk7IH0KLSAgICBEZXBlbmRlbmN5IGZlbmNlZEluZGV4aW5nTW9k
ZUluY2x1ZGluZ0hpc3RvcnkoSW5kZXhpbmdUeXBlJiBpbmRleGluZ1R5cGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gRGVwZW5kZW5jeTo6bG9hZEFuZEZlbmNlKCZ1LmZpZWxkcy5pbmRleGluZ01v
ZGVJbmNsdWRpbmdIaXN0b3J5LCBpbmRleGluZ1R5cGUpOwotICAgIH0KLSAgICB2b2lkIHNldElu
ZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoSW5kZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1
ZGluZ0hpc3RvcnkpIHsgdS5maWVsZHMuaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSA9IGlu
ZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7IH0KLSAgICBKU1R5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIHUuZmllbGRzLnR5cGU7IH0KLSAgICBUeXBlSW5mbzo6SW5saW5lVHlwZUZsYWdzIGlu
bGluZVR5cGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIHUuZmllbGRzLmlubGluZVR5cGVGbGFnczsg
fQotICAgIAotICAgIFR5cGVJbmZvIHR5cGVJbmZvKFR5cGVJbmZvOjpPdXRPZkxpbmVUeXBlRmxh
Z3Mgb3V0T2ZMaW5lVHlwZUZsYWdzKSBjb25zdCB7IHJldHVybiBUeXBlSW5mbyh0eXBlKCksIGlu
bGluZVR5cGVGbGFncygpLCBvdXRPZkxpbmVUeXBlRmxhZ3MpOyB9Ci0gICAgCi0gICAgaW50MzJf
dCBibG9iRXhjbHVkaW5nU3RydWN0dXJlSUQoKSBjb25zdCB7IHJldHVybiB1LndvcmRzLndvcmQy
OyB9Ci0gICAgaW50NjRfdCBibG9iKCkgY29uc3QgeyByZXR1cm4gdS5kb3VibGVXb3JkOyB9Ci0g
ICAgCi0gICAgc3RhdGljIHB0cmRpZmZfdCBzdHJ1Y3R1cmVJRE9mZnNldCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZUlEQmxvYiwgdS5maWVsZHMuc3Ry
dWN0dXJlSUQpOwotICAgIH0KLQotICAgIHN0YXRpYyBwdHJkaWZmX3QgaW5kZXhpbmdNb2RlSW5j
bHVkaW5nSGlzdG9yeU9mZnNldCgpCi0gICAgewotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFN0cnVjdHVyZUlEQmxvYiwgdS5maWVsZHMuaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9y
eSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHVuaW9uIERhdGEgewotICAgICAgICBzdHJ1Y3Qg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgdGhpcyBzaW5jZSB0aGUg
c3RydWN0dXJlSUQgY2FuIGJlIGRpcmVjdGx5IGNvbXB1dGVkIGZyb20gdGhlIFN0cnVjdHVyZSoK
LSAgICAgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEOwotICAgICAgICAgICAgSW5kZXhp
bmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7Ci0gICAgICAgICAgICBKU1R5cGUg
dHlwZTsKLSAgICAgICAgICAgIFR5cGVJbmZvOjpJbmxpbmVUeXBlRmxhZ3MgaW5saW5lVHlwZUZs
YWdzOwotICAgICAgICAgICAgQ2VsbFN0YXRlIGRlZmF1bHRDZWxsU3RhdGU7Ci0gICAgICAgIH0g
ZmllbGRzOwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgaW50MzJfdCB3b3JkMTsKLSAg
ICAgICAgICAgIGludDMyX3Qgd29yZDI7Ci0gICAgICAgIH0gd29yZHM7Ci0gICAgICAgIGludDY0
X3QgZG91YmxlV29yZDsKLQotICAgICAgICBEYXRhKCkgeyBkb3VibGVXb3JkID0gMHhiYmFkYmVl
ZjsgfQotICAgIH07Ci0KLSAgICBEYXRhIHU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAppbmRl
eCA1M2I4M2QwNGE0NmEzMzM1YzhlZGJlYzRmZGJkYzViZTI2MThkNzljLi41NGVhZTdmZmJkMzdm
ZTU2ZDJjM2UxYWVhNzIzNTVjZGJlZjRiYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCkBAIC0yNTYsNyArMjU2LDcgQEAgaW5saW5l
IGJvb2wgU3RydWN0dXJlOjpoYXNJbmRleGluZ0hlYWRlcihjb25zdCBKU0NlbGwqIGNlbGwpIGNv
bnN0CiAgICAgaWYgKGhhc0luZGV4ZWRQcm9wZXJ0aWVzKGluZGV4aW5nVHlwZSgpKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgaWYgKCFpc1R5cGVkVmlldyh0eXBlZEFycmF5VHlw
ZUZvclR5cGUobV9ibG9iLnR5cGUoKSkpKQorICAgIGlmICghaXNUeXBlZFZpZXcodHlwZWRBcnJh
eVR5cGVGb3JUeXBlKG1fdHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4ganNDYXN0PGNvbnN0IEpTQXJyYXlCdWZmZXJWaWV3Kj4oY2VsbCktPm1vZGUoKSA9PSBXYXN0
ZWZ1bFR5cGVkQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Vk1JbnNwZWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3JJbmxpbmVzLmgKaW5kZXggZDlmOTU0NmM3ZmEwODgxOGI5MDQ1NmZmNDk5YTQ2NDA5ODc5
Y2U3ZS4uOGMyMjFhNmYwYWI3MjViZGQwNDIwZTk3ZTJhM2IyOTljNzQ0YzAzYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9ySW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3RvcklubGluZXMuaApAQCAtNDUs
NyArNDUsNyBAQCBib29sIFZNSW5zcGVjdG9yOjp2ZXJpZnlDZWxsU2l6ZShWTSYgdm0sIEpTQ2Vs
bCogY2VsbCwgc2l6ZV90IGFsbG9jYXRvckNlbGxTaXplKQogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gY2VsbC0+c3RydWN0dXJlKHZtKTsKICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5m
byA9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCk7CiAgICAgSlNUeXBlIGNlbGxUeXBlID0gY2VsbC0+
dHlwZSgpOwotICAgIEFVRElUX1ZFUklGWShhY3Rpb24sIHZlcmlmaWVyLCBjZWxsVHlwZSA9PSBz
dHJ1Y3R1cmUtPm1fYmxvYi50eXBlKCksIGNlbGwsIGNlbGxUeXBlLCBzdHJ1Y3R1cmUtPm1fYmxv
Yi50eXBlKCkpOworICAgIEFVRElUX1ZFUklGWShhY3Rpb24sIHZlcmlmaWVyLCBjZWxsVHlwZSA9
PSBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpLCBjZWxsLCBjZWxsVHlwZSwgc3RydWN0dXJl
LT50eXBlSW5mbygpLnR5cGUoKSk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNlbGxTaXplKHZtLCBj
ZWxsKTsKICAgICBBVURJVF9WRVJJRlkoYWN0aW9uLCB2ZXJpZmllciwgc2l6ZSA8PSBhbGxvY2F0
b3JDZWxsU2l6ZSwgY2VsbCwgY2VsbFR5cGUsIHNpemUsIGFsbG9jYXRvckNlbGxTaXplLCBjbGFz
c0luZm8tPnN0YXRpY0NsYXNzU2l6ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445867</attachid>
            <date>2021-12-03 09:36:51 -0800</date>
            <delta_ts>2021-12-03 10:30:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233723-20211203123650.patch</filename>
            <type>text/plain</type>
            <size>29463</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTk1MTM1NTkwNmY1MzM5Mjg5ZDA4OTYxOTllMzJkNzdlY2M3NmVlLi4zOTExNmQzNjYxM2MxMzUz
MzVjNzg1NTE2N2U4NjQ0YmQ4ZjY3YThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMS0xMi0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgU3RydWN0dXJlSURCbG9iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFN0cnVjdHVyZUlEQmxvYiBpc24ndCB2ZXJ5
IHVzZWZ1bCBub3cgdGhhdCBTdHJ1Y3R1cmVJRHMgYXJlIGp1c3QgdGhlCisgICAgICAgIGJvdHRv
bSBiaXRzIG9mIHRoZSBwb2ludGVyIG9uIDY0IGJpdCBwbGF0Zm9ybXMuIEluIGEgZm9sbG93IHVw
IHBhdGNoCisgICAgICAgIEknbGwgY2hhbmdlIHRoZSBsYXlvdXQgb2YgSlNDZWxsIGFuZCBTdHJ1
Y3R1cmUgc28gdGhhdCBUeXBlSW5mbyBjcmVhdGlvbgorICAgICAgICBjYW4gYmUgYSBzaW5nbGUg
bG9hZCBwbGF0Zm9ybXMgdGhhdCBhbGxvdyAoYW5kIGRvbid0IHBlbmFsaXplKSBtaXNhbGlnbmVk
IGxvYWRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmlj
dEVxKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6ZW1pdFN0b3JlU3RydWN0dXJlV2l0aFR5cGVJbmZvKToKKyAgICAgICAg
KiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
cHV0X3RvX3Njb3BlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjph
ZGROZXdQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnJlbW92
ZU5ld1Byb3BlcnR5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YXR0cmli
dXRlQ2hhbmdlVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6bm9uUHJvcGVy
dHlUcmFuc2l0aW9uU2xvdyk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0QnJhbmRUcmFu
c2l0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmlkIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpvYmplY3RJbml0
aWFsaXphdGlvbkJsb2IgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmlkQmxvYiBj
b25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6aXNQcm94eSBjb25zdCk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6dHlwZUluZm8gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmluZGV4aW5nVHlwZSBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6aW5kZXhp
bmdNb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpmZW5jZWRJbmRleGluZ01v
ZGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rv
cnkgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmluZGV4aW5nTW9kZUluY2x1ZGlu
Z0hpc3RvcnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnN0cnVjdHVyZUlET2Zm
c2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEQmxvYi5oOiBSZW1v
dmVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6Omhhc0luZGV4aW5nSGVhZGVyIGNvbnN0KToKKyAgICAgICAgKiB0b29scy9W
TUluc3BlY3RvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Vk1JbnNwZWN0b3I6OnZlcmlmeUNl
bGxTaXplKToKKwogMjAyMS0xMi0wMSAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0pTQ10gRml4IHBvdGVudGlhbCBidWlsZCBicmVhayByZWxhdGVkIHRvIFN0cnVjdHVy
ZUlELmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwNTUwMmRkNjIyZWY2
YzUzMDNjNzhkMWFkNWViYjYzNzZhNTZhYTczLi44MTBmNDU1NzI1NTM2MDUzNjI4MTg5NjM1N2Vh
ZDQwNjJiNDUzYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTg2
LDcgKzExODYsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHJ1bnRpbWUvU3RydWN0dXJlQ2FjaGUuaAogICAgIHJ1bnRpbWUvU3RydWN0dXJlQ2hh
aW4uaAogICAgIHJ1bnRpbWUvU3RydWN0dXJlSUQuaAotICAgIHJ1bnRpbWUvU3RydWN0dXJlSURC
bG9iLmgKICAgICBydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAogICAgIHJ1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuaAogICAgIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzA5YTZhZDdjOTRiNDA5MjIyODNkYWRlNzk0
ZDY3OTNkNzRlOTg3OS4uNDkwOWM1MjM0NmM4OTc3MmNkOTM3OTZhNzJkZDBlNjczMTFkYTc2NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg1Miw3ICs4NTIsNiBAQAogCQkyQTRC
QjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0QkI3RjIxOEE0MTE3OTAw
OEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkE4MzYzODYxOEQ3
RDBFRTAwMDBFQkNDIC8qIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBODM2Mzg0MThEN0QwRUUwMDAwRUJDQyAv
KiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkE4MzYzOEExOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0Fj
dGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJBODM2Mzg4MThEN0QwRkUwMDAwRUJDQyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkFB
QUEzMTIxOEJENDlEMTAwMzk0Q0M4IC8qIFN0cnVjdHVyZUlEQmxvYi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFBQUEzMTAxOEJENDlEMTAwMzk0Q0M4
IC8qIFN0cnVjdHVyZUlEQmxvYi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJBQUJDREU3MThFRjI5NDIwMDAwMjA5NiAvKiBHQ0xvZ2dpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBQUJDREU2MThF
RjI5NDIwMDAwMjA5NiAvKiBHQ0xvZ2dpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkyQUFDRTYzRDE4Q0E1QTAzMDBFRDAxOTEgLyogR0NBY3Rp
dml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQUFDRTYzQjE4Q0E1QTAzMDBFRDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkFEMkVERkIx
OTc5OUUzODAwNEQ2NDc4IC8qIEVudW1lcmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFEMkVERkExOTc5OUUzODAwNEQ2NDc4IC8qIEVu
dW1lcmF0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zNjMyLDcgKzM2MzEsNiBAQAogCQkyQTgzNjM4NDE4RDdEMEVFMDAwMEVCQ0Mg
LyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJBODM2Mzg3MThEN0QwRkUwMDAwRUJDQyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bGxHQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTgzNjM4ODE4RDdEMEZF
MDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTJBQUFBMzEwMThCRDQ5RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlSURCbG9iLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBQUJDREU2MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NMb2dnaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBQUNFNjNBMThDQTVBMDMwMEVEMDE5MSAv
KiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gR0NBY3Rpdml0eUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHQ0FjdGl2aXR5Q2FsbGJhY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwNzYsNyArODA3NCw2IEBACiAJCQkJN0U0RUU3MEUw
RUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAqLywKIAkJCQk3RTRFRTcwODBF
QkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCAqLywKIAkJCQk1MzdGRUVDODI3NDJC
REEzMDBDOUVGRUUgLyogU3RydWN0dXJlSUQuaCAqLywKLQkJCQkyQUFBQTMxMDE4QkQ0OUQxMDAz
OTRDQzggLyogU3RydWN0dXJlSURCbG9iLmggKi8sCiAJCQkJMEZEMkM5MjMxNkQwMUVFOTAwQzc4
MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCAqLywKIAkJCQlDMkYwRjJEMDE2QkFFRUU5MDAxODdD
MTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwICovLAogCQkJCUMyRkUxOEEzMTZCQUVDNDAwMEFG
MzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5oICovLApAQCAtMTAxNjAsNiArMTAxNTcsNyBAQAog
CQkJCUE1Mzk4RkFCMUM3NTBEQTQwMDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1NEMyQUIxMUM2NTQ0RjIwMEExOEQ3OCAvKiBIZWFwU25hcHNob3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25hcHNob3RC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRTJDQzkzMDI3NTZCMkI5MDAzRjVBQjggLyog
SGVhcFN1YnNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQURFNjczMUQ0RDIzQkUw
MDc2ODQ1NyAvKiBIZWFwVXRpbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxQkQwMjUxRTcyMDUz
ODAwMTM0QkM5IC8qIEhlYXBWZXJpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMyMTQzMDcx
Q0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovLApAQCAtMTAyNzYsNiAr
MTAyNzQsNyBAQAogCQkJCTBGQjQ2NzgxMUZEREE2RjcwMDNGQ0IwOSAvKiBJc29DZWxsU2V0SW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNCRjFCQUUyMzhBQUVEQjAwM0ExQzJCIC8qIElz
b0hlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNDOEVENDMyM0ExREJDQjAwMTMx
OTU4IC8qIElzb0lubGluZWRIZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFNjVC
MTUxMjc0ODYwMUYwMERCNUIxNiAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTM3RkVFRDEyNzQyQkRFMTAwQzlFRkVFIC8qIElzb01lbW9yeUFs
bG9jYXRvckJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzN0ZFRUNFMjc0MkJERTEwMEM5RUZF
RSAvKiBJc29NZW1vcnlBbGxvY2F0b3JCYXNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEQ0UxMkQxRkFGQjRFNTAwNkYzOTAxIC8qIElzb1N1YnNwYWNlLmggaW4gSGVhZGVycyAqLywK
QEAgLTEwNDI2LDcgKzEwNDI1LDYgQEAKIAkJCQlFMzNGNTA4MTFCODQyOUE0MDA0MTM4NTYgLyog
SlNJbnRlcm5hbFByb21pc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzM0Y1MDc5MUI4NDIyNTcw
MDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMzNGNTA4NzFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1
Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFNjVCMTUxMjc0ODYwMUYwMERCNUIxNiAv
KiBJc29JbmxpbmVkSGVhcENlbGxUeXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMz
RjUwNzUxQjg0MjFDMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTAzRkExRTE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNE
MDBCMzQ0NjAgLyogSlNMZXhpY2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA4
MzIsNyArMTA4MzAsNiBAQAogCQkJCTc5ODY5NDNCMUY4QzBBQ0MwMDkyMzJBRSAvKiBTdHJ1Y3R1
cmVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0RUU3MDkwRUJCNzk2MzAwNTkzNEFBIC8q
IFN0cnVjdHVyZUNoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzdGRUVDOTI3NDJCREEzMDBD
OUVGRUUgLyogU3RydWN0dXJlSUQuaCBpbiBIZWFkZXJzICovLAotCQkJCTJBQUFBMzEyMThCRDQ5
RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDJD
OTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDMkZFMThBNDE2QkFFQzQwMDBBRjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMyMEJBOTJEMTZCQjFDMTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJl
RGF0YUlubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5NTUsNyArMTA5NTIsNiBAQAogCQkJ
CUUzMzdCOTY3MjI0MzI0RUEwMDkzQTgyMCAvKiBXYXNtQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MjZBQzRCNzFFOTc3QzVEMDAzNTAwRTEgLyogV2FzbUNvZGVCbG9jay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTNCRDJCNzYyMkYyNzUwMjAwMTE3NjVDIC8qIFdhc21Db21waWxh
dGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFMkNDOTMwMjc1NkIyQjkwMDNGNUFCOCAv
KiBIZWFwU3Vic3BhY2VUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ0MTJCMzQxRTdCMkU5
RTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTkzQzg5OEJF
NzE0QTY0QkU5M0E2RTcgLyogV2FzbUNvbnRleHRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzZDQzk0NzIwODYzMTRGMDA1MUZGRDYgLyogV2FzbUNyZWF0aW9uTW9kZS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCmluZGV4IDMxNWY5MGQ0Y2VhMjM5OTZkZDA3MjhiNmI2YmRjYjQ4NGJi
YjFlNjAuLmZlMmFjNWNmMmYzMzBkMGViZjM5NmIxNWIxNTVhN2UyNWRkZWQ0N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCkBAIC0xNDksNyArMTQ5LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
ICAgIG1hY3JvKFN0cnVjdHVyZV9vdXRPZkxpbmVUeXBlRmxhZ3MsIFN0cnVjdHVyZTo6b3V0T2ZM
aW5lVHlwZUZsYWdzT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfcHJldmlvdXNPclJh
cmVEYXRhLCBTdHJ1Y3R1cmU6OnByZXZpb3VzT3JSYXJlRGF0YU9mZnNldCgpKSBcCiAgICAgbWFj
cm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAot
ICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVkS2V5cywgU3RydWN0
dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNoZWRQcm9wZXJ0eU5h
bWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0YV9jYWNoZWRHZXRP
d25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0
eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0eU5hbWVzKSkgXAog
ICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JB
bmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKaW5kZXggMWRkMmE0MmI2MjNjNzJjMDJhYmQ3MmZmOTc3NzRlZDdlMzQ5NDEw
ZS4uYzVlMjU5YTgxNTIxOGM1MjRhMTM5NDBjNTM2NjQzNWIwZTc0ZWExNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTY4MDIsNyArMTY4
MDIsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICBMVmFsdWUgaWQgPSBtX291dC5sb2FkMzIoc3RydWN0dXJlLCBt
X2hlYXBzLlN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCk7CisgICAgICAgIExWYWx1ZSBpZCA9IG1fb3V0
LmJpdEFuZChtX291dC5jYXN0VG9JbnQzMihzdHJ1Y3R1cmUpLCBtX291dC5jb25zdEludDMyKHN0
cnVjdHVyZUlETWFzaykpOwogICAgICAgICBtX291dC5zdG9yZTMyKGlkLCBvYmplY3QsIG1faGVh
cHMuSlNDZWxsX3N0cnVjdHVyZUlEKTsKIAogICAgICAgICBMVmFsdWUgYmxvYiA9IG1fb3V0Lmxv
YWQzMihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2luZGV4aW5nTW9kZUluY2x1ZGluZ0hp
c3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5k
ZXggMWU5YWFkYWJiNmE5ZTFmZTBhNjBmNDEyNzBiNmQ0OTVkMmQyYTlmNS4uOTgzMWUxMDBkNDhm
Y2VlYmU1YzI4YWVkNTcyMjI0ZTc4ZTllYzlkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNjAyLDE0ICsxNjAyLDE0IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZW1pdFN0b3JlU3RydWN0dXJlV2l0aFR5cGVJbmZvKFJlZ2lzdGVySUQgc3RydWN0
dXJlLCBSZWdpc3RlcklEIGRlc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKICAgICB7Ci0jaWYgVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgbG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0cnVj
dHVyZSwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaCk7Ci0gICAgICAg
IHN0b3JlNjQoc2NyYXRjaCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZGVzdCwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSk7Ci0jZWxzZQogICAgICAgICAvLyBTdG9yZSBhbGwgdGhlIGlu
Zm8gZmxhZ3MgdXNpbmcgYSBzaW5nbGUgMzItYml0IHdpZGUgbG9hZCBhbmQgc3RvcmUuCiAgICAg
ICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdHJ1Y3R1cmUsIFN0cnVjdHVyZTo6
aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeU9mZnNldCgpKSwgc2NyYXRjaCk7CiAgICAgICAg
IHN0b3JlMzIoc2NyYXRjaCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZGVzdCwgSlNDZWxsOjpp
bmRleGluZ1R5cGVBbmRNaXNjT2Zmc2V0KCkpKTsKIAorI2lmIENQVShBRERSRVNTNjQpCisgICAg
ICAgIGFuZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3RydWN0dXJlSURNYXNrKSwg
c3RydWN0dXJlLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmUzMihzY3JhdGNoLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhkZXN0LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpKTsKKyNlbHNl
CiAgICAgICAgIC8vIFN0b3JlIHRoZSBTdHJ1Y3R1cmVJRAogICAgICAgICBzdG9yZVB0cihzdHJ1
Y3R1cmUsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRlc3QsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCmluZGV4IGI1MDBmYmNhMjZiNWRmZDY3YTFiMDA4ZWQ1Nzc5ZDFlMjcx
NDU0YzkuLjQxYTFjYTg4OWM4ODliMmI0Nzg0ODE2NmQxOGVmMDhjMTEzODFiNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0yNDky
LDcgKzI0OTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgICAgIGxvYWRQdHJGcm9tTWV0YWRh
dGEoYnl0ZWNvZGUsIE9wUHV0VG9TY29wZTo6TWV0YWRhdGE6Om9mZnNldE9mU3RydWN0dXJlKCks
IHNjcmF0Y2hHUFIxKTsKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJQYXlsb2Fk
KHNjb3BlLCBzY29wZUdQUik7CiAgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0UHRy
KFplcm8sIHNjcmF0Y2hHUFIxKSk7Ci0gICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhzY3JhdGNo
R1BSMSwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUjEpOworICAg
ICAgICAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKHN0cnVjdHVyZUlETWFzayksIHNjcmF0Y2hHUFIx
KTsKICAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBBZGRyZXNzKHNj
b3BlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSMSkpOwogCiAg
ICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCB2YWx1ZUpTUik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBiNjBlM2NiMGUz
YmY1NjM4NzMyZjg1YzBkY2IwN2MzOTZkM2ZkNjhiLi4wZDQ3MTE0MDc4ZTQzMWE4NWQzYmM2NDA0
NmYzMmU4YTM3NzdjOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAKQEAgLTE5Nyw3ICsxOTcsOSBAQCBpbmxpbmUgdm9pZCBTdHJ1Y3R1cmU6OnZhbGlk
YXRlRmxhZ3MoKSB7IH0KIAogU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5
cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgSW5kZXhpbmdUeXBlIGluZGV4aW5n
VHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCiAgICAgOiBKU0NlbGwodm0sIHZtLnN0cnVj
dHVyZVN0cnVjdHVyZS5nZXQoKSkKLSAgICAsIG1fYmxvYihTdHJ1Y3R1cmVJRDo6ZW5jb2RlKHRo
aXMpLCBpbmRleGluZ1R5cGUsIHR5cGVJbmZvKQorICAgICwgbV9jZWxsSGVhZGVySW5kZXhpbmdN
b2RlSW5jbHVkaW5nSGlzdG9yeShpbmRleGluZ1R5cGUpCisgICAgLCBtX2NlbGxIZWFkZXJUeXBl
KHR5cGVJbmZvLnR5cGUoKSkKKyAgICAsIG1fY2VsbEhlYWRlcklubGluZVR5cGVGbGFncyh0eXBl
SW5mby5pbmxpbmVUeXBlRmxhZ3MoKSkKICAgICAsIG1fb3V0T2ZMaW5lVHlwZUZsYWdzKHR5cGVJ
bmZvLm91dE9mTGluZVR5cGVGbGFncygpKQogICAgICwgbV9pbmxpbmVDYXBhY2l0eShpbmxpbmVD
YXBhY2l0eSkKICAgICAsIG1fYml0RmllbGQoMCkKQEAgLTIzOCw2ICsyNDAsOCBAQCBjb25zdCBD
bGFzc0luZm8gU3RydWN0dXJlOjpzX2luZm8gPSB7ICJTdHJ1Y3R1cmUiLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBDUgogCiBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShWTSYgdm0sIENyZWF0aW5n
RWFybHlDZWxsVGFnKQogICAgIDogSlNDZWxsKENyZWF0aW5nRWFybHlDZWxsKQorICAgICwgbV9j
ZWxsSGVhZGVySW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShOb0luZGV4aW5nU2hhcGUpCisg
ICAgLCBtX2NlbGxIZWFkZXJUeXBlKFN0cnVjdHVyZVR5cGUpCiAgICAgLCBtX2lubGluZUNhcGFj
aXR5KDApCiAgICAgLCBtX2JpdEZpZWxkKDApCiAgICAgLCBtX3Byb3RvdHlwZSh2bSwgdGhpcywg
anNOdWxsKCkpCkBAIC0yNjQsNyArMjY4LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZt
LCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKICAgICBzZXRNYXhPZmZzZXQodm0sIGludmFsaWRPZmZz
ZXQpOwogIAogICAgIFR5cGVJbmZvIHR5cGVJbmZvID0gVHlwZUluZm8oU3RydWN0dXJlVHlwZSwg
U3RydWN0dXJlRmxhZ3MpOwotICAgIG1fYmxvYiA9IFN0cnVjdHVyZUlEQmxvYihTdHJ1Y3R1cmVJ
RDo6ZW5jb2RlKHRoaXMpLCAwLCB0eXBlSW5mbyk7CisgICAgbV9jZWxsSGVhZGVySW5saW5lVHlw
ZUZsYWdzID0gdHlwZUluZm8uaW5saW5lVHlwZUZsYWdzKCk7CiAgICAgbV9vdXRPZkxpbmVUeXBl
RmxhZ3MgPSB0eXBlSW5mby5vdXRPZkxpbmVUeXBlRmxhZ3MoKTsKIAogICAgIEFTU0VSVChoYXNS
ZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVydGllc0V4Y2x1ZGluZ1Byb3RvKCkgfHwgIW1fY2xh
c3NJbmZvLT5oYXNTdGF0aWNTZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcygpKTsKQEAgLTI3NCw2
ICsyNzgsMTAgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBDcmVhdGluZ0Vhcmx5Q2Vs
bFRhZykKIAogU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHByZXZpb3Vz
LCBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSogZGVmZXJyZWQpCiAg
ICAgOiBKU0NlbGwodm0sIHZtLnN0cnVjdHVyZVN0cnVjdHVyZS5nZXQoKSkKKyAgICAsIG1fY2Vs
bEhlYWRlckluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkocHJldmlvdXMtPm1fY2VsbEhlYWRl
ckluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkpCisgICAgLCBtX2NlbGxIZWFkZXJUeXBlKHBy
ZXZpb3VzLT5tX2NlbGxIZWFkZXJUeXBlKQorICAgICwgbV9jZWxsSGVhZGVySW5saW5lVHlwZUZs
YWdzKHByZXZpb3VzLT5tX2NlbGxIZWFkZXJJbmxpbmVUeXBlRmxhZ3MpCisgICAgLCBtX291dE9m
TGluZVR5cGVGbGFncyhwcmV2aW91cy0+bV9vdXRPZkxpbmVUeXBlRmxhZ3MpCiAgICAgLCBtX2lu
bGluZUNhcGFjaXR5KHByZXZpb3VzLT5tX2lubGluZUNhcGFjaXR5KQogICAgICwgbV9iaXRGaWVs
ZCgwKQogICAgICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIHByZXZpb3VzLT5tX3Byb3RvdHlwZS5n
ZXQoKSkKQEAgLTMwMCwxMCArMzA4LDYgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHByZXZpb3VzLCBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXQKICAgICBz
ZXRUcmFuc2l0aW9uT2Zmc2V0KHZtLCBpbnZhbGlkT2Zmc2V0KTsKICAgICBzZXRNYXhPZmZzZXQo
dm0sIGludmFsaWRPZmZzZXQpOwogIAotICAgIFR5cGVJbmZvIHR5cGVJbmZvID0gcHJldmlvdXMt
PnR5cGVJbmZvKCk7Ci0gICAgbV9ibG9iID0gU3RydWN0dXJlSURCbG9iKFN0cnVjdHVyZUlEOjpl
bmNvZGUodGhpcyksIHByZXZpb3VzLT5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCksIHR5
cGVJbmZvKTsKLSAgICBtX291dE9mTGluZVR5cGVGbGFncyA9IHR5cGVJbmZvLm91dE9mTGluZVR5
cGVGbGFncygpOwotCiAgICAgQVNTRVJUKCFwcmV2aW91cy0+dHlwZUluZm8oKS5zdHJ1Y3R1cmVJ
c0ltbW9ydGFsKCkpOwogICAgIHNldFByZXZpb3VzSUQodm0sIHByZXZpb3VzKTsKIApAQCAtNTI5
LDcgKzUzMyw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGROZXdQcm9wZXJ0eVRyYW5zaXRp
b24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJvCiAgICAgICAgIHRyYW5zaXRpb24t
PnNldFByb3RlY3RQcm9wZXJ0eVRhYmxlV2hpbGVUcmFuc2l0aW9uaW5nKHRydWUpOwogICAgIH0K
IAotICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5
KHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpICYgfkNvcHlPbldyaXRl
KTsKKyAgICB0cmFuc2l0aW9uLT5tX2NlbGxIZWFkZXJJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0
b3J5ID0gc3RydWN0dXJlLT5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiB+Q29weU9u
V3JpdGU7CiAgICAgdHJhbnNpdGlvbi0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1lID0gcHJvcGVy
dHlOYW1lLnVpZCgpOwogICAgIHRyYW5zaXRpb24tPnNldFRyYW5zaXRpb25Qcm9wZXJ0eUF0dHJp
YnV0ZXMoYXR0cmlidXRlcyk7CiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJh
bnNpdGlvbktpbmQ6OlByb3BlcnR5QWRkaXRpb24pOwpAQCAtNjI2LDcgKzYzMCw3IEBAIFN0cnVj
dHVyZSogU3RydWN0dXJlOjpyZW1vdmVOZXdQcm9wZXJ0eVRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwKICAgICAgICAgdHJhbnNpdGlvbi0+c2V0UHJvdGVjdFByb3BlcnR5
VGFibGVXaGlsZVRyYW5zaXRpb25pbmcodHJ1ZSk7CiAgICAgfQogCi0gICAgdHJhbnNpdGlvbi0+
bV9ibG9iLnNldEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnkoc3RydWN0dXJlLT5pbmRleGlu
Z01vZGVJbmNsdWRpbmdIaXN0b3J5KCkgJiB+Q29weU9uV3JpdGUpOworICAgIHRyYW5zaXRpb24t
Pm1fY2VsbEhlYWRlckluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkgPSBzdHJ1Y3R1cmUtPmlu
ZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSAmIH5Db3B5T25Xcml0ZTsKICAgICB0cmFuc2l0
aW9uLT5tX3RyYW5zaXRpb25Qcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWUudWlkKCk7CiAgICAg
dHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJhbnNpdGlvbktpbmQ6OlByb3BlcnR5RGVs
ZXRpb24pOwogICAgIHRyYW5zaXRpb24tPnNldFByb3BlcnR5VGFibGUodm0sIHN0cnVjdHVyZS0+
dGFrZVByb3BlcnR5VGFibGVPckNsb25lSWZQaW5uZWQodm0pKTsKQEAgLTcyMCw3ICs3MjQsNyBA
QCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcgogICAgICAgICB0cmFuc2l0aW9uLT5zZXRQcm90ZWN0
UHJvcGVydHlUYWJsZVdoaWxlVHJhbnNpdGlvbmluZyh0cnVlKTsKICAgICB9CiAKLSAgICB0cmFu
c2l0aW9uLT5tX2Jsb2Iuc2V0SW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeShzdHJ1Y3R1cmUt
PmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSAmIH5Db3B5T25Xcml0ZSk7CisgICAgdHJh
bnNpdGlvbi0+bV9jZWxsSGVhZGVySW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSA9IHN0cnVj
dHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpICYgfkNvcHlPbldyaXRlOwogICAg
IHRyYW5zaXRpb24tPm1fdHJhbnNpdGlvblByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZS51aWQo
KTsKICAgICB0cmFuc2l0aW9uLT5zZXRUcmFuc2l0aW9uUHJvcGVydHlBdHRyaWJ1dGVzKGF0dHJp
YnV0ZXMpOwogICAgIHRyYW5zaXRpb24tPnNldFRyYW5zaXRpb25LaW5kKFRyYW5zaXRpb25LaW5k
OjpQcm9wZXJ0eUF0dHJpYnV0ZUNoYW5nZSk7CkBAIC04MTgsNyArODIyLDcgQEAgU3RydWN0dXJl
KiBTdHJ1Y3R1cmU6Om5vblByb3BlcnR5VHJhbnNpdGlvblNsb3coVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgVHIKICAgICAKICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUo
dm0sIHN0cnVjdHVyZSk7CiAgICAgdHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQodHJhbnNp
dGlvbktpbmQpOwotICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5KGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkpOworICAgIHRyYW5zaXRpb24t
Pm1fY2VsbEhlYWRlckluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkgPSBpbmRleGluZ01vZGVJ
bmNsdWRpbmdIaXN0b3J5OwogICAgIAogICAgIGlmIChwcmV2ZW50c0V4dGVuc2lvbnModHJhbnNp
dGlvbktpbmQpKQogICAgICAgICB0cmFuc2l0aW9uLT5zZXREaWRQcmV2ZW50RXh0ZW5zaW9ucyh0
cnVlKTsKQEAgLTE1NDYsNyArMTU1MCw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpzZXRCcmFu
ZFRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3ltYm9sKiBiCiAgICAg
dHJhbnNpdGlvbi0+c2V0VHJhbnNpdGlvbktpbmQoVHJhbnNpdGlvbktpbmQ6OlNldEJyYW5kKTsK
IAogICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0TWF5QmVOdWxsKHZt
LCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCkpOwot
ICAgIHRyYW5zaXRpb24tPm1fYmxvYi5zZXRJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KHN0
cnVjdHVyZS0+aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpKTsKKyAgICB0cmFuc2l0aW9u
LT5tX2NlbGxIZWFkZXJJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5ID0gc3RydWN0dXJlLT5p
bmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCk7CiAgICAgdHJhbnNpdGlvbi0+bV90cmFuc2l0
aW9uUHJvcGVydHlOYW1lID0gJmJyYW5kLT51aWQoKTsKICAgICB0cmFuc2l0aW9uLT5zZXRUcmFu
c2l0aW9uUHJvcGVydHlBdHRyaWJ1dGVzKDApOwogICAgIHRyYW5zaXRpb24tPnNldFByb3BlcnR5
VGFibGUodm0sIHN0cnVjdHVyZS0+dGFrZVByb3BlcnR5VGFibGVPckNsb25lSWZQaW5uZWQodm0p
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNzA0NTc5
NjZlMmE0ODkxN2MzMmExNjlmNjBkZDU2Yjg1ZWQ5ODhkMS4uNmQ0YmU2NjY0NDZiMTQ1YzJhNDAw
NGZkN2ExMDIxNTUyNmM3NDNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5o
IgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90
LmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlSURCbG9iLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFy
ZURhdGEuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCIKICNpbmNsdWRl
ICJUaW55Qmxvb21GaWx0ZXIuaCIKQEAgLTE2NSwxNCArMTY0LDEzIEBAIHByaXZhdGU6CiAgICAg
dm9pZCB2YWxpZGF0ZUZsYWdzKCk7CiAKIHB1YmxpYzoKLSAgICBTdHJ1Y3R1cmVJRCBpZCgpIGNv
bnN0IHsgQVNTRVJUKG1fYmxvYi5zdHJ1Y3R1cmVJRCgpID09IFN0cnVjdHVyZUlEOjplbmNvZGUo
dGhpcykpOyByZXR1cm4gbV9ibG9iLnN0cnVjdHVyZUlEKCk7IH0KLSAgICBpbnQzMl90IG9iamVj
dEluaXRpYWxpemF0aW9uQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fYmxvYi5ibG9iRXhjbHVkaW5n
U3RydWN0dXJlSUQoKTsgfQotICAgIGludDY0X3QgaWRCbG9iKCkgY29uc3QgeyByZXR1cm4gbV9i
bG9iLmJsb2IoKTsgfQorICAgIFN0cnVjdHVyZUlEIGlkKCkgY29uc3QgeyByZXR1cm4gU3RydWN0
dXJlSUQ6OmVuY29kZSh0aGlzKTsgfQorICAgIGludDMyX3Qgb2JqZWN0SW5pdGlhbGl6YXRpb25C
bG9iKCkgY29uc3QgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IHVpbnQzMl90
Kj4oJm1fY2VsbEhlYWRlckluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkpOyB9CisgICAgaW50
NjRfdCBpZEJsb2IoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob2JqZWN0
SW5pdGlhbGl6YXRpb25CbG9iKCkpIDw8IDMyIHwgaWQoKS5iaXRzKCk7IH0KIAogICAgIGJvb2wg
aXNQcm94eSgpIGNvbnN0CiAgICAgewotICAgICAgICBKU1R5cGUgdHlwZSA9IG1fYmxvYi50eXBl
KCk7Ci0gICAgICAgIHJldHVybiB0eXBlID09IFB1cmVGb3J3YXJkaW5nUHJveHlUeXBlIHx8IHR5
cGUgPT0gUHJveHlPYmplY3RUeXBlOworICAgICAgICByZXR1cm4gbV9jZWxsSGVhZGVyVHlwZSA9
PSBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSB8fCBtX2NlbGxIZWFkZXJUeXBlID09IFByb3h5T2Jq
ZWN0VHlwZTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wU3RhdGlzdGljcygpOwpAQCAt
MjYzLDIyICsyNjEsMjIgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICAvLyBUeXBlIGFjY2Vz
c29ycy4KLSAgICBUeXBlSW5mbyB0eXBlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fYmxvYi50eXBl
SW5mbyhtX291dE9mTGluZVR5cGVGbGFncyk7IH0KKyAgICBUeXBlSW5mbyB0eXBlSW5mbygpIGNv
bnN0IHsgcmV0dXJuIFR5cGVJbmZvKG1fY2VsbEhlYWRlclR5cGUsIG1fY2VsbEhlYWRlcklubGlu
ZVR5cGVGbGFncywgbV9vdXRPZkxpbmVUeXBlRmxhZ3MpOyB9CiAgICAgYm9vbCBpc09iamVjdCgp
IGNvbnN0IHsgcmV0dXJuIHR5cGVJbmZvKCkuaXNPYmplY3QoKTsgfQogcHJvdGVjdGVkOgogICAg
IC8vIFlvdSBwcm9iYWJseSB3YW50IHR5cGVJbmZvKCkudHlwZSgpCiAgICAgSlNUeXBlIHR5cGUo
KSB7IHJldHVybiBKU0NlbGw6OnR5cGUoKTsgfQogcHVibGljOgogCi0gICAgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvYi5pbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5KCkgJiBBbGxXcml0YWJsZUFycmF5VHlwZXM7IH0KLSAgICBJbmRleGluZ1R5cGUg
aW5kZXhpbmdNb2RlKCkgY29uc3QgIHsgcmV0dXJuIG1fYmxvYi5pbmRleGluZ01vZGVJbmNsdWRp
bmdIaXN0b3J5KCkgJiBBbGxBcnJheVR5cGVzOyB9CisgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5n
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSAmIEFs
bFdyaXRhYmxlQXJyYXlUeXBlczsgfQorICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGUoKSBj
b25zdCAgeyByZXR1cm4gaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSgpICYgQWxsQXJyYXlU
eXBlczsgfQogICAgIERlcGVuZGVuY3kgZmVuY2VkSW5kZXhpbmdNb2RlKEluZGV4aW5nVHlwZSYg
aW5kZXhpbmdUeXBlKQogICAgIHsKLSAgICAgICAgRGVwZW5kZW5jeSBkZXBlbmRlbmN5ID0gbV9i
bG9iLmZlbmNlZEluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoaW5kZXhpbmdUeXBlKTsKKyAg
ICAgICAgRGVwZW5kZW5jeSBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeTo6bG9hZEFuZEZlbmNlKCZt
X2NlbGxIZWFkZXJJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5LCBpbmRleGluZ1R5cGUpOwog
ICAgICAgICBpbmRleGluZ1R5cGUgJj0gQWxsQXJyYXlUeXBlczsKICAgICAgICAgcmV0dXJuIGRl
cGVuZGVuY3k7CiAgICAgfQotICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGVJbmNsdWRpbmdI
aXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9ibG9iLmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rv
cnkoKTsgfQorICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9jZWxsSGVhZGVySW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeTsg
fQogICAgICAgICAKICAgICBpbmxpbmUgYm9vbCBtYXlJbnRlcmNlcHRJbmRleGVkQWNjZXNzZXMo
KSBjb25zdDsKICAgICAKQEAgLTU1NywxMSArNTU1LDYgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiBtX2NsYXNzSW5mbzsgfQogCi0g
ICAgc3RhdGljIHB0cmRpZmZfdCBzdHJ1Y3R1cmVJRE9mZnNldCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZSwgbV9ibG9iKSArIFN0cnVjdHVyZUlEQmxv
Yjo6c3RydWN0dXJlSURPZmZzZXQoKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgcHRyZGlmZl90IHBy
b3RvdHlwZU9mZnNldCgpCiAgICAgewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0
cnVjdHVyZSwgbV9wcm90b3R5cGUpOwpAQCAtNTg0LDcgKzU3Nyw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBwdHJkaWZmX3QgaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeU9mZnNldCgpCiAg
ICAgewotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZSwgbV9ibG9iKSAr
IFN0cnVjdHVyZUlEQmxvYjo6aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeU9mZnNldCgpOwor
ICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZSwgbV9jZWxsSGVhZGVySW5k
ZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJk
aWZmX3QgcHJvcGVydHlUYWJsZVVuc2FmZU9mZnNldCgpCkBAIC04NjAsOCArODUzLDEyIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9y
Tm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIHByb3Blcmx5
IGFsaWduZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgJ1N0cnVjdHVyZScKLSAgICAvLyBwYXJ0
IG9mIHRoZSBvYmplY3QuCi0gICAgU3RydWN0dXJlSURCbG9iIG1fYmxvYjsKKyAgICAvLyBwYXJ0
IG9mIHRoZSBvYmplY3QuIEFuZCBuZWVkIHRvIG1hdGNoIHRoZSBvcmRlciBvZiB0aGUgZXF1aXZh
bGVudCBwcm9wZXJ0aWVzIGluCisgICAgLy8gSlNDZWxsLgorICAgIEluZGV4aW5nVHlwZSBtX2Nl
bGxIZWFkZXJJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OworICAgIGNvbnN0IEpTVHlwZSBt
X2NlbGxIZWFkZXJUeXBlOworICAgIFR5cGVJbmZvOjpJbmxpbmVUeXBlRmxhZ3MgbV9jZWxsSGVh
ZGVySW5saW5lVHlwZUZsYWdzOworICAgIGNvbnN0IENlbGxTdGF0ZSBtX2NlbGxIZWFkZXJEZWZh
dWx0Q2VsbFN0YXRlIHsgQ2VsbFN0YXRlOjpEZWZpbml0ZWx5V2hpdGUgfTsKICAgICBUeXBlSW5m
bzo6T3V0T2ZMaW5lVHlwZUZsYWdzIG1fb3V0T2ZMaW5lVHlwZUZsYWdzOwogCiAgICAgdWludDhf
dCBtX2lubGluZUNhcGFjaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlSURCbG9iLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVJREJsb2IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRhYzE1Mjkx
ODU0ZjRjNzk3MDgwZWI5MWM5YWRmMzliYjhjN2Q1Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmVJREJsb2IuaAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ2VsbFN0YXRlLmgiCi0jaW5jbHVkZSAi
SW5kZXhpbmdUeXBlLmgiCi0jaW5jbHVkZSAiSlNUeXBlSW5mby5oIgotI2luY2x1ZGUgIlN0cnVj
dHVyZUlELmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBTdHJ1Y3R1cmVJREJsb2Igewot
ICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7Ci1wdWJsaWM6Ci0gICAgU3Ry
dWN0dXJlSURCbG9iKCkgPSBkZWZhdWx0OwotCi0gICAgU3RydWN0dXJlSURCbG9iKFN0cnVjdHVy
ZUlEIHN0cnVjdHVyZUlELCBJbmRleGluZ1R5cGUgaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9y
eSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvKQotICAgIHsKLSAgICAgICAgdS5maWVsZHMuc3Ry
dWN0dXJlSUQgPSBzdHJ1Y3R1cmVJRDsKLSAgICAgICAgdS5maWVsZHMuaW5kZXhpbmdNb2RlSW5j
bHVkaW5nSGlzdG9yeSA9IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rvcnk7Ci0gICAgICAgIHUu
ZmllbGRzLnR5cGUgPSB0eXBlSW5mby50eXBlKCk7Ci0gICAgICAgIHUuZmllbGRzLmlubGluZVR5
cGVGbGFncyA9IHR5cGVJbmZvLmlubGluZVR5cGVGbGFncygpOwotICAgICAgICB1LmZpZWxkcy5k
ZWZhdWx0Q2VsbFN0YXRlID0gQ2VsbFN0YXRlOjpEZWZpbml0ZWx5V2hpdGU7Ci0gICAgfQotCi0g
ICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgU3RydWN0dXJlSURCbG9iJiBvdGhlcikgeyB1LmRvdWJs
ZVdvcmQgPSBvdGhlci51LmRvdWJsZVdvcmQ7IH0KLSAgICAKLSAgICBTdHJ1Y3R1cmVJRCBzdHJ1
Y3R1cmVJRCgpIGNvbnN0IHsgcmV0dXJuIHUuZmllbGRzLnN0cnVjdHVyZUlEOyB9Ci0gICAgSW5k
ZXhpbmdUeXBlIGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiB1
LmZpZWxkcy5pbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OyB9Ci0gICAgRGVwZW5kZW5jeSBm
ZW5jZWRJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KEluZGV4aW5nVHlwZSYgaW5kZXhpbmdU
eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIERlcGVuZGVuY3k6OmxvYWRBbmRGZW5jZSgmdS5m
aWVsZHMuaW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeSwgaW5kZXhpbmdUeXBlKTsKLSAgICB9
Ci0gICAgdm9pZCBzZXRJbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KEluZGV4aW5nVHlwZSBp
bmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5KSB7IHUuZmllbGRzLmluZGV4aW5nTW9kZUluY2x1
ZGluZ0hpc3RvcnkgPSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OyB9Ci0gICAgSlNUeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiB1LmZpZWxkcy50eXBlOyB9Ci0gICAgVHlwZUluZm86Oklu
bGluZVR5cGVGbGFncyBpbmxpbmVUeXBlRmxhZ3MoKSBjb25zdCB7IHJldHVybiB1LmZpZWxkcy5p
bmxpbmVUeXBlRmxhZ3M7IH0KLSAgICAKLSAgICBUeXBlSW5mbyB0eXBlSW5mbyhUeXBlSW5mbzo6
T3V0T2ZMaW5lVHlwZUZsYWdzIG91dE9mTGluZVR5cGVGbGFncykgY29uc3QgeyByZXR1cm4gVHlw
ZUluZm8odHlwZSgpLCBpbmxpbmVUeXBlRmxhZ3MoKSwgb3V0T2ZMaW5lVHlwZUZsYWdzKTsgfQot
ICAgIAotICAgIGludDMyX3QgYmxvYkV4Y2x1ZGluZ1N0cnVjdHVyZUlEKCkgY29uc3QgeyByZXR1
cm4gdS53b3Jkcy53b3JkMjsgfQotICAgIGludDY0X3QgYmxvYigpIGNvbnN0IHsgcmV0dXJuIHUu
ZG91YmxlV29yZDsgfQotICAgIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgc3RydWN0dXJlSURPZmZz
ZXQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVJREJs
b2IsIHUuZmllbGRzLnN0cnVjdHVyZUlEKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgcHRyZGlmZl90
IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVJREJsb2IsIHUuZmllbGRzLmluZGV4aW5nTW9k
ZUluY2x1ZGluZ0hpc3RvcnkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICB1bmlvbiBEYXRhIHsK
LSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVtb3Zl
IHRoaXMgc2luY2UgdGhlIHN0cnVjdHVyZUlEIGNhbiBiZSBkaXJlY3RseSBjb21wdXRlZCBmcm9t
IHRoZSBTdHJ1Y3R1cmUqCi0gICAgICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRDsKLSAg
ICAgICAgICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGVJbmNsdWRpbmdIaXN0b3J5OwotICAg
ICAgICAgICAgSlNUeXBlIHR5cGU7Ci0gICAgICAgICAgICBUeXBlSW5mbzo6SW5saW5lVHlwZUZs
YWdzIGlubGluZVR5cGVGbGFnczsKLSAgICAgICAgICAgIENlbGxTdGF0ZSBkZWZhdWx0Q2VsbFN0
YXRlOwotICAgICAgICB9IGZpZWxkczsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIGlu
dDMyX3Qgd29yZDE7Ci0gICAgICAgICAgICBpbnQzMl90IHdvcmQyOwotICAgICAgICB9IHdvcmRz
OwotICAgICAgICBpbnQ2NF90IGRvdWJsZVdvcmQ7Ci0KLSAgICAgICAgRGF0YSgpIHsgZG91Ymxl
V29yZCA9IDB4YmJhZGJlZWY7IH0KLSAgICB9OwotCi0gICAgRGF0YSB1OwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmgKaW5kZXggNTNiODNkMDRhNDZhMzMzNWM4ZWRiZWM0ZmRiZGM1YmUyNjE4ZDc5
Yy4uMzRlZWRhMjVmZWUyODU5ZGVlMjdhZjA5YzIyNWQzY2I3MDYzNzIxNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaApAQCAtMjU2LDcg
KzI1Niw3IEBAIGlubGluZSBib29sIFN0cnVjdHVyZTo6aGFzSW5kZXhpbmdIZWFkZXIoY29uc3Qg
SlNDZWxsKiBjZWxsKSBjb25zdAogICAgIGlmIChoYXNJbmRleGVkUHJvcGVydGllcyhpbmRleGlu
Z1R5cGUoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIGlmICghaXNUeXBlZFZp
ZXcodHlwZWRBcnJheVR5cGVGb3JUeXBlKG1fYmxvYi50eXBlKCkpKSkKKyAgICBpZiAoIWlzVHlw
ZWRWaWV3KHR5cGVkQXJyYXlUeXBlRm9yVHlwZShtX2NlbGxIZWFkZXJUeXBlKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNBcnJheUJ1ZmZlclZp
ZXcqPihjZWxsKS0+bW9kZSgpID09IFdhc3RlZnVsVHlwZWRBcnJheTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3RvcklubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3RvcklubGluZXMuaAppbmRleCBkOWY5NTQ2Yzdm
YTA4ODE4YjkwNDU2ZmY0OTlhNDY0MDk4NzljZTdlLi44YzIyMWE2ZjBhYjcyNWJkZDA0MjBlOTdl
MmEzYjI5OWM3NDRjMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Vk1JbnNwZWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZN
SW5zcGVjdG9ySW5saW5lcy5oCkBAIC00NSw3ICs0NSw3IEBAIGJvb2wgVk1JbnNwZWN0b3I6OnZl
cmlmeUNlbGxTaXplKFZNJiB2bSwgSlNDZWxsKiBjZWxsLCBzaXplX3QgYWxsb2NhdG9yQ2VsbFNp
emUpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjZWxsLT5zdHJ1Y3R1cmUodm0pOwogICAg
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKTsKICAg
ICBKU1R5cGUgY2VsbFR5cGUgPSBjZWxsLT50eXBlKCk7Ci0gICAgQVVESVRfVkVSSUZZKGFjdGlv
biwgdmVyaWZpZXIsIGNlbGxUeXBlID09IHN0cnVjdHVyZS0+bV9ibG9iLnR5cGUoKSwgY2VsbCwg
Y2VsbFR5cGUsIHN0cnVjdHVyZS0+bV9ibG9iLnR5cGUoKSk7CisgICAgQVVESVRfVkVSSUZZKGFj
dGlvbiwgdmVyaWZpZXIsIGNlbGxUeXBlID09IHN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCks
IGNlbGwsIGNlbGxUeXBlLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpKTsKIAogICAgIHNp
emVfdCBzaXplID0gY2VsbFNpemUodm0sIGNlbGwpOwogICAgIEFVRElUX1ZFUklGWShhY3Rpb24s
IHZlcmlmaWVyLCBzaXplIDw9IGFsbG9jYXRvckNlbGxTaXplLCBjZWxsLCBjZWxsVHlwZSwgc2l6
ZSwgYWxsb2NhdG9yQ2VsbFNpemUsIGNsYXNzSW5mby0+c3RhdGljQ2xhc3NTaXplKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>