<?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>232652</bug_id>
          
          <creation_ts>2021-11-02 19:38:33 -0700</creation_ts>
          <short_desc>[JSC] Clean up StructureStubInfo initialization</short_desc>
          <delta_ts>2021-11-09 15:04:00 -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>232907</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811364</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-02 19:38:33 -0700</bug_when>
    <thetext>[JSC] Clean up StructureStubInfo initialization</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811366</commentid>
    <comment_count>1</comment_count>
      <attachid>443164</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-02 19:40:29 -0700</bug_when>
    <thetext>Created attachment 443164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811370</commentid>
    <comment_count>2</comment_count>
      <attachid>443164</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-02 19:47:55 -0700</bug_when>
    <thetext>Comment on attachment 443164
Patch

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

&gt; Source/WTF/wtf/FixedVector.h:68
&gt; +        : m_storage(std::forward&lt;Container&gt;(other))

Why forward?

&gt; Source/WTF/wtf/FixedVector.h:74
&gt; +        m_storage = std::forward&lt;Container&gt;(other);

Why forward?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811499</commentid>
    <comment_count>3</comment_count>
      <attachid>443205</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 09:53:14 -0700</bug_when>
    <thetext>Created attachment 443205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811501</commentid>
    <comment_count>4</comment_count>
      <attachid>443164</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 09:56:09 -0700</bug_when>
    <thetext>Comment on attachment 443164
Patch

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

&gt;&gt; Source/WTF/wtf/FixedVector.h:68
&gt;&gt; +        : m_storage(std::forward&lt;Container&gt;(other))
&gt; 
&gt; Why forward?

Since this Container can become rvalue and lvalue (using Container&amp;&amp; templatized value in the parameter).
std::forward handles both cases. https://en.cppreference.com/w/cpp/utility/forward

&gt;&gt; Source/WTF/wtf/FixedVector.h:74
&gt;&gt; +        m_storage = std::forward&lt;Container&gt;(other);
&gt; 
&gt; Why forward?

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811523</commentid>
    <comment_count>5</comment_count>
      <attachid>443211</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 10:44:43 -0700</bug_when>
    <thetext>Created attachment 443211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811580</commentid>
    <comment_count>6</comment_count>
      <attachid>443221</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 12:13:15 -0700</bug_when>
    <thetext>Created attachment 443221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811589</commentid>
    <comment_count>7</comment_count>
      <attachid>443226</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 12:37:15 -0700</bug_when>
    <thetext>Created attachment 443226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811640</commentid>
    <comment_count>8</comment_count>
      <attachid>443235</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 13:42:59 -0700</bug_when>
    <thetext>Created attachment 443235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811717</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-03 17:05:48 -0700</bug_when>
    <thetext>Committed r285246 (243861@main): &lt;https://commits.webkit.org/243861@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811718</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-03 17:06:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/84998450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813353</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-09 15:04:00 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 232907</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443164</attachid>
            <date>2021-11-02 19:40:29 -0700</date>
            <delta_ts>2021-11-02 19:55:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211102194028.patch</filename>
            <type>text/plain</type>
            <size>18048</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi45MDdkNjE5MmMzZTQ3YWUw
YmVhYzYzODY2ODQ1NDA5Mzc1YTcyOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLjNmMzkyODQwMDRhNzljYWZmMGQ5NGI1MDg1OTI0YjUyZDc4
M2ZiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTEtMDIgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZl
Y3RvclR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVkQ29weSk6CisKIDIwMjEtMTEtMDIgIERh
dmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBNaW5vciBj
bGVhbi11cCBmb3IgZm9ybWF0LXJlbGF0ZWQgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5
MTg0MjYyMzQ1OTI3ZWE2ZGYuLjJlZGZkODJkOTk3ZTA2ODU2Yjk3NDA3YWU2ZTg0Mzc1ZjQzMmQ5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC03ODIsNyArNzgyLDcgQEAgdm9pZCBDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxp
bmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENvZGUpCiAKICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5pc0VtcHR5KCkpOwogICAgICAgICBqaXRE
YXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0b3I8dm9pZCo+KGppdENvZGUtPm1fY29u
c3RhbnRQb29sLnNpemUoKSk7Ci0gICAgICAgIGppdERhdGEubV9zdHViSW5mb3MgPSBGaXhlZFZl
Y3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5zaXpl
KCkpOworICAgICAgICBqaXREYXRhLm1fc3R1YkluZm9zID0gRml4ZWRWZWN0b3I8U3RydWN0dXJl
U3R1YkluZm8+KGppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3MpOwogICAgICAgICBqaXREYXRh
Lm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVjdG9yPENhbGxMaW5rSW5mbz4oaml0Q29kZS0+bV91
bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0
Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGF1dG8gZW50
cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9vbC5hdChpKTsKQEAgLTgwMCw5ICs4MDAsNyBAQCB2
b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUoUmVmPEJhc2VsaW5l
SklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbzogewogICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW50cnkucG9pbnRlcigpKTsK
LSAgICAgICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJ
bmZvID0gaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvc1tpbmRleF07CiAgICAgICAgICAgICAg
ICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gaml0RGF0YS5tX3N0dWJJbmZvc1tpbmRl
eF07Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1YkluZm8pOwogICAgICAgICAgICAgICAgIGpp
dERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSAmc3R1YkluZm87CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA3N2M5YjhjNzJiMTQ5MDVkMTQ4ODJk
NWQ4NTQzMzQ4Nzc5ZTE3MTM5Li5kOTMzZWUwMzE1ZjMxNjc0YmIzZWM1MGUzMzk1ZWNhNTExMmQ1
MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAKQEAgLTQxNSwxNCArNDE1LDEzIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBT
dHJ1Y3R1cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJh
c2UmCiAgICAgbV9jYWNoZVR5cGUgPSBuZXdDYWNoZVR5cGU7CiB9CiAKLXZvaWQgU3RydWN0dXJl
U3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxv
Y2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvKQorU3RydWN0
dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKGNvbnN0IFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8mIHVubGlua2VkU3R1YkluZm8pCisgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyh1bmxpbmtl
ZFN0dWJJbmZvLmFjY2Vzc1R5cGUsIENvZGVPcmlnaW4odW5saW5rZWRTdHViSW5mby5ieXRlY29k
ZUluZGV4KSkKIHsKLSAgICBhY2Nlc3NUeXBlID0gdW5saW5rZWRTdHViSW5mby5hY2Nlc3NUeXBl
OwogICAgIHN0YXJ0ID0gdW5saW5rZWRTdHViSW5mby5zdGFydDsKICAgICBkb25lTG9jYXRpb24g
PSB1bmxpbmtlZFN0dWJJbmZvLmRvbmVMb2NhdGlvbjsKICAgICBzbG93UGF0aFN0YXJ0TG9jYXRp
b24gPSB1bmxpbmtlZFN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICBjYWxsU2l0
ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KHVubGlua2VkU3R1YkluZm8uYnl0
ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwotICAgIGNvZGVPcmlnaW4gPSBDb2RlT3JpZ2luKHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAgbV9jb2RlUHRyID0gc2xvd1BhdGhTdGFy
dExvY2F0aW9uOwogICAgIHByb3BlcnR5SXNJbnQzMiA9IHVubGlua2VkU3R1YkluZm8ucHJvcGVy
dHlJc0ludDMyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oCmluZGV4IDA0N2I0ZWJmMGVkMWEwNzg3MGI1MDY1NmEyZjZkYzM0NGVl
OGVhNDYuLmU1ZjYyN2YzYTIzYmYzYTdmYTRlOTEwZTc4NTEyMzYyMGIyYjk4MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBA
IC0xMDMsOSArMTAzLDcgQEAgY2xhc3MgU3RydWN0dXJlU3R1YkluZm8gewogICAgICAgICByZWdz
LnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIH0KIAotICAgIFN0cnVjdHVyZVN0dWJJbmZv
KCkKLSAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NUeXBlOjpHZXRCeUlkLCB7IH0p
Ci0gICAgeyB9CisgICAgU3RydWN0dXJlU3R1YkluZm8oY29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVT
dHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyk7CiAKICAgICB+U3RydWN0dXJlU3R1YkluZm8oKTsK
IApAQCAtMTIyLDggKzEyMCw2IEBAIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICB2b2lk
IGRlcmVmKCk7CiAgICAgdm9pZCBhYm91dFRvRGllKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVG
cm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvJik7Ci0KICAgICBERUNMQVJFX1ZJU0lUX0FHR1JFR0FURTsKIAogICAgIC8vIENo
ZWNrIGlmIHRoZSBzdHViIGhhcyB3ZWFrIHJlZmVyZW5jZXMgdGhhdCBhcmUgZGVhZC4gSWYgaXQg
ZG9lcywgdGhlbiBpdCByZXNldHMgaXRzZWxmLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmlu
ZGV4IDkyOTQyNDYwNzM0MDA5MTFiNmMzNTdjNzhhNGEwYzZhNzRlOWFhZDQuLjlmNGYyMjk4ZmI0
NGQwOTNhMzc5YTIwMzgzNzAwMTkxM2E0OTI5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKQEAgLTEwMDcsMTMgKzEwMDcsOSBAQCB2b2lkIEpJVDo6bGluaygpCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrID0gcGF0Y2hCdWZmZXIu
bG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihtX2FyaXR5Q2hlY2spOwogICAgIG1faml0Q29kZSA9
IGFkb3B0UmVmKCpuZXcgQmFzZWxpbmVKSVRDb2RlKHJlc3VsdCwgd2l0aEFyaXR5Q2hlY2spKTsK
IAotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxzID0gRml4ZWRWZWN0b3I8VW5saW5rZWRD
YWxsTGlua0luZm8+KG1fdW5saW5rZWRDYWxscy5zaXplKCkpOwotICAgIGlmIChtX2ppdENvZGUt
Pm1fdW5saW5rZWRDYWxscy5zaXplKCkpCi0gICAgICAgIHN0ZDo6bW92ZShtX3VubGlua2VkQ2Fs
bHMuYmVnaW4oKSwgbV91bmxpbmtlZENhbGxzLmVuZCgpLCBtX2ppdENvZGUtPm1fdW5saW5rZWRD
YWxscy5iZWdpbigpKTsKKyAgICBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscyA9IFdURk1vdmUo
bV91bmxpbmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUtPm1fZXZhbENhbGxMaW5rSW5mb3MgPSBX
VEZNb3ZlKG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZFN0
dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8+KG1fdW5saW5r
ZWRTdHViSW5mb3Muc2l6ZSgpKTsKLSAgICBpZiAobV9qaXRDb2RlLT5tX3VubGlua2VkU3R1Yklu
Zm9zLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1fdW5saW5rZWRTdHViSW5mb3MuYmVnaW4o
KSwgbV91bmxpbmtlZFN0dWJJbmZvcy5lbmQoKSwgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1Yklu
Zm9zLmJlZ2luKCkpOworICAgIG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyA9IFdURk1v
dmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgbV9qaXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJs
ZXMgPSBXVEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX3N0cmlu
Z1N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAg
ICAgbV9qaXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRDb2RlTWFwQnVpbGRlci5maW5hbGl6ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYv
d3RmL0ZpeGVkVmVjdG9yLmgKaW5kZXggMzI4Zjk4MTUxMGJmN2I2NGY3MzBmMWFiYjhlZTExMDgz
Mzc2YzFkNC4uYzhhODEyMGM1YmFjZGQ4YTM0MDE3YzY3OGE4OTFlZTM5NTIxOTMxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
aXhlZFZlY3Rvci5oCkBAIC02MywyNyArNjMsMTUgQEAgY2xhc3MgRml4ZWRWZWN0b3IgewogICAg
ICAgICA6IG1fc3RvcmFnZShzaXplKQogICAgIHsgfQogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgZXhwbGljaXQgRml4
ZWRWZWN0b3IoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+
JiBvdGhlcikKLSAgICAgICAgOiBtX3N0b3JhZ2Uob3RoZXIpCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFp
bmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIGV4cGxpY2l0IEZpeGVkVmVjdG9yKENvbnRhaW5lciYm
IG90aGVyKQorICAgICAgICA6IG1fc3RvcmFnZShzdGQ6OmZvcndhcmQ8Q29udGFpbmVyPihvdGhl
cikpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBGaXhlZFZlY3RvciYgb3BlcmF0b3I9KGNvbnN0IFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPiYgb3RoZXIpCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVn
cmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRv
cj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAgICAgICBtX3N0b3JhZ2UgPSBvdGhlcjsK
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IEZpeGVk
VmVjdG9yKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVy
KQotICAgICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKG90aGVyKSkKLSAgICB7IH0KLQotICAgIHRl
bXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgot
ICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgewotICAgICAgICBtX3N0b3JhZ2UgPSBXVEZNb3Zl
KG90aGVyKTsKKyAgICAgICAgbV9zdG9yYWdlID0gc3RkOjpmb3J3YXJkPENvbnRhaW5lcj4ob3Ro
ZXIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJh
eS5oCmluZGV4IDUwMzMyNTM0MDQwNjJjNDZlNGI1ZTg1MGJlNjYwNjliMDdjNDc5YTYuLmU4NWQw
MGYxYjk1YTgwZWQ5NWQ4NTQ5MDMxOTcyNTRlYzY3NmY0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRB
cnJheS5oCkBAIC05MywzMiArOTMsMzIgQEAgY2xhc3MgUmVmQ291bnRlZEFycmF5IHsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBleHBsaWNpdCBSZWZDb3VudGVk
QXJyYXkoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBv
dGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8
IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgZXhwbGlj
aXQgUmVmQ291bnRlZEFycmF5KGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKQogICAgIHsKLSAg
ICAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkgeworICAgICAgICB1bnNpZ25lZCBzaXplID0gc3Rk
OjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6ZSkgewogICAgICAgICAgICAgUHRy
VHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEo
b3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7Ci0gICAgICAgIFZlY3RvclR5cGVPcGVy
YXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwg
ZGF0YSk7CisgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29w
eShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5kKGNvbnRhaW5lciksIGRhdGEpOwogICAg
IH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZs
b3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50ZWRBcnJheShWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWlu
ZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfdjxDb250YWluZXI+LCBib29sPiA9IHRy
dWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KENvbnRhaW5lciYmIGNvbnRhaW5lcikK
ICAgICB7Ci0gICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVy
PiB2ZWN0b3IoV1RGTW92ZShvdGhlcikpOwotICAgICAgICBpZiAodmVjdG9yLmlzRW1wdHkoKSkg
eworICAgICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAg
IGlmICghc2l6ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51
bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0
YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEodmVjdG9yLnNpemUoKSk7CisgICAgICAgIFQq
IGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICBtX2RhdGEg
PSBkYXRhOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWN0b3Iu
c2l6ZSgpOyArK2luZGV4KQotICAgICAgICAgICAgbmV3IChkYXRhICsgaW5kZXgpIFQoV1RGTW92
ZSh2ZWN0b3JbaW5kZXhdKSk7CisgICAgICAgIHN0ZDo6dW5pbml0aWFsaXplZF9tb3ZlKHN0ZDo6
YmVnaW4oY29udGFpbmVyKSwgc3RkOjplbmQoY29udGFpbmVyKSwgZGF0YSk7CiAgICAgfQogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE90aGVyVHJhaXRzID0gUHRyVHJhaXRzPgpAQCAtMTMy
LDE2ICsxMzIsMTcgQEAgY2xhc3MgUmVmQ291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIGFz
c2lnbjxQdHJUcmFpdHM+KG90aGVyKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBSZWZDb3VudGVkQXJy
YXkmIG9wZXJhdG9yPShjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFu
ZGxlcj4mIG90aGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lciwgdHlwZW5hbWUg
PSBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPj4+CisgICAg
UmVmQ291bnRlZEFycmF5JiBvcGVyYXRvcj0oY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpCiAg
ICAgewogICAgICAgICBUKiBvbGREYXRhID0gZGF0YSgpOwotICAgICAgICBpZiAob3RoZXIuaXNF
bXB0eSgpKQorICAgICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7Cisg
ICAgICAgIGlmICghc2l6ZSkKICAgICAgICAgICAgIFB0clRyYWl0czo6ZXhjaGFuZ2UobV9kYXRh
LCBudWxscHRyKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBUKiBkYXRhID0gYWxsb2Nh
dGVVbmluaXRpYWxpemVkRGF0YShvdGhlci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9
IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBk
YXRhOwotICAgICAgICAgICAgVmVjdG9yVHlwZU9wZXJhdGlvbnM8VD46OnVuaW5pdGlhbGl6ZWRD
b3B5KG90aGVyLmJlZ2luKCksIG90aGVyLmVuZCgpLCBkYXRhKTsKKyAgICAgICAgICAgIFZlY3Rv
clR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5l
ciksIHN0ZDo6ZW5kKGNvbnRhaW5lciksIGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIGlmICgh
b2xkRGF0YSkKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKQEAgLTE1NiwxOCArMTU3LDE3IEBA
IGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAK
LSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFu
ZGxlcj4KLSAgICBSZWZDb3VudGVkQXJyYXkmIG9wZXJhdG9yPShWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+
ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfdjxDb250YWluZXI+LCBib29sPiA9IHRydWU+
CisgICAgUmVmQ291bnRlZEFycmF5JiBvcGVyYXRvcj0oQ29udGFpbmVyJiYgY29udGFpbmVyKQog
ICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+
IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7CiAgICAgICAgIFQqIG9sZERhdGEgPSBkYXRhKCk7Ci0g
ICAgICAgIGlmICh2ZWN0b3IuaXNFbXB0eSgpKQorICAgICAgICB1bnNpZ25lZCBzaXplID0gc3Rk
OjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6ZSkKICAgICAgICAgICAgIFB0clRy
YWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YSh2ZWN0b3Iuc2l6ZSgpKTsK
KyAgICAgICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwog
ICAgICAgICAgICAgbV9kYXRhID0gZGF0YTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSAwOyBpbmRleCA8IHZlY3Rvci5zaXplKCk7ICsraW5kZXgpCi0gICAgICAgICAgICAgICAg
bmV3IChkYXRhICsgaW5kZXgpIFQoV1RGTW92ZSh2ZWN0b3JbaW5kZXhdKSk7CisgICAgICAgICAg
ICBzdGQ6OnVuaW5pdGlhbGl6ZWRfbW92ZShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5k
KGNvbnRhaW5lciksIGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIGlmICghb2xkRGF0YSkKICAg
ICAgICAgICAgIHJldHVybiAqdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rv
ci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5kZXggYzRjZGZiNGNjNWYyNzM0YjdhNmFj
ZWU5MWU5NzljOWMxYjg2OWJiOC4uOGM2ODJlYjk2MDk1Nzk3NzUxZWZmZGQ4MTlmYjkxOTVmMGQx
NTE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvVmVjdG9yLmgKQEAgLTE2Myw4ICsxNjMsOCBAQCBzdHJ1Y3QgVmVjdG9yQ29waWVyOwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBWZWN0b3JDb3BpZXI8ZmFsc2UsIFQ+CiB7Ci0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KLSAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29w
eShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVSogZHN0KQorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIElucHV0SXRlcmF0b3IsIHR5cGVuYW1lIFU+CisgICAgc3RhdGljIHZvaWQgdW5pbml0
aWFsaXplZENvcHkoSW5wdXRJdGVyYXRvciBzcmMsIElucHV0SXRlcmF0b3Igc3JjRW5kLCBVKiBk
c3QpCiAgICAgewogICAgICAgICB3aGlsZSAoc3JjICE9IHNyY0VuZCkgewogICAgICAgICAgICAg
bmV3IChOb3ROdWxsLCBkc3QpIFUoKnNyYyk7CkBAIC0xODEsOCArMTgxLDggQEAgc3RydWN0IFZl
Y3RvckNvcGllcjx0cnVlLCBUPgogICAgIHsKICAgICAgICAgbWVtY3B5KHN0YXRpY19jYXN0PHZv
aWQqPihkc3QpLCBzdGF0aWNfY2FzdDx2b2lkKj4oY29uc3RfY2FzdDxUKj4oc3JjKSksIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihzcmMpKTsKICAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KLSAgICBzdGF0
aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwg
VSogZHN0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElucHV0SXRlcmF0b3IsIHR5cGVuYW1lIFU+
CisgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoSW5wdXRJdGVyYXRvciBzcmMsIElu
cHV0SXRlcmF0b3Igc3JjRW5kLCBVKiBkc3QpCiAgICAgewogICAgICAgICBWZWN0b3JDb3BpZXI8
ZmFsc2UsIFQ+Ojp1bmluaXRpYWxpemVkQ29weShzcmMsIHNyY0VuZCwgZHN0KTsKICAgICB9CkBA
IC0yNjUsNyArMjY1LDggQEAgc3RydWN0IFZlY3RvclR5cGVPcGVyYXRpb25zCiAgICAgICAgIFZl
Y3Rvck1vdmVyPFZlY3RvclRyYWl0czxUPjo6Y2FuTW92ZVdpdGhNZW1jcHksIFQ+Ojptb3ZlT3Zl
cmxhcHBpbmcoc3JjLCBzcmNFbmQsIGRzdCk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgdW5p
bml0aWFsaXplZENvcHkoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFQqIGRzdCkKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1dEl0ZXJhdG9yPgorICAgIHN0YXRpYyB2b2lkIHVuaW5p
dGlhbGl6ZWRDb3B5KElucHV0SXRlcmF0b3Igc3JjLCBJbnB1dEl0ZXJhdG9yIHNyY0VuZCwgVCog
ZHN0KQogICAgIHsKICAgICAgICAgVmVjdG9yQ29waWVyPFZlY3RvclRyYWl0czxUPjo6Y2FuQ29w
eVdpdGhNZW1jcHksIFQ+Ojp1bmluaXRpYWxpemVkQ29weShzcmMsIHNyY0VuZCwgZHN0KTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NDkyN2RiMzhhNTIzOTZjOTcxYmQyNzhkYzBhYmI3MmVjZTRmNjJiYS4uYmQ1ZWQ4MjBkMzJjNWU3
MDY1ZWFkNjkzMTZkMzAyZTFhMDkxZWI3NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQ2xlYW4gdXAgU3Ry
dWN0dXJlU3R1YkluZm8gaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjY1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0
b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTEtMDIgIFBl
ciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2ODQy
MSk6IFRlc3RXZWJLaXRBUEkuV2ViS2l0LlByZWZlcmVuY2VDaGFuZ2VzKiB0ZXN0cyBhcmUgZmxh
a3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
eGVkVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9y
LmNwcAppbmRleCAxNjE1M2RhYzk3MjVkMGI1OGRiZmZjY2I0NjgyNjg3OTQ3ODAxNTVhLi4wNzA3
Y2FiYWNlMGQxZGVhNjgxNDEyMmJhMmFiZTc1MmQyZWI3MzBmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaXhlZFZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwCkBAIC0xNzEsNiArMTcxLDc5IEBAIFRF
U1QoV1RGX0ZpeGVkVmVjdG9yLCBNb3ZlQXNzaWduVmVjdG9yKQogICAgICAgICBFWFBFQ1RfRVEo
dmVjMltpbmRleF0udmFsdWUoKSwgaW5kZXgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
Y2xhc3MgTm9uY29weWFibGVWZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFQ+IHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShOb25jb3B5YWJsZVZlY3Rvcik7CitwdWJsaWM6CisgICAgTm9uY29weWFi
bGVWZWN0b3IoKSA9IGRlZmF1bHQ7Cit9OworCitURVNUKFdURl9GaXhlZFZlY3RvciwgTW92ZUNv
bnRhaW5lcikKK3sKKyAgICBOb25jb3B5YWJsZVZlY3RvcjxNb3ZlT25seT4gdmVjMTsKKyAgICB2
ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgwKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgx
KTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFu
ZEFwcGVuZCgzKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICBGaXhlZFZl
Y3RvcjxNb3ZlT25seT4gdmVjMihXVEZNb3ZlKHZlYzEpKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5z
aXplKCksIDBVKTsKKyAgICBFWFBFQ1RfRVEodmVjMi5zaXplKCksIDRVKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAg
RVhQRUNUX0VRKHZlYzJbaW5kZXhdLnZhbHVlKCksIGluZGV4KTsKK30KKworVEVTVChXVEZfRml4
ZWRWZWN0b3IsIE1vdmVBc3NpZ25Db250YWluZXIpCit7CisgICAgRml4ZWRWZWN0b3I8TW92ZU9u
bHk+IHZlYzI7CisgICAgeworICAgICAgICBOb25jb3B5YWJsZVZlY3RvcjxNb3ZlT25seT4gdmVj
MTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgICAgIHZlYzEuY29u
c3RydWN0QW5kQXBwZW5kKDEpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsK
KyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgICAgIEVYUEVDVF9FUSh2
ZWMxLnNpemUoKSwgNFUpOworICAgICAgICB2ZWMyID0gV1RGTW92ZSh2ZWMxKTsKKyAgICAgICAg
RVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCAwVSk7CisgICAgfQorICAgIEVYUEVDVF9FUSh2ZWMyLnNp
emUoKSwgNFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6
ZSgpOyArK2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFsdWUoKSwgaW5k
ZXgpOworfQorCitURVNUKFdURl9GaXhlZFZlY3RvciwgUmVmZXJlbmNlQ29udGFpbmVyKQorewor
ICAgIE5vbmNvcHlhYmxlVmVjdG9yPHVuc2lnbmVkPiB2ZWMxOworICAgIHZlYzEuY29uc3RydWN0
QW5kQXBwZW5kKDApOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDEpOworICAgIHZlYzEu
Y29uc3RydWN0QW5kQXBwZW5kKDIpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOwor
ICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAgIEZpeGVkVmVjdG9yPHVuc2lnbmVk
PiB2ZWMyKHZlYzEpOworICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAgIEVYUEVD
VF9FUSh2ZWMyLnNpemUoKSwgNFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IHZlYzIuc2l6ZSgpOyArK2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0s
IGluZGV4KTsKK30KKworVEVTVChXVEZfRml4ZWRWZWN0b3IsIFJlZmVyZW5jZUFzc2lnbkNvbnRh
aW5lcikKK3sKKyAgICBGaXhlZFZlY3Rvcjx1bnNpZ25lZD4gdmVjMjsKKyAgICB7CisgICAgICAg
IE5vbmNvcHlhYmxlVmVjdG9yPHVuc2lnbmVkPiB2ZWMxOworICAgICAgICB2ZWMxLmNvbnN0cnVj
dEFuZEFwcGVuZCgwKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAg
ICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDIpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFu
ZEFwcGVuZCgzKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAgICAg
IHZlYzIgPSB2ZWMxOworICAgICAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICB9
CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7CisgICAgZm9yICh1bnNpZ25lZCBpbmRl
eCA9IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIEVYUEVDVF9FUSh2
ZWMyW2luZGV4XSwgaW5kZXgpOworfQorCiBURVNUKFdURl9GaXhlZFZlY3RvciwgU3dhcCkKIHsK
ICAgICBGaXhlZFZlY3Rvcjx1bnNpZ25lZD4gdmVjMSgzKTsK
</data>
<flag name="review"
          id="467847"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="467850"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443205</attachid>
            <date>2021-11-03 09:53:14 -0700</date>
            <delta_ts>2021-11-03 11:12:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211103095313.patch</filename>
            <type>text/plain</type>
            <size>18258</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi5mMDFhYmUwZWZkNjZhOGNh
OWFlODc0ZGQyZDEwMDFjZGJmODg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLjkwMGY3M2RhNTI3NDVhMTMxYjY3MmNjMDkzN2JmNWI2MDJm
MTU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZl
Y3RvclR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVkQ29weSk6CisKIDIwMjEtMTEtMDIgIERh
dmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBNaW5vciBj
bGVhbi11cCBmb3IgZm9ybWF0LXJlbGF0ZWQgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5
MTg0MjYyMzQ1OTI3ZWE2ZGYuLjJlZGZkODJkOTk3ZTA2ODU2Yjk3NDA3YWU2ZTg0Mzc1ZjQzMmQ5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC03ODIsNyArNzgyLDcgQEAgdm9pZCBDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxp
bmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENvZGUpCiAKICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5pc0VtcHR5KCkpOwogICAgICAgICBqaXRE
YXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0b3I8dm9pZCo+KGppdENvZGUtPm1fY29u
c3RhbnRQb29sLnNpemUoKSk7Ci0gICAgICAgIGppdERhdGEubV9zdHViSW5mb3MgPSBGaXhlZFZl
Y3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5zaXpl
KCkpOworICAgICAgICBqaXREYXRhLm1fc3R1YkluZm9zID0gRml4ZWRWZWN0b3I8U3RydWN0dXJl
U3R1YkluZm8+KGppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3MpOwogICAgICAgICBqaXREYXRh
Lm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVjdG9yPENhbGxMaW5rSW5mbz4oaml0Q29kZS0+bV91
bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0
Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGF1dG8gZW50
cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9vbC5hdChpKTsKQEAgLTgwMCw5ICs4MDAsNyBAQCB2
b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUoUmVmPEJhc2VsaW5l
SklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbzogewogICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW50cnkucG9pbnRlcigpKTsK
LSAgICAgICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJ
bmZvID0gaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvc1tpbmRleF07CiAgICAgICAgICAgICAg
ICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gaml0RGF0YS5tX3N0dWJJbmZvc1tpbmRl
eF07Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1YkluZm8pOwogICAgICAgICAgICAgICAgIGpp
dERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSAmc3R1YkluZm87CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA3N2M5YjhjNzJiMTQ5MDVkMTQ4ODJk
NWQ4NTQzMzQ4Nzc5ZTE3MTM5Li5kOTMzZWUwMzE1ZjMxNjc0YmIzZWM1MGUzMzk1ZWNhNTExMmQ1
MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAKQEAgLTQxNSwxNCArNDE1LDEzIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBT
dHJ1Y3R1cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJh
c2UmCiAgICAgbV9jYWNoZVR5cGUgPSBuZXdDYWNoZVR5cGU7CiB9CiAKLXZvaWQgU3RydWN0dXJl
U3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxv
Y2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvKQorU3RydWN0
dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKGNvbnN0IFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8mIHVubGlua2VkU3R1YkluZm8pCisgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyh1bmxpbmtl
ZFN0dWJJbmZvLmFjY2Vzc1R5cGUsIENvZGVPcmlnaW4odW5saW5rZWRTdHViSW5mby5ieXRlY29k
ZUluZGV4KSkKIHsKLSAgICBhY2Nlc3NUeXBlID0gdW5saW5rZWRTdHViSW5mby5hY2Nlc3NUeXBl
OwogICAgIHN0YXJ0ID0gdW5saW5rZWRTdHViSW5mby5zdGFydDsKICAgICBkb25lTG9jYXRpb24g
PSB1bmxpbmtlZFN0dWJJbmZvLmRvbmVMb2NhdGlvbjsKICAgICBzbG93UGF0aFN0YXJ0TG9jYXRp
b24gPSB1bmxpbmtlZFN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICBjYWxsU2l0
ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KHVubGlua2VkU3R1YkluZm8uYnl0
ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwotICAgIGNvZGVPcmlnaW4gPSBDb2RlT3JpZ2luKHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAgbV9jb2RlUHRyID0gc2xvd1BhdGhTdGFy
dExvY2F0aW9uOwogICAgIHByb3BlcnR5SXNJbnQzMiA9IHVubGlua2VkU3R1YkluZm8ucHJvcGVy
dHlJc0ludDMyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oCmluZGV4IDA0N2I0ZWJmMGVkMWEwNzg3MGI1MDY1NmEyZjZkYzM0NGVl
OGVhNDYuLmU1ZjYyN2YzYTIzYmYzYTdmYTRlOTEwZTc4NTEyMzYyMGIyYjk4MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBA
IC0xMDMsOSArMTAzLDcgQEAgY2xhc3MgU3RydWN0dXJlU3R1YkluZm8gewogICAgICAgICByZWdz
LnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIH0KIAotICAgIFN0cnVjdHVyZVN0dWJJbmZv
KCkKLSAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NUeXBlOjpHZXRCeUlkLCB7IH0p
Ci0gICAgeyB9CisgICAgU3RydWN0dXJlU3R1YkluZm8oY29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVT
dHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyk7CiAKICAgICB+U3RydWN0dXJlU3R1YkluZm8oKTsK
IApAQCAtMTIyLDggKzEyMCw2IEBAIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICB2b2lk
IGRlcmVmKCk7CiAgICAgdm9pZCBhYm91dFRvRGllKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVG
cm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvJik7Ci0KICAgICBERUNMQVJFX1ZJU0lUX0FHR1JFR0FURTsKIAogICAgIC8vIENo
ZWNrIGlmIHRoZSBzdHViIGhhcyB3ZWFrIHJlZmVyZW5jZXMgdGhhdCBhcmUgZGVhZC4gSWYgaXQg
ZG9lcywgdGhlbiBpdCByZXNldHMgaXRzZWxmLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmlu
ZGV4IDkyOTQyNDYwNzM0MDA5MTFiNmMzNTdjNzhhNGEwYzZhNzRlOWFhZDQuLjlmNGYyMjk4ZmI0
NGQwOTNhMzc5YTIwMzgzNzAwMTkxM2E0OTI5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKQEAgLTEwMDcsMTMgKzEwMDcsOSBAQCB2b2lkIEpJVDo6bGluaygpCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrID0gcGF0Y2hCdWZmZXIu
bG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihtX2FyaXR5Q2hlY2spOwogICAgIG1faml0Q29kZSA9
IGFkb3B0UmVmKCpuZXcgQmFzZWxpbmVKSVRDb2RlKHJlc3VsdCwgd2l0aEFyaXR5Q2hlY2spKTsK
IAotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxzID0gRml4ZWRWZWN0b3I8VW5saW5rZWRD
YWxsTGlua0luZm8+KG1fdW5saW5rZWRDYWxscy5zaXplKCkpOwotICAgIGlmIChtX2ppdENvZGUt
Pm1fdW5saW5rZWRDYWxscy5zaXplKCkpCi0gICAgICAgIHN0ZDo6bW92ZShtX3VubGlua2VkQ2Fs
bHMuYmVnaW4oKSwgbV91bmxpbmtlZENhbGxzLmVuZCgpLCBtX2ppdENvZGUtPm1fdW5saW5rZWRD
YWxscy5iZWdpbigpKTsKKyAgICBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscyA9IFdURk1vdmUo
bV91bmxpbmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUtPm1fZXZhbENhbGxMaW5rSW5mb3MgPSBX
VEZNb3ZlKG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZFN0
dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8+KG1fdW5saW5r
ZWRTdHViSW5mb3Muc2l6ZSgpKTsKLSAgICBpZiAobV9qaXRDb2RlLT5tX3VubGlua2VkU3R1Yklu
Zm9zLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1fdW5saW5rZWRTdHViSW5mb3MuYmVnaW4o
KSwgbV91bmxpbmtlZFN0dWJJbmZvcy5lbmQoKSwgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1Yklu
Zm9zLmJlZ2luKCkpOworICAgIG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyA9IFdURk1v
dmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgbV9qaXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJs
ZXMgPSBXVEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX3N0cmlu
Z1N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAg
ICAgbV9qaXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRDb2RlTWFwQnVpbGRlci5maW5hbGl6ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYv
d3RmL0ZpeGVkVmVjdG9yLmgKaW5kZXggMzI4Zjk4MTUxMGJmN2I2NGY3MzBmMWFiYjhlZTExMDgz
Mzc2YzFkNC4uYzhhODEyMGM1YmFjZGQ4YTM0MDE3YzY3OGE4OTFlZTM5NTIxOTMxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
aXhlZFZlY3Rvci5oCkBAIC02MywyNyArNjMsMTUgQEAgY2xhc3MgRml4ZWRWZWN0b3IgewogICAg
ICAgICA6IG1fc3RvcmFnZShzaXplKQogICAgIHsgfQogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgZXhwbGljaXQgRml4
ZWRWZWN0b3IoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+
JiBvdGhlcikKLSAgICAgICAgOiBtX3N0b3JhZ2Uob3RoZXIpCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFp
bmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIGV4cGxpY2l0IEZpeGVkVmVjdG9yKENvbnRhaW5lciYm
IG90aGVyKQorICAgICAgICA6IG1fc3RvcmFnZShzdGQ6OmZvcndhcmQ8Q29udGFpbmVyPihvdGhl
cikpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBGaXhlZFZlY3RvciYgb3BlcmF0b3I9KGNvbnN0IFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPiYgb3RoZXIpCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVn
cmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRv
cj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAgICAgICBtX3N0b3JhZ2UgPSBvdGhlcjsK
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IEZpeGVk
VmVjdG9yKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVy
KQotICAgICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKG90aGVyKSkKLSAgICB7IH0KLQotICAgIHRl
bXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgot
ICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgewotICAgICAgICBtX3N0b3JhZ2UgPSBXVEZNb3Zl
KG90aGVyKTsKKyAgICAgICAgbV9zdG9yYWdlID0gc3RkOjpmb3J3YXJkPENvbnRhaW5lcj4ob3Ro
ZXIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJh
eS5oCmluZGV4IDUwMzMyNTM0MDQwNjJjNDZlNGI1ZTg1MGJlNjYwNjliMDdjNDc5YTYuLjZhZGJi
YWUxNWQwNTk0ZWM0Y2JhNWMyMjVlMDVlOTY4MDlkZGFmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRB
cnJheS5oCkBAIC05MywzMiArOTMsMzUgQEAgY2xhc3MgUmVmQ291bnRlZEFycmF5IHsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBleHBsaWNpdCBSZWZDb3VudGVk
QXJyYXkoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBv
dGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8
IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgZXhwbGlj
aXQgUmVmQ291bnRlZEFycmF5KGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKQogICAgIHsKLSAg
ICAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkgeworICAgICAgICB1bnNpZ25lZCBzaXplID0gc3Rk
OjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6ZSkgewogICAgICAgICAgICAgUHRy
VHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEo
b3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7Ci0gICAgICAgIFZlY3RvclR5cGVPcGVy
YXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwg
ZGF0YSk7CisgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29w
eShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5kKGNvbnRhaW5lciksIGRhdGEpOwogICAg
IH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZs
b3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50ZWRBcnJheShWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWlu
ZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfdjxDb250YWluZXI+LCBib29sPiA9IHRy
dWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KENvbnRhaW5lciYmIGNvbnRhaW5lcikK
ICAgICB7Ci0gICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVy
PiB2ZWN0b3IoV1RGTW92ZShvdGhlcikpOwotICAgICAgICBpZiAodmVjdG9yLmlzRW1wdHkoKSkg
eworICAgICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAg
IGlmICghc2l6ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51
bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0
YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEodmVjdG9yLnNpemUoKSk7CisgICAgICAgIFQq
IGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICBtX2RhdGEg
PSBkYXRhOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWN0b3Iu
c2l6ZSgpOyArK2luZGV4KQotICAgICAgICAgICAgbmV3IChkYXRhICsgaW5kZXgpIFQoV1RGTW92
ZSh2ZWN0b3JbaW5kZXhdKSk7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OmJlZ2luKGNv
bnRhaW5lcik7CisgICAgICAgIGF1dG8gZW5kID0gc3RkOjplbmQoY29udGFpbmVyKTsKKyAgICAg
ICAgZm9yICg7IGl0ZXJhdG9yICE9IGVuZDsgKytpdGVyYXRvcikKKyAgICAgICAgICAgIG5ldyAo
ZGF0YSsrKSBUKFdURk1vdmUoKml0ZXJhdG9yKSk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIE90aGVyVHJhaXRzID0gUHRyVHJhaXRzPgpAQCAtMTMyLDE2ICsxMzUsMTcgQEAg
Y2xhc3MgUmVmQ291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIGFzc2lnbjxQdHJUcmFpdHM+
KG90aGVyKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBSZWZDb3VudGVkQXJyYXkmIG9wZXJhdG9yPShj
b25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIG90aGVyKQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lciwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPj4+CisgICAgUmVmQ291bnRlZEFycmF5
JiBvcGVyYXRvcj0oY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpCiAgICAgewogICAgICAgICBU
KiBvbGREYXRhID0gZGF0YSgpOwotICAgICAgICBpZiAob3RoZXIuaXNFbXB0eSgpKQorICAgICAg
ICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6
ZSkKICAgICAgICAgICAgIFB0clRyYWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVk
RGF0YShvdGhlci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0
aWFsaXplZERhdGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICAg
ICAgVmVjdG9yVHlwZU9wZXJhdGlvbnM8VD46OnVuaW5pdGlhbGl6ZWRDb3B5KG90aGVyLmJlZ2lu
KCksIG90aGVyLmVuZCgpLCBkYXRhKTsKKyAgICAgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25z
PFQ+Ojp1bmluaXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5kKGNv
bnRhaW5lciksIGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIGlmICghb2xkRGF0YSkKICAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKQEAgLTE1NiwxOCArMTYwLDIwIEBAIGNsYXNzIFJlZkNvdW50
ZWRBcnJheSB7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBSZWZD
b3VudGVkQXJyYXkmIG9wZXJhdG9yPShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93
SGFuZGxlcj4mJiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6
ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+ICYmICFzdGQ6OmlzX2x2
YWx1ZV9yZWZlcmVuY2VfdjxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgUmVmQ291bnRl
ZEFycmF5JiBvcGVyYXRvcj0oQ29udGFpbmVyJiYgY29udGFpbmVyKQogICAgIHsKLSAgICAgICAg
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+IHZlY3RvcihXVEZNb3Zl
KG90aGVyKSk7CiAgICAgICAgIFQqIG9sZERhdGEgPSBkYXRhKCk7Ci0gICAgICAgIGlmICh2ZWN0
b3IuaXNFbXB0eSgpKQorICAgICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5l
cik7CisgICAgICAgIGlmICghc2l6ZSkKICAgICAgICAgICAgIFB0clRyYWl0czo6ZXhjaGFuZ2Uo
bV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBUKiBkYXRhID0g
YWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YSh2ZWN0b3Iuc2l6ZSgpKTsKKyAgICAgICAgICAgIFQq
IGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICAgICAgbV9k
YXRhID0gZGF0YTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8
IHZlY3Rvci5zaXplKCk7ICsraW5kZXgpCi0gICAgICAgICAgICAgICAgbmV3IChkYXRhICsgaW5k
ZXgpIFQoV1RGTW92ZSh2ZWN0b3JbaW5kZXhdKSk7CisgICAgICAgICAgICBhdXRvIGl0ZXJhdG9y
ID0gc3RkOjpiZWdpbihjb250YWluZXIpOworICAgICAgICAgICAgYXV0byBlbmQgPSBzdGQ6OmVu
ZChjb250YWluZXIpOworICAgICAgICAgICAgZm9yICg7IGl0ZXJhdG9yICE9IGVuZDsgKytpdGVy
YXRvcikKKyAgICAgICAgICAgICAgICBuZXcgKGRhdGErKykgVChXVEZNb3ZlKCppdGVyYXRvcikp
OwogICAgICAgICB9CiAgICAgICAgIGlmICghb2xkRGF0YSkKICAgICAgICAgICAgIHJldHVybiAq
dGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93
dGYvVmVjdG9yLmgKaW5kZXggYzRjZGZiNGNjNWYyNzM0YjdhNmFjZWU5MWU5NzljOWMxYjg2OWJi
OC4uOGM2ODJlYjk2MDk1Nzk3NzUxZWZmZGQ4MTlmYjkxOTVmMGQxNTE4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvVmVjdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAg
LTE2Myw4ICsxNjMsOCBAQCBzdHJ1Y3QgVmVjdG9yQ29waWVyOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KIHN0cnVjdCBWZWN0b3JDb3BpZXI8ZmFsc2UsIFQ+CiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4KLSAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNv
bnN0IFQqIHNyY0VuZCwgVSogZHN0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElucHV0SXRlcmF0
b3IsIHR5cGVuYW1lIFU+CisgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoSW5wdXRJ
dGVyYXRvciBzcmMsIElucHV0SXRlcmF0b3Igc3JjRW5kLCBVKiBkc3QpCiAgICAgewogICAgICAg
ICB3aGlsZSAoc3JjICE9IHNyY0VuZCkgewogICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBkc3Qp
IFUoKnNyYyk7CkBAIC0xODEsOCArMTgxLDggQEAgc3RydWN0IFZlY3RvckNvcGllcjx0cnVlLCBU
PgogICAgIHsKICAgICAgICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPihkc3QpLCBzdGF0aWNf
Y2FzdDx2b2lkKj4oY29uc3RfY2FzdDxUKj4oc3JjKSksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKICAg
ICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KLSAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxp
emVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVSogZHN0KQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIElucHV0SXRlcmF0b3IsIHR5cGVuYW1lIFU+CisgICAgc3RhdGljIHZvaWQg
dW5pbml0aWFsaXplZENvcHkoSW5wdXRJdGVyYXRvciBzcmMsIElucHV0SXRlcmF0b3Igc3JjRW5k
LCBVKiBkc3QpCiAgICAgewogICAgICAgICBWZWN0b3JDb3BpZXI8ZmFsc2UsIFQ+Ojp1bmluaXRp
YWxpemVkQ29weShzcmMsIHNyY0VuZCwgZHN0KTsKICAgICB9CkBAIC0yNjUsNyArMjY1LDggQEAg
c3RydWN0IFZlY3RvclR5cGVPcGVyYXRpb25zCiAgICAgICAgIFZlY3Rvck1vdmVyPFZlY3RvclRy
YWl0czxUPjo6Y2FuTW92ZVdpdGhNZW1jcHksIFQ+Ojptb3ZlT3ZlcmxhcHBpbmcoc3JjLCBzcmNF
bmQsIGRzdCk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29u
c3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFQqIGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJbnB1dEl0ZXJhdG9yPgorICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KElucHV0
SXRlcmF0b3Igc3JjLCBJbnB1dEl0ZXJhdG9yIHNyY0VuZCwgVCogZHN0KQogICAgIHsKICAgICAg
ICAgVmVjdG9yQ29waWVyPFZlY3RvclRyYWl0czxUPjo6Y2FuQ29weVdpdGhNZW1jcHksIFQ+Ojp1
bmluaXRpYWxpemVkQ29weShzcmMsIHNyY0VuZCwgZHN0KTsKICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDkyN2RiMzhhNTIzOTZjOTcx
YmQyNzhkYzBhYmI3MmVjZTRmNjJiYS4uYjJlOGNkOGNhMjExMTJiNTdkNjU4YTZjN2MzNzFiYTll
YjA4YWQzZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQ2xlYW4gdXAgU3RydWN0dXJlU3R1YkluZm8gaW5p
dGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjY1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTEtMDIgIFBlciBBcm5lICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2ODQyMSk6IFRlc3RXZWJLaXRBUEku
V2ViS2l0LlByZWZlcmVuY2VDaGFuZ2VzKiB0ZXN0cyBhcmUgZmxha3kgZmFpbHVyZXMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9yLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9yLmNwcAppbmRleCAxNjE1M2Rh
Yzk3MjVkMGI1OGRiZmZjY2I0NjgyNjg3OTQ3ODAxNTVhLi4wNzA3Y2FiYWNlMGQxZGVhNjgxNDEy
MmJhMmFiZTc1MmQyZWI3MzBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaXhlZFZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Rml4ZWRWZWN0b3IuY3BwCkBAIC0xNzEsNiArMTcxLDc5IEBAIFRFU1QoV1RGX0ZpeGVkVmVjdG9y
LCBNb3ZlQXNzaWduVmVjdG9yKQogICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFsdWUo
KSwgaW5kZXgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgTm9uY29weWFibGVW
ZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFQ+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOb25j
b3B5YWJsZVZlY3Rvcik7CitwdWJsaWM6CisgICAgTm9uY29weWFibGVWZWN0b3IoKSA9IGRlZmF1
bHQ7Cit9OworCitURVNUKFdURl9GaXhlZFZlY3RvciwgTW92ZUNvbnRhaW5lcikKK3sKKyAgICBO
b25jb3B5YWJsZVZlY3RvcjxNb3ZlT25seT4gdmVjMTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFw
cGVuZCgwKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgxKTsKKyAgICB2ZWMxLmNvbnN0
cnVjdEFuZEFwcGVuZCgyKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgzKTsKKyAgICBF
WFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICBGaXhlZFZlY3RvcjxNb3ZlT25seT4gdmVj
MihXVEZNb3ZlKHZlYzEpKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDBVKTsKKyAgICBF
WFBFQ1RfRVEodmVjMi5zaXplKCksIDRVKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsg
aW5kZXggPCB2ZWMyLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgRVhQRUNUX0VRKHZlYzJbaW5k
ZXhdLnZhbHVlKCksIGluZGV4KTsKK30KKworVEVTVChXVEZfRml4ZWRWZWN0b3IsIE1vdmVBc3Np
Z25Db250YWluZXIpCit7CisgICAgRml4ZWRWZWN0b3I8TW92ZU9ubHk+IHZlYzI7CisgICAgewor
ICAgICAgICBOb25jb3B5YWJsZVZlY3RvcjxNb3ZlT25seT4gdmVjMTsKKyAgICAgICAgdmVjMS5j
b25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDEp
OworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsKKyAgICAgICAgdmVjMS5jb25z
dHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOwor
ICAgICAgICB2ZWMyID0gV1RGTW92ZSh2ZWMxKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlYzEuc2l6
ZSgpLCAwVSk7CisgICAgfQorICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUoKSwgNFUpOworICAgIGZv
ciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgpOyArK2luZGV4KQorICAg
ICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFsdWUoKSwgaW5kZXgpOworfQorCitURVNUKFdU
Rl9GaXhlZFZlY3RvciwgUmVmZXJlbmNlQ29udGFpbmVyKQoreworICAgIE5vbmNvcHlhYmxlVmVj
dG9yPHVuc2lnbmVkPiB2ZWMxOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDApOworICAg
IHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDEpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5k
KDIpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOworICAgIEVYUEVDVF9FUSh2ZWMx
LnNpemUoKSwgNFUpOworICAgIEZpeGVkVmVjdG9yPHVuc2lnbmVkPiB2ZWMyKHZlYzEpOworICAg
IEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUoKSwg
NFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgpOyAr
K2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0sIGluZGV4KTsKK30KKworVEVT
VChXVEZfRml4ZWRWZWN0b3IsIFJlZmVyZW5jZUFzc2lnbkNvbnRhaW5lcikKK3sKKyAgICBGaXhl
ZFZlY3Rvcjx1bnNpZ25lZD4gdmVjMjsKKyAgICB7CisgICAgICAgIE5vbmNvcHlhYmxlVmVjdG9y
PHVuc2lnbmVkPiB2ZWMxOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgwKTsKKyAg
ICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAgICAgIHZlYzEuY29uc3RydWN0
QW5kQXBwZW5kKDIpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgzKTsKKyAgICAg
ICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAgICAgIHZlYzIgPSB2ZWMxOworICAg
ICAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICB9CisgICAgRVhQRUNUX0VRKHZl
YzIuc2l6ZSgpLCA0VSk7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVj
Mi5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XSwgaW5kZXgp
OworfQorCiBURVNUKFdURl9GaXhlZFZlY3RvciwgU3dhcCkKIHsKICAgICBGaXhlZFZlY3Rvcjx1
bnNpZ25lZD4gdmVjMSgzKTsK
</data>
<flag name="commit-queue"
          id="467911"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443211</attachid>
            <date>2021-11-03 10:44:43 -0700</date>
            <delta_ts>2021-11-03 11:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211103104442.patch</filename>
            <type>text/plain</type>
            <size>19790</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi5mMDFhYmUwZWZkNjZhOGNh
OWFlODc0ZGQyZDEwMDFjZGJmODg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLjkwMGY3M2RhNTI3NDVhMTMxYjY3MmNjMDkzN2JmNWI2MDJm
MTU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZl
Y3RvclR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVkQ29weSk6CisKIDIwMjEtMTEtMDIgIERh
dmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBNaW5vciBj
bGVhbi11cCBmb3IgZm9ybWF0LXJlbGF0ZWQgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIzYjIw
M2VhYzVjOWM2NWQwNDA2YmMwZWQ2YjdmZjcwOThmODE4Zi4uNTg1NjI4OTljMDY5OWM3OGNjMDY2
YzdkMWZjZTc1ZDgwY2I2NmE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEx
LTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10g
Q2xlYW4gdXAgU3RydWN0dXJlU3R1YkluZm8gaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjY1MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Zm9udEZvckxh
eW91dExhYmVsKToKKwogMjAyMS0xMS0wMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgogCiAgICAgICAgIFNWRyBlbGVtZW50cyBzaG91bGQgaW5jbHVkZSBTVkdFbGVtZW50
SW5saW5lcyBub3QgRWxlbWVudElubGluZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYjkwOWRmNDU4NDRiMjI5ZWM5MTgzMzkxODQyNjIzNDU5
MjdlYTZkZi4uMmVkZmQ4MmQ5OTdlMDY4NTZiOTc0MDdhZTZlODQzNzVmNDMyZDkzZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTc4Miw3ICs3
ODIsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUoUmVm
PEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKIAogICAgICAgICBSRUxFQVNFX0FTU0VSVChqaXRE
YXRhLm1faml0Q29uc3RhbnRQb29sLmlzRW1wdHkoKSk7CiAgICAgICAgIGppdERhdGEubV9qaXRD
b25zdGFudFBvb2wgPSBGaXhlZFZlY3Rvcjx2b2lkKj4oaml0Q29kZS0+bV9jb25zdGFudFBvb2wu
c2l6ZSgpKTsKLSAgICAgICAgaml0RGF0YS5tX3N0dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFN0cnVj
dHVyZVN0dWJJbmZvPihqaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSk7CisgICAg
ICAgIGppdERhdGEubV9zdHViSW5mb3MgPSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4o
aml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgICAgIGppdERhdGEubV9jYWxsTGlu
a0luZm9zID0gRml4ZWRWZWN0b3I8Q2FsbExpbmtJbmZvPihqaXRDb2RlLT5tX3VubGlua2VkQ2Fs
bHMuc2l6ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBqaXRDb2RlLT5tX2Nv
bnN0YW50UG9vbC5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgYXV0byBlbnRyeSA9IGppdENv
ZGUtPm1fY29uc3RhbnRQb29sLmF0KGkpOwpAQCAtODAwLDkgKzgwMCw3IEBAIHZvaWQgQ29kZUJs
b2NrOjpzZXR1cFdpdGhVbmxpbmtlZEJhc2VsaW5lQ29kZShSZWY8QmFzZWxpbmVKSVRDb2RlPiBq
aXRDb2RlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBKSVRDb25zdGFudFBvb2w6
OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvOiB7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5k
ZXggPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbnRyeS5wb2ludGVyKCkpOwotICAgICAgICAg
ICAgICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8gPSBqaXRD
b2RlLT5tX3VubGlua2VkU3R1YkluZm9zW2luZGV4XTsKICAgICAgICAgICAgICAgICBTdHJ1Y3R1
cmVTdHViSW5mbyYgc3R1YkluZm8gPSBqaXREYXRhLm1fc3R1YkluZm9zW2luZGV4XTsKLSAgICAg
ICAgICAgICAgICBzdHViSW5mby5pbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1Yklu
Zm8odGhpcywgdW5saW5rZWRTdHViSW5mbyk7CiAgICAgICAgICAgICAgICAgaml0RGF0YS5tX2pp
dENvbnN0YW50UG9vbFtpXSA9ICZzdHViSW5mbzsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uY3BwCmluZGV4IDc3YzliOGM3MmIxNDkwNWQxNDg4MmQ1ZDg1NDMzNDg3
NzllMTcxMzkuLmQ5MzNlZTAzMTVmMzE2NzRiYjNlYzUwZTMzOTVlY2E1MTEyZDUwY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmNwcApAQCAtNDE1LDE0ICs0MTUsMTMgQEAgQUxXQVlTX0lOTElORSB2b2lkIFN0cnVjdHVyZVN0
dWJJbmZvOjpzZXRDYWNoZVR5cGUoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyQmFzZSYKICAgICBt
X2NhY2hlVHlwZSA9IG5ld0NhY2hlVHlwZTsKIH0KIAotdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6
aW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKENvZGVCbG9jayosIFVubGlu
a2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8pCitTdHJ1Y3R1cmVTdHViSW5m
bzo6U3RydWN0dXJlU3R1YkluZm8oY29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5s
aW5rZWRTdHViSW5mbykKKyAgICA6IFN0cnVjdHVyZVN0dWJJbmZvKHVubGlua2VkU3R1YkluZm8u
YWNjZXNzVHlwZSwgQ29kZU9yaWdpbih1bmxpbmtlZFN0dWJJbmZvLmJ5dGVjb2RlSW5kZXgpKQog
ewotICAgIGFjY2Vzc1R5cGUgPSB1bmxpbmtlZFN0dWJJbmZvLmFjY2Vzc1R5cGU7CiAgICAgc3Rh
cnQgPSB1bmxpbmtlZFN0dWJJbmZvLnN0YXJ0OwogICAgIGRvbmVMb2NhdGlvbiA9IHVubGlua2Vk
U3R1YkluZm8uZG9uZUxvY2F0aW9uOwogICAgIHNsb3dQYXRoU3RhcnRMb2NhdGlvbiA9IHVubGlu
a2VkU3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgIGNhbGxTaXRlSW5kZXggPSBD
YWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgodW5saW5rZWRTdHViSW5mby5ieXRlY29kZUluZGV4
Lm9mZnNldCgpKSk7Ci0gICAgY29kZU9yaWdpbiA9IENvZGVPcmlnaW4odW5saW5rZWRTdHViSW5m
by5ieXRlY29kZUluZGV4KTsKICAgICBtX2NvZGVQdHIgPSBzbG93UGF0aFN0YXJ0TG9jYXRpb247
CiAgICAgcHJvcGVydHlJc0ludDMyID0gdW5saW5rZWRTdHViSW5mby5wcm9wZXJ0eUlzSW50MzI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVT
dHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJ
bmZvLmgKaW5kZXggMDQ3YjRlYmYwZWQxYTA3ODcwYjUwNjU2YTJmNmRjMzQ0ZWU4ZWE0Ni4uZTVm
NjI3ZjNhMjNiZjNhN2ZhNGU5MTBlNzg1MTIzNjIwYjJiOTgxOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTEwMyw5ICsx
MDMsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgICAgIHJlZ3MudGhpc0dQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgfQogCi0gICAgU3RydWN0dXJlU3R1YkluZm8oKQotICAgICAg
ICA6IFN0cnVjdHVyZVN0dWJJbmZvKEFjY2Vzc1R5cGU6OkdldEJ5SWQsIHsgfSkKLSAgICB7IH0K
KyAgICBTdHJ1Y3R1cmVTdHViSW5mbyhjb25zdCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1
bmxpbmtlZFN0dWJJbmZvKTsKIAogICAgIH5TdHJ1Y3R1cmVTdHViSW5mbygpOwogCkBAIC0xMjIs
OCArMTIwLDYgQEAgY2xhc3MgU3RydWN0dXJlU3R1YkluZm8gewogICAgIHZvaWQgZGVyZWYoKTsK
ICAgICB2b2lkIGFib3V0VG9EaWUoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZUZyb21Vbmxpbmtl
ZFN0cnVjdHVyZVN0dWJJbmZvKENvZGVCbG9jayosIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8m
KTsKLQogICAgIERFQ0xBUkVfVklTSVRfQUdHUkVHQVRFOwogCiAgICAgLy8gQ2hlY2sgaWYgdGhl
IHN0dWIgaGFzIHdlYWsgcmVmZXJlbmNlcyB0aGF0IGFyZSBkZWFkLiBJZiBpdCBkb2VzLCB0aGVu
IGl0IHJlc2V0cyBpdHNlbGYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOTI5NDI0
NjA3MzQwMDkxMWI2YzM1N2M3OGE0YTBjNmE3NGU5YWFkNC4uOWY0ZjIyOThmYjQ0ZDA5M2EzNzlh
MjAzODM3MDAxOTEzYTQ5MjliZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMTAw
NywxMyArMTAwNyw5IEBAIHZvaWQgSklUOjpsaW5rKCkKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2sgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9m
PEpTRW50cnlQdHJUYWc+KG1fYXJpdHlDaGVjayk7CiAgICAgbV9qaXRDb2RlID0gYWRvcHRSZWYo
Km5ldyBCYXNlbGluZUpJVENvZGUocmVzdWx0LCB3aXRoQXJpdHlDaGVjaykpOwogCi0gICAgbV9q
aXRDb2RlLT5tX3VubGlua2VkQ2FsbHMgPSBGaXhlZFZlY3RvcjxVbmxpbmtlZENhbGxMaW5rSW5m
bz4obV91bmxpbmtlZENhbGxzLnNpemUoKSk7Ci0gICAgaWYgKG1faml0Q29kZS0+bV91bmxpbmtl
ZENhbGxzLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1fdW5saW5rZWRDYWxscy5iZWdpbigp
LCBtX3VubGlua2VkQ2FsbHMuZW5kKCksIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxzLmJlZ2lu
KCkpOworICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxzID0gV1RGTW92ZShtX3VubGlua2Vk
Q2FsbHMpOwogICAgIG1faml0Q29kZS0+bV9ldmFsQ2FsbExpbmtJbmZvcyA9IFdURk1vdmUobV9l
dmFsQ2FsbExpbmtJbmZvcyk7Ci0gICAgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zID0g
Rml4ZWRWZWN0b3I8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbz4obV91bmxpbmtlZFN0dWJJbmZv
cy5zaXplKCkpOwotICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3Muc2l6ZSgp
KQotICAgICAgICBzdGQ6Om1vdmUobV91bmxpbmtlZFN0dWJJbmZvcy5iZWdpbigpLCBtX3VubGlu
a2VkU3R1YkluZm9zLmVuZCgpLCBtX2ppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3MuYmVnaW4o
KSk7CisgICAgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zID0gV1RGTW92ZShtX3VubGlu
a2VkU3R1YkluZm9zKTsKICAgICBtX2ppdENvZGUtPm1fc3dpdGNoSnVtcFRhYmxlcyA9IFdURk1v
dmUobV9zd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2ppdENvZGUtPm1fc3RyaW5nU3dpdGNoSnVt
cFRhYmxlcyA9IFdURk1vdmUobV9zdHJpbmdTd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2ppdENv
ZGUtPm1faml0Q29kZU1hcCA9IGppdENvZGVNYXBCdWlsZGVyLmZpbmFsaXplKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaXhlZFZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvRml4ZWRW
ZWN0b3IuaAppbmRleCAzMjhmOTgxNTEwYmY3YjY0ZjczMGYxYWJiOGVlMTEwODMzNzZjMWQ0Li5j
OGE4MTIwYzViYWNkZDhhMzQwMTdjNjc4YTg5MWVlMzk1MjE5MzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9GaXhlZFZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpeGVkVmVjdG9y
LmgKQEAgLTYzLDI3ICs2MywxNSBAQCBjbGFzcyBGaXhlZFZlY3RvciB7CiAgICAgICAgIDogbV9z
dG9yYWdlKHNpemUpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNp
dHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBleHBsaWNpdCBGaXhlZFZlY3Rvcihj
b25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIG90aGVyKQot
ICAgICAgICA6IG1fc3RvcmFnZShvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWlu
ZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBib29s
PiA9IHRydWU+CisgICAgZXhwbGljaXQgRml4ZWRWZWN0b3IoQ29udGFpbmVyJiYgb3RoZXIpCisg
ICAgICAgIDogbV9zdG9yYWdlKHN0ZDo6Zm9yd2FyZDxDb250YWluZXI+KG90aGVyKSkKICAgICB7
IH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZs
b3dIYW5kbGVyPgotICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oY29uc3QgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250
YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgRml4ZWRWZWN0b3ImIG9wZXJhdG9yPShDb250YWlu
ZXImJiBvdGhlcikKICAgICB7Ci0gICAgICAgIG1fc3RvcmFnZSA9IG90aGVyOwotICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgZXhwbGljaXQgRml4ZWRWZWN0b3IoVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgICAg
IDogbV9zdG9yYWdlKFdURk1vdmUob3RoZXIpKQotICAgIHsgfQotCi0gICAgdGVtcGxhdGU8c2l6
ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgRml4ZWRW
ZWN0b3ImIG9wZXJhdG9yPShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxl
cj4mJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIG1fc3RvcmFnZSA9IFdURk1vdmUob3RoZXIpOwor
ICAgICAgICBtX3N0b3JhZ2UgPSBzdGQ6OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcik7CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Jl
ZkNvdW50ZWRBcnJheS5oIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRlZEFycmF5LmgKaW5kZXgg
NTAzMzI1MzQwNDA2MmM0NmU0YjVlODUwYmU2NjA2OWIwN2M0NzlhNi4uODIxOWQ3M2EyNGM5MjJk
N2QwYzVjZGUwMDhmZDg2OWI5ZjEyNWYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVm
Q291bnRlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRlZEFycmF5LmgKQEAg
LTkzLDMyICs5MywzNiBAQCBjbGFzcyBSZWZDb3VudGVkQXJyYXkgewogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50ZWRBcnJheShjb25z
dCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIG90aGVyKQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lciwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19p
bnRlZ3JhbF92PENvbnRhaW5lcj4sIGJvb2w+ID0gdHJ1ZT4KKyAgICBleHBsaWNpdCBSZWZDb3Vu
dGVkQXJyYXkoY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpCiAgICAgewotICAgICAgICBpZiAo
b3RoZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGQ6OnNpemUoY29u
dGFpbmVyKTsKKyAgICAgICAgaWYgKCFzaXplKSB7CiAgICAgICAgICAgICBQdHJUcmFpdHM6OmV4
Y2hhbmdlKG1fZGF0YSwgbnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YShvdGhlci5zaXpl
KCkpOworICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YShzaXplKTsK
ICAgICAgICAgbV9kYXRhID0gZGF0YTsKLSAgICAgICAgVmVjdG9yVHlwZU9wZXJhdGlvbnM8VD46
OnVuaW5pdGlhbGl6ZWRDb3B5KG90aGVyLmJlZ2luKCksIG90aGVyLmVuZCgpLCBkYXRhKTsKKyAg
ICAgICAgVmVjdG9yVHlwZU9wZXJhdGlvbnM8VD46OnVuaW5pdGlhbGl6ZWRDb3B5KHN0ZDo6YmVn
aW4oY29udGFpbmVyKSwgc3RkOjplbmQoY29udGFpbmVyKSwgZGF0YSk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+
Ci0gICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5l
ciwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19pbnRlZ3JhbF92PENvbnRhaW5lcj4gJiYgIXN0
ZDo6aXNfbHZhbHVlX3JlZmVyZW5jZV92PENvbnRhaW5lcj4sIGJvb2w+ID0gdHJ1ZT4KKyAgICBl
eHBsaWNpdCBSZWZDb3VudGVkQXJyYXkoQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAgICAg
ICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4gdmVjdG9yKFdURk1v
dmUob3RoZXIpKTsKLSAgICAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpIHsKKyAgICAgICAgQ29u
dGFpbmVyIGNvbnRhaW5lcihzdGQ6OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcikpOworICAgICAg
ICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6
ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFsbG9j
YXRlVW5pbml0aWFsaXplZERhdGEodmVjdG9yLnNpemUoKSk7CisgICAgICAgIFQqIGRhdGEgPSBh
bGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICBtX2RhdGEgPSBkYXRhOwot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWN0b3Iuc2l6ZSgpOyAr
K2luZGV4KQotICAgICAgICAgICAgbmV3IChkYXRhICsgaW5kZXgpIFQoV1RGTW92ZSh2ZWN0b3Jb
aW5kZXhdKSk7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OmJlZ2luKGNvbnRhaW5lcik7
CisgICAgICAgIGF1dG8gZW5kID0gc3RkOjplbmQoY29udGFpbmVyKTsKKyAgICAgICAgZm9yICg7
IGl0ZXJhdG9yICE9IGVuZDsgKytpdGVyYXRvcikKKyAgICAgICAgICAgIG5ldyAoZGF0YSsrKSBU
KFdURk1vdmUoKml0ZXJhdG9yKSk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IE90aGVyVHJhaXRzID0gUHRyVHJhaXRzPgpAQCAtMTMyLDE2ICsxMzYsMTcgQEAgY2xhc3MgUmVm
Q291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIGFzc2lnbjxQdHJUcmFpdHM+KG90aGVyKTsK
ICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92
ZXJmbG93SGFuZGxlcj4KLSAgICBSZWZDb3VudGVkQXJyYXkmIG9wZXJhdG9yPShjb25zdCBWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIG90aGVyKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENvbnRhaW5lciwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6
OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPj4+CisgICAgUmVmQ291bnRlZEFycmF5JiBvcGVyYXRv
cj0oY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpCiAgICAgewogICAgICAgICBUKiBvbGREYXRh
ID0gZGF0YSgpOwotICAgICAgICBpZiAob3RoZXIuaXNFbXB0eSgpKQorICAgICAgICB1bnNpZ25l
ZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICghc2l6ZSkKICAgICAg
ICAgICAgIFB0clRyYWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YShvdGhl
ci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICAgICAgVmVjdG9y
VHlwZU9wZXJhdGlvbnM8VD46OnVuaW5pdGlhbGl6ZWRDb3B5KG90aGVyLmJlZ2luKCksIG90aGVy
LmVuZCgpLCBkYXRhKTsKKyAgICAgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmlu
aXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5kKGNvbnRhaW5lciks
IGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIGlmICghb2xkRGF0YSkKICAgICAgICAgICAgIHJl
dHVybiAqdGhpczsKQEAgLTE1NiwxOCArMTYxLDIxIEBAIGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7
CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBSZWZDb3VudGVkQXJy
YXkmIG9wZXJhdG9yPShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4m
JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lm
X3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZl
cmVuY2VfdjxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgUmVmQ291bnRlZEFycmF5JiBv
cGVyYXRvcj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAgICAgICBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4gdmVjdG9yKFdURk1vdmUob3RoZXIpKTsKKyAg
ICAgICAgQ29udGFpbmVyIGNvbnRhaW5lcihzdGQ6OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcikp
OwogICAgICAgICBUKiBvbGREYXRhID0gZGF0YSgpOwotICAgICAgICBpZiAodmVjdG9yLmlzRW1w
dHkoKSkKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6c2l6ZShjb250YWluZXIpOworICAg
ICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICBQdHJUcmFpdHM6OmV4Y2hhbmdlKG1fZGF0YSwg
bnVsbHB0cik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRl
VW5pbml0aWFsaXplZERhdGEodmVjdG9yLnNpemUoKSk7CisgICAgICAgICAgICBUKiBkYXRhID0g
YWxsb2NhdGVVbmluaXRpYWxpemVkRGF0YShzaXplKTsKICAgICAgICAgICAgIG1fZGF0YSA9IGRh
dGE7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWN0b3Iu
c2l6ZSgpOyArK2luZGV4KQotICAgICAgICAgICAgICAgIG5ldyAoZGF0YSArIGluZGV4KSBUKFdU
Rk1vdmUodmVjdG9yW2luZGV4XSkpOworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6
YmVnaW4oY29udGFpbmVyKTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gc3RkOjplbmQoY29udGFp
bmVyKTsKKyAgICAgICAgICAgIGZvciAoOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpCisg
ICAgICAgICAgICAgICAgbmV3IChkYXRhKyspIFQoV1RGTW92ZSgqaXRlcmF0b3IpKTsKICAgICAg
ICAgfQogICAgICAgICBpZiAoIW9sZERhdGEpCiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rv
ci5oCmluZGV4IGM0Y2RmYjRjYzVmMjczNGI3YTZhY2VlOTFlOTc5YzljMWI4NjliYjguLjhjNjgy
ZWI5NjA5NTc5Nzc1MWVmZmRkODE5ZmI5MTk1ZjBkMTUxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1ZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC0xNjMsOCAr
MTYzLDggQEAgc3RydWN0IFZlY3RvckNvcGllcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1
Y3QgVmVjdG9yQ29waWVyPGZhbHNlLCBUPgogewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci0g
ICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29uc3QgVCogc3JjLCBjb25zdCBUKiBz
cmNFbmQsIFUqIGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1dEl0ZXJhdG9yLCB0eXBl
bmFtZSBVPgorICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KElucHV0SXRlcmF0b3Ig
c3JjLCBJbnB1dEl0ZXJhdG9yIHNyY0VuZCwgVSogZHN0KQogICAgIHsKICAgICAgICAgd2hpbGUg
KHNyYyAhPSBzcmNFbmQpIHsKICAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgZHN0KSBVKCpzcmMp
OwpAQCAtMTgxLDggKzE4MSw4IEBAIHN0cnVjdCBWZWN0b3JDb3BpZXI8dHJ1ZSwgVD4KICAgICB7
CiAgICAgICAgIG1lbWNweShzdGF0aWNfY2FzdDx2b2lkKj4oZHN0KSwgc3RhdGljX2Nhc3Q8dm9p
ZCo+KGNvbnN0X2Nhc3Q8VCo+KHNyYykpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihz
cmNFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CiAgICAgfQotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci0gICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHko
Y29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFUqIGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBJbnB1dEl0ZXJhdG9yLCB0eXBlbmFtZSBVPgorICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlh
bGl6ZWRDb3B5KElucHV0SXRlcmF0b3Igc3JjLCBJbnB1dEl0ZXJhdG9yIHNyY0VuZCwgVSogZHN0
KQogICAgIHsKICAgICAgICAgVmVjdG9yQ29waWVyPGZhbHNlLCBUPjo6dW5pbml0aWFsaXplZENv
cHkoc3JjLCBzcmNFbmQsIGRzdCk7CiAgICAgfQpAQCAtMjY1LDcgKzI2NSw4IEBAIHN0cnVjdCBW
ZWN0b3JUeXBlT3BlcmF0aW9ucwogICAgICAgICBWZWN0b3JNb3ZlcjxWZWN0b3JUcmFpdHM8VD46
OmNhbk1vdmVXaXRoTWVtY3B5LCBUPjo6bW92ZU92ZXJsYXBwaW5nKHNyYywgc3JjRW5kLCBkc3Qp
OwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNy
YywgY29uc3QgVCogc3JjRW5kLCBUKiBkc3QpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRJ
dGVyYXRvcj4KKyAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShJbnB1dEl0ZXJhdG9y
IHNyYywgSW5wdXRJdGVyYXRvciBzcmNFbmQsIFQqIGRzdCkKICAgICB7CiAgICAgICAgIFZlY3Rv
ckNvcGllcjxWZWN0b3JUcmFpdHM8VD46OmNhbkNvcHlXaXRoTWVtY3B5LCBUPjo6dW5pbml0aWFs
aXplZENvcHkoc3JjLCBzcmNFbmQsIGRzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDdkMmE1ZmZiY2MzYThhODE0MWZmY2Zi
YjJlNWFiZGI2NThhODVjNzUuLmQ3YWM5YzNlOTRiMjliYmFhOWU3N2YwYzZmMjdiMmY2ZjViNzE1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAK
QEAgLTEyMDcsNyArMTIwNyw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd0xheW91dEhh
dGNoaW5nKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRmxvYXRRdWFkIHF1CiBGb250Q2FzY2Fk
ZSBJbnNwZWN0b3JPdmVybGF5Ojpmb250Rm9yTGF5b3V0TGFiZWwoKQogewogICAgIEZvbnRDYXNj
YWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRG
YW1pbGllcyh7ICJzeXN0ZW0tdWkiIH0pOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbGll
cyhSZWZDb3VudGVkQXJyYXk8QXRvbVN0cmluZz4oeyAic3lzdGVtLXVpIiB9KSk7CiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFdlaWdodChGb250U2VsZWN0aW9uVmFsdWUoNTAwKSk7CiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgxMik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0OTI3ZGIzOGE1MjM5NmM5NzFiZDI3OGRj
MGFiYjcyZWNlNGY2MmJhLi5iMmU4Y2Q4Y2EyMTExMmI1N2Q2NThhNmM3YzM3MWJhOWViMDhhZDNl
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHViSW5mbyBpbml0aWFsaXph
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaXhlZFZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMS0xMS0wMiAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY4NDIxKTogVGVzdFdlYktpdEFQSS5XZWJLaXQu
UHJlZmVyZW5jZUNoYW5nZXMqIHRlc3RzIGFyZSBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwCmluZGV4IDE2MTUzZGFjOTcyNWQw
YjU4ZGJmZmNjYjQ2ODI2ODc5NDc4MDE1NWEuLjA3MDdjYWJhY2UwZDFkZWE2ODE0MTIyYmEyYWJl
NzUyZDJlYjczMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
eGVkVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaXhlZFZl
Y3Rvci5jcHAKQEAgLTE3MSw2ICsxNzEsNzkgQEAgVEVTVChXVEZfRml4ZWRWZWN0b3IsIE1vdmVB
c3NpZ25WZWN0b3IpCiAgICAgICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XS52YWx1ZSgpLCBpbmRl
eCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBOb25jb3B5YWJsZVZlY3RvciA6
IHB1YmxpYyBWZWN0b3I8VD4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vbmNvcHlhYmxl
VmVjdG9yKTsKK3B1YmxpYzoKKyAgICBOb25jb3B5YWJsZVZlY3RvcigpID0gZGVmYXVsdDsKK307
CisKK1RFU1QoV1RGX0ZpeGVkVmVjdG9yLCBNb3ZlQ29udGFpbmVyKQoreworICAgIE5vbmNvcHlh
YmxlVmVjdG9yPE1vdmVPbmx5PiB2ZWMxOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDAp
OworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDEpOworICAgIHZlYzEuY29uc3RydWN0QW5k
QXBwZW5kKDIpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOworICAgIEVYUEVDVF9F
USh2ZWMxLnNpemUoKSwgNFUpOworICAgIEZpeGVkVmVjdG9yPE1vdmVPbmx5PiB2ZWMyKFdURk1v
dmUodmVjMSkpOworICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgMFUpOworICAgIEVYUEVDVF9F
USh2ZWMyLnNpemUoKSwgNFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8
IHZlYzIuc2l6ZSgpOyArK2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFs
dWUoKSwgaW5kZXgpOworfQorCitURVNUKFdURl9GaXhlZFZlY3RvciwgTW92ZUFzc2lnbkNvbnRh
aW5lcikKK3sKKyAgICBGaXhlZFZlY3RvcjxNb3ZlT25seT4gdmVjMjsKKyAgICB7CisgICAgICAg
IE5vbmNvcHlhYmxlVmVjdG9yPE1vdmVPbmx5PiB2ZWMxOworICAgICAgICB2ZWMxLmNvbnN0cnVj
dEFuZEFwcGVuZCgwKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAg
ICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDIpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFu
ZEFwcGVuZCgzKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAgICAg
IHZlYzIgPSBXVEZNb3ZlKHZlYzEpOworICAgICAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDBV
KTsKKyAgICB9CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7CisgICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIEVY
UEVDVF9FUSh2ZWMyW2luZGV4XS52YWx1ZSgpLCBpbmRleCk7Cit9CisKK1RFU1QoV1RGX0ZpeGVk
VmVjdG9yLCBSZWZlcmVuY2VDb250YWluZXIpCit7CisgICAgTm9uY29weWFibGVWZWN0b3I8dW5z
aWduZWQ+IHZlYzE7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgdmVjMS5j
b25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMik7Cisg
ICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgp
LCA0VSk7CisgICAgRml4ZWRWZWN0b3I8dW5zaWduZWQ+IHZlYzIodmVjMSk7CisgICAgRVhQRUNU
X0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XSwgaW5kZXgpOworfQorCitURVNUKFdURl9G
aXhlZFZlY3RvciwgUmVmZXJlbmNlQXNzaWduQ29udGFpbmVyKQoreworICAgIEZpeGVkVmVjdG9y
PHVuc2lnbmVkPiB2ZWMyOworICAgIHsKKyAgICAgICAgTm9uY29weWFibGVWZWN0b3I8dW5zaWdu
ZWQ+IHZlYzE7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDApOworICAgICAgICB2
ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgxKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBl
bmQoMik7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOworICAgICAgICBFWFBF
Q1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICAgICAgdmVjMiA9IHZlYzE7CisgICAgICAgIEVY
UEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAgIH0KKyAgICBFWFBFQ1RfRVEodmVjMi5zaXpl
KCksIDRVKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUo
KTsgKytpbmRleCkKKyAgICAgICAgRVhQRUNUX0VRKHZlYzJbaW5kZXhdLCBpbmRleCk7Cit9CisK
IFRFU1QoV1RGX0ZpeGVkVmVjdG9yLCBTd2FwKQogewogICAgIEZpeGVkVmVjdG9yPHVuc2lnbmVk
PiB2ZWMxKDMpOwo=
</data>
<flag name="commit-queue"
          id="467910"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443221</attachid>
            <date>2021-11-03 12:13:15 -0700</date>
            <delta_ts>2021-11-03 13:00:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211103121315.patch</filename>
            <type>text/plain</type>
            <size>20463</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi5mMDFhYmUwZWZkNjZhOGNh
OWFlODc0ZGQyZDEwMDFjZGJmODg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLmFkZDc5NTcyOWU4ZWVmMTgzNjM0NzBlYmM1MTJjMzcxOTIw
YjMzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6CisgICAgICAg
ICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JUeXBlT3BlcmF0aW9uczo6dW5p
bml0aWFsaXplZENvcHkpOgorCiAyMDIxLTExLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gTWlub3IgY2xlYW4tdXAgZm9yIGZvcm1hdC1yZWxh
dGVkIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYyM2IyMDNlYWM1YzljNjVkMDQwNmJjMGVkNmI3
ZmY3MDk4ZjgxOGYuLjU4NTYyODk5YzA2OTljNzhjYzA2NmM3ZDFmY2U3NWQ4MGNiNjZhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJ
bmZvIGluaXRpYWxpemF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmZvbnRGb3JMYXlvdXRMYWJlbCk6CisKIDIwMjEtMTEt
MDIgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTVkcg
ZWxlbWVudHMgc2hvdWxkIGluY2x1ZGUgU1ZHRWxlbWVudElubGluZXMgbm90IEVsZW1lbnRJbmxp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4
IGI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5MTg0MjYyMzQ1OTI3ZWE2ZGYuLjJlZGZkODJkOTk3ZTA2
ODU2Yjk3NDA3YWU2ZTg0Mzc1ZjQzMmQ5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC03ODIsNyArNzgyLDcgQEAgdm9pZCBDb2RlQmxvY2s6
OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENv
ZGUpCiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5p
c0VtcHR5KCkpOwogICAgICAgICBqaXREYXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0
b3I8dm9pZCo+KGppdENvZGUtPm1fY29uc3RhbnRQb29sLnNpemUoKSk7Ci0gICAgICAgIGppdERh
dGEubV9zdHViSW5mb3MgPSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+
bV91bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpOworICAgICAgICBqaXREYXRhLm1fc3R1YkluZm9z
ID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlU3R1YkluZm8+KGppdENvZGUtPm1fdW5saW5rZWRTdHVi
SW5mb3MpOwogICAgICAgICBqaXREYXRhLm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVjdG9yPENh
bGxMaW5rSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgpOyArK2kp
IHsKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9vbC5hdChp
KTsKQEAgLTgwMCw5ICs4MDAsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRC
YXNlbGluZUNvZGUoUmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5m
bzogewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oZW50cnkucG9pbnRlcigpKTsKLSAgICAgICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvID0gaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZv
c1tpbmRleF07CiAgICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0g
aml0RGF0YS5tX3N0dWJJbmZvc1tpbmRleF07Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uaW5p
dGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1Yklu
Zm8pOwogICAgICAgICAgICAgICAgIGppdERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSAmc3R1
YkluZm87CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRl
eCA3N2M5YjhjNzJiMTQ5MDVkMTQ4ODJkNWQ4NTQzMzQ4Nzc5ZTE3MTM5Li5kOTMzZWUwMzE1ZjMx
Njc0YmIzZWM1MGUzMzk1ZWNhNTExMmQ1MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTQxNSwxNCArNDE1LDEz
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNv
bnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmCiAgICAgbV9jYWNoZVR5cGUgPSBuZXdDYWNoZVR5
cGU7CiB9CiAKLXZvaWQgU3RydWN0dXJlU3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1
bmxpbmtlZFN0dWJJbmZvKQorU3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKGNv
bnN0IFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8pCisgICAgOiBT
dHJ1Y3R1cmVTdHViSW5mbyh1bmxpbmtlZFN0dWJJbmZvLmFjY2Vzc1R5cGUsIENvZGVPcmlnaW4o
dW5saW5rZWRTdHViSW5mby5ieXRlY29kZUluZGV4KSkKIHsKLSAgICBhY2Nlc3NUeXBlID0gdW5s
aW5rZWRTdHViSW5mby5hY2Nlc3NUeXBlOwogICAgIHN0YXJ0ID0gdW5saW5rZWRTdHViSW5mby5z
dGFydDsKICAgICBkb25lTG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLmRvbmVMb2NhdGlvbjsK
ICAgICBzbG93UGF0aFN0YXJ0TG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLnNsb3dQYXRoU3Rh
cnRMb2NhdGlvbjsKICAgICBjYWxsU2l0ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwotICAgIGNvZGVP
cmlnaW4gPSBDb2RlT3JpZ2luKHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAg
bV9jb2RlUHRyID0gc2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgIHByb3BlcnR5SXNJbnQzMiA9
IHVubGlua2VkU3R1YkluZm8ucHJvcGVydHlJc0ludDMyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDA0N2I0ZWJmMGVk
MWEwNzg3MGI1MDY1NmEyZjZkYzM0NGVlOGVhNDYuLmU1ZjYyN2YzYTIzYmYzYTdmYTRlOTEwZTc4
NTEyMzYyMGIyYjk4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0xMDMsOSArMTAzLDcgQEAgY2xhc3MgU3RydWN0dXJl
U3R1YkluZm8gewogICAgICAgICByZWdzLnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIH0K
IAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKCkKLSAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhB
Y2Nlc3NUeXBlOjpHZXRCeUlkLCB7IH0pCi0gICAgeyB9CisgICAgU3RydWN0dXJlU3R1YkluZm8o
Y29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyk7CiAKICAg
ICB+U3RydWN0dXJlU3R1YkluZm8oKTsKIApAQCAtMTIyLDggKzEyMCw2IEBAIGNsYXNzIFN0cnVj
dHVyZVN0dWJJbmZvIHsKICAgICB2b2lkIGRlcmVmKCk7CiAgICAgdm9pZCBhYm91dFRvRGllKCk7
CiAKLSAgICB2b2lkIGluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2Rl
QmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0KICAgICBERUNMQVJFX1ZJU0lU
X0FHR1JFR0FURTsKIAogICAgIC8vIENoZWNrIGlmIHRoZSBzdHViIGhhcyB3ZWFrIHJlZmVyZW5j
ZXMgdGhhdCBhcmUgZGVhZC4gSWYgaXQgZG9lcywgdGhlbiBpdCByZXNldHMgaXRzZWxmLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDkyOTQyNDYwNzM0MDA5MTFiNmMzNTdjNzhhNGEw
YzZhNzRlOWFhZDQuLjlmNGYyMjk4ZmI0NGQwOTNhMzc5YTIwMzgzNzAwMTkxM2E0OTI5YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTEwMDcsMTMgKzEwMDcsOSBAQCB2b2lkIEpJ
VDo6bGluaygpCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhB
cml0eUNoZWNrID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihtX2FyaXR5
Q2hlY2spOwogICAgIG1faml0Q29kZSA9IGFkb3B0UmVmKCpuZXcgQmFzZWxpbmVKSVRDb2RlKHJl
c3VsdCwgd2l0aEFyaXR5Q2hlY2spKTsKIAotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxz
ID0gRml4ZWRWZWN0b3I8VW5saW5rZWRDYWxsTGlua0luZm8+KG1fdW5saW5rZWRDYWxscy5zaXpl
KCkpOwotICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5zaXplKCkpCi0gICAgICAg
IHN0ZDo6bW92ZShtX3VubGlua2VkQ2FsbHMuYmVnaW4oKSwgbV91bmxpbmtlZENhbGxzLmVuZCgp
LCBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5iZWdpbigpKTsKKyAgICBtX2ppdENvZGUtPm1f
dW5saW5rZWRDYWxscyA9IFdURk1vdmUobV91bmxpbmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUt
Pm1fZXZhbENhbGxMaW5rSW5mb3MgPSBXVEZNb3ZlKG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAg
IG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8+KG1fdW5saW5rZWRTdHViSW5mb3Muc2l6ZSgpKTsKLSAgICBpZiAobV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1f
dW5saW5rZWRTdHViSW5mb3MuYmVnaW4oKSwgbV91bmxpbmtlZFN0dWJJbmZvcy5lbmQoKSwgbV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLmJlZ2luKCkpOworICAgIG1faml0Q29kZS0+bV91
bmxpbmtlZFN0dWJJbmZvcyA9IFdURk1vdmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgbV9q
aXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7
CiAgICAgbV9qaXRDb2RlLT5tX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3Ry
aW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRD
b2RlTWFwQnVpbGRlci5maW5hbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRml4
ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL0ZpeGVkVmVjdG9yLmgKaW5kZXggMzI4Zjk4MTUx
MGJmN2I2NGY3MzBmMWFiYjhlZTExMDgzMzc2YzFkNC4uYzhhODEyMGM1YmFjZGQ4YTM0MDE3YzY3
OGE4OTFlZTM5NTIxOTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaXhlZFZlY3Rvci5oCkBAIC02MywyNyArNjMsMTUgQEAg
Y2xhc3MgRml4ZWRWZWN0b3IgewogICAgICAgICA6IG1fc3RvcmFnZShzaXplKQogICAgIHsgfQog
Ci0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXI+Ci0gICAgZXhwbGljaXQgRml4ZWRWZWN0b3IoY29uc3QgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKLSAgICAgICAgOiBtX3N0b3JhZ2Uob3Ro
ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFz
dGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIGV4cGxpY2l0
IEZpeGVkVmVjdG9yKENvbnRhaW5lciYmIG90aGVyKQorICAgICAgICA6IG1fc3RvcmFnZShzdGQ6
OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcikpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBGaXhlZFZl
Y3RvciYgb3BlcmF0b3I9KGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dI
YW5kbGVyPiYgb3RoZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVu
YWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgor
ICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBvdGhlcjsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyPgotICAgIGV4cGxpY2l0IEZpeGVkVmVjdG9yKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVyKQotICAgICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKG90
aGVyKSkKLSAgICB7IH0KLQotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBXVEZNb3ZlKG90aGVyKTsKKyAgICAgICAgbV9zdG9yYWdlID0gc3Rk
Ojpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaCBiL1NvdXJj
ZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCmluZGV4IDUwMzMyNTM0MDQwNjJjNDZlNGI1ZTg1
MGJlNjYwNjliMDdjNDc5YTYuLjgyMTlkNzNhMjRjOTIyZDdkMGM1Y2RlMDA4ZmQ4NjliOWYxMjVm
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCkBAIC05MywzMiArOTMsMzYgQEAgY2xhc3Mg
UmVmQ291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB0
ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4K
LSAgICBleHBsaWNpdCBSZWZDb3VudGVkQXJyYXkoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250
YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBi
b29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KGNvbnN0IENvbnRhaW5l
ciYgY29udGFpbmVyKQogICAgIHsKLSAgICAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkgeworICAg
ICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICgh
c2l6ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFs
bG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgVCogZGF0YSA9
IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEoc2l6ZSk7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7
Ci0gICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShvdGhl
ci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAgIFZlY3RvclR5cGVPcGVyYXRp
b25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5k
KGNvbnRhaW5lciksIGRhdGEpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50
ZWRBcnJheShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhl
cikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2Vf
djxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5
KENvbnRhaW5lciYmIG90aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7Ci0gICAgICAgIGlm
ICh2ZWN0b3IuaXNFbXB0eSgpKSB7CisgICAgICAgIENvbnRhaW5lciBjb250YWluZXIoc3RkOjpm
b3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6
c2l6ZShjb250YWluZXIpOworICAgICAgICBpZiAoIXNpemUpIHsKICAgICAgICAgICAgIFB0clRy
YWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZl
Y3Rvci5zaXplKCkpOworICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0
YShzaXplKTsKICAgICAgICAgbV9kYXRhID0gZGF0YTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAgICAgICAgIG5l
dyAoZGF0YSArIGluZGV4KSBUKFdURk1vdmUodmVjdG9yW2luZGV4XSkpOworICAgICAgICBhdXRv
IGl0ZXJhdG9yID0gc3RkOjpiZWdpbihjb250YWluZXIpOworICAgICAgICBhdXRvIGVuZCA9IHN0
ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgIGZvciAoOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRl
cmF0b3IpCisgICAgICAgICAgICBuZXcgKGRhdGErKykgVChXVEZNb3ZlKCppdGVyYXRvcikpOwog
ICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPdGhlclRyYWl0cyA9IFB0clRyYWl0
cz4KQEAgLTEzMiwxNiArMTM2LDE3IEBAIGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7CiAgICAgICAg
IHJldHVybiBhc3NpZ248UHRyVHJhaXRzPihvdGhlcik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8
c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVm
Q291bnRlZEFycmF5JiBvcGVyYXRvcj0oY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19pbnRlZ3JhbF92PENvbnRhaW5l
cj4+PgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KGNvbnN0IENvbnRhaW5lciYgY29u
dGFpbmVyKQogICAgIHsKICAgICAgICAgVCogb2xkRGF0YSA9IGRhdGEoKTsKLSAgICAgICAgaWYg
KG90aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6c2l6ZShjb250
YWluZXIpOworICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICBQdHJUcmFpdHM6OmV4Y2hh
bmdlKG1fZGF0YSwgbnVsbHB0cik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgVCogZGF0
YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgICAg
IFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICAgICAg
bV9kYXRhID0gZGF0YTsKLSAgICAgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmlu
aXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAg
ICAgICBWZWN0b3JUeXBlT3BlcmF0aW9uczxUPjo6dW5pbml0aWFsaXplZENvcHkoc3RkOjpiZWdp
bihjb250YWluZXIpLCBzdGQ6OmVuZChjb250YWluZXIpLCBkYXRhKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoIW9sZERhdGEpCiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CkBAIC0xNTYsMTgg
KzE2MSwyMSBAQCBjbGFzcyBSZWZDb3VudGVkQXJyYXkgewogICAgICAgICByZXR1cm4gKnRoaXM7
CiAgICAgfQogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVmQ291bnRlZEFycmF5JiBvcGVyYXRvcj0oVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8
Q29udGFpbmVyPiAmJiAhc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlX3Y8Q29udGFpbmVyPiwgYm9v
bD4gPSB0cnVlPgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KENvbnRhaW5lciYmIG90
aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7CisgICAgICAgIENvbnRhaW5lciBjb250YWlu
ZXIoc3RkOjpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKICAgICAgICAgVCogb2xkRGF0YSA9
IGRhdGEoKTsKLSAgICAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCisgICAgICAgIHVuc2lnbmVk
IHNpemUgPSBzdGQ6OnNpemUoY29udGFpbmVyKTsKKyAgICAgICAgaWYgKCFzaXplKQogICAgICAg
ICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwogICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZlY3Rv
ci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAg
ICAgICAgICAgICBuZXcgKGRhdGEgKyBpbmRleCkgVChXVEZNb3ZlKHZlY3RvcltpbmRleF0pKTsK
KyAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OmJlZ2luKGNvbnRhaW5lcik7CisgICAg
ICAgICAgICBhdXRvIGVuZCA9IHN0ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgICAgICBmb3Ig
KDsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKQorICAgICAgICAgICAgICAgIG5ldyAoZGF0
YSsrKSBUKFdURk1vdmUoKml0ZXJhdG9yKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFvbGRE
YXRhKQogICAgICAgICAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU2VnbWVudGVkVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3IuaApp
bmRleCBjNWI5ZThhMWVjZGQzNWQ1Y2IzZGQ5ZGU1NTEwZTBjNDgyOWM2MzUxLi41YTI1N2RkYjQw
Njc1NWQwOWE0M2M3NmRlYmYwZDcyZmIwODY3ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9TZWdtZW50ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3Iu
aApAQCAtMTA4LDYgKzEwOCw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB1c2luZyBpdGVy
YXRvciA9IEl0ZXJhdG9yOwogCiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcigpID0gZGVmYXVsdDsK
KyAgICAgICAgU2VnbWVudGVkVmVjdG9yKFNlZ21lbnRlZFZlY3RvciYmKSA9IGRlZmF1bHQ7Cisg
ICAgICAgIFNlZ21lbnRlZFZlY3RvciYgb3BlcmF0b3I9KFNlZ21lbnRlZFZlY3RvciYpID0gZGVm
YXVsdDsKIAogICAgICAgICB+U2VnbWVudGVkVmVjdG9yKCkKICAgICAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRl
eCBjNGNkZmI0Y2M1ZjI3MzRiN2E2YWNlZTkxZTk3OWM5YzFiODY5YmI4Li44YzY4MmViOTYwOTU3
OTc3NTFlZmZkZDgxOWZiOTE5NWYwZDE1MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMTYzLDggKzE2Myw4IEBA
IHN0cnVjdCBWZWN0b3JDb3BpZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IFZlY3Rv
ckNvcGllcjxmYWxzZSwgVD4KIHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgotICAgIHN0YXRp
YyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNyYywgY29uc3QgVCogc3JjRW5kLCBV
KiBkc3QpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRJdGVyYXRvciwgdHlwZW5hbWUgVT4K
KyAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShJbnB1dEl0ZXJhdG9yIHNyYywgSW5w
dXRJdGVyYXRvciBzcmNFbmQsIFUqIGRzdCkKICAgICB7CiAgICAgICAgIHdoaWxlIChzcmMgIT0g
c3JjRW5kKSB7CiAgICAgICAgICAgICBuZXcgKE5vdE51bGwsIGRzdCkgVSgqc3JjKTsKQEAgLTE4
MSw4ICsxODEsOCBAQCBzdHJ1Y3QgVmVjdG9yQ29waWVyPHRydWUsIFQ+CiAgICAgewogICAgICAg
ICBtZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KGRzdCksIHN0YXRpY19jYXN0PHZvaWQqPihjb25z
dF9jYXN0PFQqPihzcmMpKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjRW5kKSAt
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyYykpOwogICAgIH0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPgotICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQq
IHNyYywgY29uc3QgVCogc3JjRW5kLCBVKiBkc3QpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5w
dXRJdGVyYXRvciwgdHlwZW5hbWUgVT4KKyAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29w
eShJbnB1dEl0ZXJhdG9yIHNyYywgSW5wdXRJdGVyYXRvciBzcmNFbmQsIFUqIGRzdCkKICAgICB7
CiAgICAgICAgIFZlY3RvckNvcGllcjxmYWxzZSwgVD46OnVuaW5pdGlhbGl6ZWRDb3B5KHNyYywg
c3JjRW5kLCBkc3QpOwogICAgIH0KQEAgLTI2NSw3ICsyNjUsOCBAQCBzdHJ1Y3QgVmVjdG9yVHlw
ZU9wZXJhdGlvbnMKICAgICAgICAgVmVjdG9yTW92ZXI8VmVjdG9yVHJhaXRzPFQ+OjpjYW5Nb3Zl
V2l0aE1lbWNweSwgVD46Om1vdmVPdmVybGFwcGluZyhzcmMsIHNyY0VuZCwgZHN0KTsKICAgICB9
CiAKLSAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0
IFQqIHNyY0VuZCwgVCogZHN0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElucHV0SXRlcmF0b3I+
CisgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoSW5wdXRJdGVyYXRvciBzcmMsIElu
cHV0SXRlcmF0b3Igc3JjRW5kLCBUKiBkc3QpCiAgICAgewogICAgICAgICBWZWN0b3JDb3BpZXI8
VmVjdG9yVHJhaXRzPFQ+OjpjYW5Db3B5V2l0aE1lbWNweSwgVD46OnVuaW5pdGlhbGl6ZWRDb3B5
KHNyYywgc3JjRW5kLCBkc3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA3ZDJhNWZmYmNjM2E4YTgxNDFmZmNmYmIyZTVhYmRi
NjU4YTg1Yzc1Li42OGVlZjQxMjk3MjYyZTFmZmI3ZmUwN2I0Y2I0NDhkOGViZmYyMWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0xMjA3
LDcgKzEyMDcsNyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdMYXlvdXRIYXRjaGluZyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEZsb2F0UXVhZCBxdQogRm9udENhc2NhZGUgSW5zcGVj
dG9yT3ZlcmxheTo6Zm9udEZvckxheW91dExhYmVsKCkKIHsKICAgICBGb250Q2FzY2FkZURlc2Ny
aXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0RmFtaWxpZXMo
eyAic3lzdGVtLXVpIiB9KTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0RmFtaWxpZXMoVmVjdG9y
PEF0b21TdHJpbmc+IHsgInN5c3RlbS11aSIgfSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFdl
aWdodChGb250U2VsZWN0aW9uVmFsdWUoNTAwKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldENv
bXB1dGVkU2l6ZSgxMik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0OTI3ZGIzOGE1MjM5NmM5NzFiZDI3OGRjMGFiYjcyZWNlNGY2MmJhLi5i
MmU4Y2Q4Y2EyMTExMmI1N2Q2NThhNmM3YzM3MWJhOWViMDhhZDNlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHViSW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaXhlZFZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwog
MjAyMS0xMS0wMiAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjY4NDIxKTogVGVzdFdlYktpdEFQSS5XZWJLaXQuUHJlZmVyZW5jZUNoYW5nZXMq
IHRlc3RzIGFyZSBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvRml4ZWRWZWN0b3IuY3BwCmluZGV4IDE2MTUzZGFjOTcyNWQwYjU4ZGJmZmNjYjQ2ODI2ODc5
NDc4MDE1NWEuLmIzNTk0N2Y0YTg0MmVlYTY0Yjk4ZGRiMmFmNmEwYmM1ZDZlZTdiNmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9yLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaXhlZFZlY3Rvci5jcHAKQEAgLTE3MSw2
ICsxNzEsODEgQEAgVEVTVChXVEZfRml4ZWRWZWN0b3IsIE1vdmVBc3NpZ25WZWN0b3IpCiAgICAg
ICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XS52YWx1ZSgpLCBpbmRleCk7CiB9CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitjbGFzcyBOb25jb3B5YWJsZVZlY3RvciA6IHB1YmxpYyBWZWN0b3I8VD4g
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vbmNvcHlhYmxlVmVjdG9yKTsKK3B1YmxpYzoK
KyAgICBOb25jb3B5YWJsZVZlY3RvcigpID0gZGVmYXVsdDsKKyAgICBOb25jb3B5YWJsZVZlY3Rv
cihOb25jb3B5YWJsZVZlY3RvciYmKSA9IGRlZmF1bHQ7CisgICAgTm9uY29weWFibGVWZWN0b3Im
IG9wZXJhdG9yPShOb25jb3B5YWJsZVZlY3RvciYmKSA9IGRlZmF1bHQ7Cit9OworCitURVNUKFdU
Rl9GaXhlZFZlY3RvciwgTW92ZUNvbnRhaW5lcikKK3sKKyAgICBOb25jb3B5YWJsZVZlY3RvcjxN
b3ZlT25seT4gdmVjMTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgwKTsKKyAgICB2ZWMx
LmNvbnN0cnVjdEFuZEFwcGVuZCgxKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsK
KyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgzKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5zaXpl
KCksIDRVKTsKKyAgICBGaXhlZFZlY3RvcjxNb3ZlT25seT4gdmVjMihXVEZNb3ZlKHZlYzEpKTsK
KyAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDBVKTsKKyAgICBFWFBFQ1RfRVEodmVjMi5zaXpl
KCksIDRVKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUo
KTsgKytpbmRleCkKKyAgICAgICAgRVhQRUNUX0VRKHZlYzJbaW5kZXhdLnZhbHVlKCksIGluZGV4
KTsKK30KKworVEVTVChXVEZfRml4ZWRWZWN0b3IsIE1vdmVBc3NpZ25Db250YWluZXIpCit7Cisg
ICAgRml4ZWRWZWN0b3I8TW92ZU9ubHk+IHZlYzI7CisgICAgeworICAgICAgICBOb25jb3B5YWJs
ZVZlY3RvcjxNb3ZlT25seT4gdmVjMTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQo
MCk7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDEpOworICAgICAgICB2ZWMxLmNv
bnN0cnVjdEFuZEFwcGVuZCgyKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMyk7
CisgICAgICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAgICAgICB2ZWMyID0gV1RG
TW92ZSh2ZWMxKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCAwVSk7CisgICAgfQor
ICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUoKSwgNFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXgg
PSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgpOyArK2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVj
MltpbmRleF0udmFsdWUoKSwgaW5kZXgpOworfQorCitURVNUKFdURl9GaXhlZFZlY3RvciwgUmVm
ZXJlbmNlQ29udGFpbmVyKQoreworICAgIE5vbmNvcHlhYmxlVmVjdG9yPHVuc2lnbmVkPiB2ZWMx
OworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDApOworICAgIHZlYzEuY29uc3RydWN0QW5k
QXBwZW5kKDEpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDIpOworICAgIHZlYzEuY29u
c3RydWN0QW5kQXBwZW5kKDMpOworICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgNFUpOworICAg
IEZpeGVkVmVjdG9yPHVuc2lnbmVkPiB2ZWMyKHZlYzEpOworICAgIEVYUEVDVF9FUSh2ZWMxLnNp
emUoKSwgNFUpOworICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUoKSwgNFUpOworICAgIGZvciAodW5z
aWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgpOyArK2luZGV4KQorICAgICAgICBF
WFBFQ1RfRVEodmVjMltpbmRleF0sIGluZGV4KTsKK30KKworVEVTVChXVEZfRml4ZWRWZWN0b3Is
IFJlZmVyZW5jZUFzc2lnbkNvbnRhaW5lcikKK3sKKyAgICBGaXhlZFZlY3Rvcjx1bnNpZ25lZD4g
dmVjMjsKKyAgICB7CisgICAgICAgIE5vbmNvcHlhYmxlVmVjdG9yPHVuc2lnbmVkPiB2ZWMxOwor
ICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgwKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1
Y3RBbmRBcHBlbmQoMSk7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDIpOworICAg
ICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgzKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlYzEu
c2l6ZSgpLCA0VSk7CisgICAgICAgIHZlYzIgPSB2ZWMxOworICAgICAgICBFWFBFQ1RfRVEodmVj
MS5zaXplKCksIDRVKTsKKyAgICB9CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XSwgaW5kZXgpOworfQorCiBURVNUKFdURl9G
aXhlZFZlY3RvciwgU3dhcCkKIHsKICAgICBGaXhlZFZlY3Rvcjx1bnNpZ25lZD4gdmVjMSgzKTsK
</data>
<flag name="commit-queue"
          id="467930"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443226</attachid>
            <date>2021-11-03 12:37:15 -0700</date>
            <delta_ts>2021-11-03 14:27:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211103123714.patch</filename>
            <type>text/plain</type>
            <size>20464</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi5mMDFhYmUwZWZkNjZhOGNh
OWFlODc0ZGQyZDEwMDFjZGJmODg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLmFkZDc5NTcyOWU4ZWVmMTgzNjM0NzBlYmM1MTJjMzcxOTIw
YjMzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6CisgICAgICAg
ICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JUeXBlT3BlcmF0aW9uczo6dW5p
bml0aWFsaXplZENvcHkpOgorCiAyMDIxLTExLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gTWlub3IgY2xlYW4tdXAgZm9yIGZvcm1hdC1yZWxh
dGVkIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYyM2IyMDNlYWM1YzljNjVkMDQwNmJjMGVkNmI3
ZmY3MDk4ZjgxOGYuLjU4NTYyODk5YzA2OTljNzhjYzA2NmM3ZDFmY2U3NWQ4MGNiNjZhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJ
bmZvIGluaXRpYWxpemF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmZvbnRGb3JMYXlvdXRMYWJlbCk6CisKIDIwMjEtMTEt
MDIgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTVkcg
ZWxlbWVudHMgc2hvdWxkIGluY2x1ZGUgU1ZHRWxlbWVudElubGluZXMgbm90IEVsZW1lbnRJbmxp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4
IGI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5MTg0MjYyMzQ1OTI3ZWE2ZGYuLjJlZGZkODJkOTk3ZTA2
ODU2Yjk3NDA3YWU2ZTg0Mzc1ZjQzMmQ5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC03ODIsNyArNzgyLDcgQEAgdm9pZCBDb2RlQmxvY2s6
OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENv
ZGUpCiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5p
c0VtcHR5KCkpOwogICAgICAgICBqaXREYXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0
b3I8dm9pZCo+KGppdENvZGUtPm1fY29uc3RhbnRQb29sLnNpemUoKSk7Ci0gICAgICAgIGppdERh
dGEubV9zdHViSW5mb3MgPSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+
bV91bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpOworICAgICAgICBqaXREYXRhLm1fc3R1YkluZm9z
ID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlU3R1YkluZm8+KGppdENvZGUtPm1fdW5saW5rZWRTdHVi
SW5mb3MpOwogICAgICAgICBqaXREYXRhLm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVjdG9yPENh
bGxMaW5rSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgpOyArK2kp
IHsKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9vbC5hdChp
KTsKQEAgLTgwMCw5ICs4MDAsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRC
YXNlbGluZUNvZGUoUmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5m
bzogewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oZW50cnkucG9pbnRlcigpKTsKLSAgICAgICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvID0gaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZv
c1tpbmRleF07CiAgICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0g
aml0RGF0YS5tX3N0dWJJbmZvc1tpbmRleF07Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uaW5p
dGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1Yklu
Zm8pOwogICAgICAgICAgICAgICAgIGppdERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSAmc3R1
YkluZm87CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRl
eCA3N2M5YjhjNzJiMTQ5MDVkMTQ4ODJkNWQ4NTQzMzQ4Nzc5ZTE3MTM5Li5kOTMzZWUwMzE1ZjMx
Njc0YmIzZWM1MGUzMzk1ZWNhNTExMmQ1MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTQxNSwxNCArNDE1LDEz
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNv
bnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmCiAgICAgbV9jYWNoZVR5cGUgPSBuZXdDYWNoZVR5
cGU7CiB9CiAKLXZvaWQgU3RydWN0dXJlU3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1
bmxpbmtlZFN0dWJJbmZvKQorU3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKGNv
bnN0IFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8pCisgICAgOiBT
dHJ1Y3R1cmVTdHViSW5mbyh1bmxpbmtlZFN0dWJJbmZvLmFjY2Vzc1R5cGUsIENvZGVPcmlnaW4o
dW5saW5rZWRTdHViSW5mby5ieXRlY29kZUluZGV4KSkKIHsKLSAgICBhY2Nlc3NUeXBlID0gdW5s
aW5rZWRTdHViSW5mby5hY2Nlc3NUeXBlOwogICAgIHN0YXJ0ID0gdW5saW5rZWRTdHViSW5mby5z
dGFydDsKICAgICBkb25lTG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLmRvbmVMb2NhdGlvbjsK
ICAgICBzbG93UGF0aFN0YXJ0TG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLnNsb3dQYXRoU3Rh
cnRMb2NhdGlvbjsKICAgICBjYWxsU2l0ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwotICAgIGNvZGVP
cmlnaW4gPSBDb2RlT3JpZ2luKHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAg
bV9jb2RlUHRyID0gc2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgIHByb3BlcnR5SXNJbnQzMiA9
IHVubGlua2VkU3R1YkluZm8ucHJvcGVydHlJc0ludDMyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDA0N2I0ZWJmMGVk
MWEwNzg3MGI1MDY1NmEyZjZkYzM0NGVlOGVhNDYuLmU1ZjYyN2YzYTIzYmYzYTdmYTRlOTEwZTc4
NTEyMzYyMGIyYjk4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0xMDMsOSArMTAzLDcgQEAgY2xhc3MgU3RydWN0dXJl
U3R1YkluZm8gewogICAgICAgICByZWdzLnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIH0K
IAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKCkKLSAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhB
Y2Nlc3NUeXBlOjpHZXRCeUlkLCB7IH0pCi0gICAgeyB9CisgICAgU3RydWN0dXJlU3R1YkluZm8o
Y29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyk7CiAKICAg
ICB+U3RydWN0dXJlU3R1YkluZm8oKTsKIApAQCAtMTIyLDggKzEyMCw2IEBAIGNsYXNzIFN0cnVj
dHVyZVN0dWJJbmZvIHsKICAgICB2b2lkIGRlcmVmKCk7CiAgICAgdm9pZCBhYm91dFRvRGllKCk7
CiAKLSAgICB2b2lkIGluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2Rl
QmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0KICAgICBERUNMQVJFX1ZJU0lU
X0FHR1JFR0FURTsKIAogICAgIC8vIENoZWNrIGlmIHRoZSBzdHViIGhhcyB3ZWFrIHJlZmVyZW5j
ZXMgdGhhdCBhcmUgZGVhZC4gSWYgaXQgZG9lcywgdGhlbiBpdCByZXNldHMgaXRzZWxmLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDkyOTQyNDYwNzM0MDA5MTFiNmMzNTdjNzhhNGEw
YzZhNzRlOWFhZDQuLjlmNGYyMjk4ZmI0NGQwOTNhMzc5YTIwMzgzNzAwMTkxM2E0OTI5YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTEwMDcsMTMgKzEwMDcsOSBAQCB2b2lkIEpJ
VDo6bGluaygpCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhB
cml0eUNoZWNrID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihtX2FyaXR5
Q2hlY2spOwogICAgIG1faml0Q29kZSA9IGFkb3B0UmVmKCpuZXcgQmFzZWxpbmVKSVRDb2RlKHJl
c3VsdCwgd2l0aEFyaXR5Q2hlY2spKTsKIAotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxz
ID0gRml4ZWRWZWN0b3I8VW5saW5rZWRDYWxsTGlua0luZm8+KG1fdW5saW5rZWRDYWxscy5zaXpl
KCkpOwotICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5zaXplKCkpCi0gICAgICAg
IHN0ZDo6bW92ZShtX3VubGlua2VkQ2FsbHMuYmVnaW4oKSwgbV91bmxpbmtlZENhbGxzLmVuZCgp
LCBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5iZWdpbigpKTsKKyAgICBtX2ppdENvZGUtPm1f
dW5saW5rZWRDYWxscyA9IFdURk1vdmUobV91bmxpbmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUt
Pm1fZXZhbENhbGxMaW5rSW5mb3MgPSBXVEZNb3ZlKG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAg
IG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8+KG1fdW5saW5rZWRTdHViSW5mb3Muc2l6ZSgpKTsKLSAgICBpZiAobV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1f
dW5saW5rZWRTdHViSW5mb3MuYmVnaW4oKSwgbV91bmxpbmtlZFN0dWJJbmZvcy5lbmQoKSwgbV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLmJlZ2luKCkpOworICAgIG1faml0Q29kZS0+bV91
bmxpbmtlZFN0dWJJbmZvcyA9IFdURk1vdmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgbV9q
aXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7
CiAgICAgbV9qaXRDb2RlLT5tX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3Ry
aW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRD
b2RlTWFwQnVpbGRlci5maW5hbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRml4
ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL0ZpeGVkVmVjdG9yLmgKaW5kZXggMzI4Zjk4MTUx
MGJmN2I2NGY3MzBmMWFiYjhlZTExMDgzMzc2YzFkNC4uYzhhODEyMGM1YmFjZGQ4YTM0MDE3YzY3
OGE4OTFlZTM5NTIxOTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaXhlZFZlY3Rvci5oCkBAIC02MywyNyArNjMsMTUgQEAg
Y2xhc3MgRml4ZWRWZWN0b3IgewogICAgICAgICA6IG1fc3RvcmFnZShzaXplKQogICAgIHsgfQog
Ci0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXI+Ci0gICAgZXhwbGljaXQgRml4ZWRWZWN0b3IoY29uc3QgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKLSAgICAgICAgOiBtX3N0b3JhZ2Uob3Ro
ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFz
dGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIGV4cGxpY2l0
IEZpeGVkVmVjdG9yKENvbnRhaW5lciYmIG90aGVyKQorICAgICAgICA6IG1fc3RvcmFnZShzdGQ6
OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcikpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBGaXhlZFZl
Y3RvciYgb3BlcmF0b3I9KGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dI
YW5kbGVyPiYgb3RoZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVu
YWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgor
ICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBvdGhlcjsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyPgotICAgIGV4cGxpY2l0IEZpeGVkVmVjdG9yKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVyKQotICAgICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKG90
aGVyKSkKLSAgICB7IH0KLQotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBXVEZNb3ZlKG90aGVyKTsKKyAgICAgICAgbV9zdG9yYWdlID0gc3Rk
Ojpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaCBiL1NvdXJj
ZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCmluZGV4IDUwMzMyNTM0MDQwNjJjNDZlNGI1ZTg1
MGJlNjYwNjliMDdjNDc5YTYuLjgyMTlkNzNhMjRjOTIyZDdkMGM1Y2RlMDA4ZmQ4NjliOWYxMjVm
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCkBAIC05MywzMiArOTMsMzYgQEAgY2xhc3Mg
UmVmQ291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB0
ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4K
LSAgICBleHBsaWNpdCBSZWZDb3VudGVkQXJyYXkoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250
YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBi
b29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KGNvbnN0IENvbnRhaW5l
ciYgY29udGFpbmVyKQogICAgIHsKLSAgICAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkgeworICAg
ICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICgh
c2l6ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFs
bG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgVCogZGF0YSA9
IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEoc2l6ZSk7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7
Ci0gICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShvdGhl
ci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAgIFZlY3RvclR5cGVPcGVyYXRp
b25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5k
KGNvbnRhaW5lciksIGRhdGEpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50
ZWRBcnJheShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhl
cikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2Vf
djxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5
KENvbnRhaW5lciYmIG90aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7Ci0gICAgICAgIGlm
ICh2ZWN0b3IuaXNFbXB0eSgpKSB7CisgICAgICAgIENvbnRhaW5lciBjb250YWluZXIoc3RkOjpm
b3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6
c2l6ZShjb250YWluZXIpOworICAgICAgICBpZiAoIXNpemUpIHsKICAgICAgICAgICAgIFB0clRy
YWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZl
Y3Rvci5zaXplKCkpOworICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0
YShzaXplKTsKICAgICAgICAgbV9kYXRhID0gZGF0YTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAgICAgICAgIG5l
dyAoZGF0YSArIGluZGV4KSBUKFdURk1vdmUodmVjdG9yW2luZGV4XSkpOworICAgICAgICBhdXRv
IGl0ZXJhdG9yID0gc3RkOjpiZWdpbihjb250YWluZXIpOworICAgICAgICBhdXRvIGVuZCA9IHN0
ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgIGZvciAoOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRl
cmF0b3IpCisgICAgICAgICAgICBuZXcgKGRhdGErKykgVChXVEZNb3ZlKCppdGVyYXRvcikpOwog
ICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPdGhlclRyYWl0cyA9IFB0clRyYWl0
cz4KQEAgLTEzMiwxNiArMTM2LDE3IEBAIGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7CiAgICAgICAg
IHJldHVybiBhc3NpZ248UHRyVHJhaXRzPihvdGhlcik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8
c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVm
Q291bnRlZEFycmF5JiBvcGVyYXRvcj0oY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19pbnRlZ3JhbF92PENvbnRhaW5l
cj4+PgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KGNvbnN0IENvbnRhaW5lciYgY29u
dGFpbmVyKQogICAgIHsKICAgICAgICAgVCogb2xkRGF0YSA9IGRhdGEoKTsKLSAgICAgICAgaWYg
KG90aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6c2l6ZShjb250
YWluZXIpOworICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICBQdHJUcmFpdHM6OmV4Y2hh
bmdlKG1fZGF0YSwgbnVsbHB0cik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgVCogZGF0
YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgICAg
IFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICAgICAg
bV9kYXRhID0gZGF0YTsKLSAgICAgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmlu
aXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAg
ICAgICBWZWN0b3JUeXBlT3BlcmF0aW9uczxUPjo6dW5pbml0aWFsaXplZENvcHkoc3RkOjpiZWdp
bihjb250YWluZXIpLCBzdGQ6OmVuZChjb250YWluZXIpLCBkYXRhKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoIW9sZERhdGEpCiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CkBAIC0xNTYsMTgg
KzE2MSwyMSBAQCBjbGFzcyBSZWZDb3VudGVkQXJyYXkgewogICAgICAgICByZXR1cm4gKnRoaXM7
CiAgICAgfQogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVmQ291bnRlZEFycmF5JiBvcGVyYXRvcj0oVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8
Q29udGFpbmVyPiAmJiAhc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlX3Y8Q29udGFpbmVyPiwgYm9v
bD4gPSB0cnVlPgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KENvbnRhaW5lciYmIG90
aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7CisgICAgICAgIENvbnRhaW5lciBjb250YWlu
ZXIoc3RkOjpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKICAgICAgICAgVCogb2xkRGF0YSA9
IGRhdGEoKTsKLSAgICAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCisgICAgICAgIHVuc2lnbmVk
IHNpemUgPSBzdGQ6OnNpemUoY29udGFpbmVyKTsKKyAgICAgICAgaWYgKCFzaXplKQogICAgICAg
ICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwogICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZlY3Rv
ci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAg
ICAgICAgICAgICBuZXcgKGRhdGEgKyBpbmRleCkgVChXVEZNb3ZlKHZlY3RvcltpbmRleF0pKTsK
KyAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OmJlZ2luKGNvbnRhaW5lcik7CisgICAg
ICAgICAgICBhdXRvIGVuZCA9IHN0ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgICAgICBmb3Ig
KDsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKQorICAgICAgICAgICAgICAgIG5ldyAoZGF0
YSsrKSBUKFdURk1vdmUoKml0ZXJhdG9yKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFvbGRE
YXRhKQogICAgICAgICAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU2VnbWVudGVkVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3IuaApp
bmRleCBjNWI5ZThhMWVjZGQzNWQ1Y2IzZGQ5ZGU1NTEwZTBjNDgyOWM2MzUxLi45MzZiZWYzZjYx
ZmVhNjA1ODc2YWFmNmEyMTU4YmQyZTkzZTVmZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9TZWdtZW50ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3Iu
aApAQCAtMTA4LDYgKzEwOCw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB1c2luZyBpdGVy
YXRvciA9IEl0ZXJhdG9yOwogCiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcigpID0gZGVmYXVsdDsK
KyAgICAgICAgU2VnbWVudGVkVmVjdG9yKFNlZ21lbnRlZFZlY3RvciYmKSA9IGRlZmF1bHQ7Cisg
ICAgICAgIFNlZ21lbnRlZFZlY3RvciYgb3BlcmF0b3I9KFNlZ21lbnRlZFZlY3RvciYmKSA9IGRl
ZmF1bHQ7CiAKICAgICAgICAgflNlZ21lbnRlZFZlY3RvcigpCiAgICAgICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5k
ZXggYzRjZGZiNGNjNWYyNzM0YjdhNmFjZWU5MWU5NzljOWMxYjg2OWJiOC4uOGM2ODJlYjk2MDk1
Nzk3NzUxZWZmZGQ4MTlmYjkxOTVmMGQxNTE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VmVjdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAgLTE2Myw4ICsxNjMsOCBA
QCBzdHJ1Y3QgVmVjdG9yQ29waWVyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBWZWN0
b3JDb3BpZXI8ZmFsc2UsIFQ+CiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KLSAgICBzdGF0
aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwg
VSogZHN0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElucHV0SXRlcmF0b3IsIHR5cGVuYW1lIFU+
CisgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoSW5wdXRJdGVyYXRvciBzcmMsIElu
cHV0SXRlcmF0b3Igc3JjRW5kLCBVKiBkc3QpCiAgICAgewogICAgICAgICB3aGlsZSAoc3JjICE9
IHNyY0VuZCkgewogICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBkc3QpIFUoKnNyYyk7CkBAIC0x
ODEsOCArMTgxLDggQEAgc3RydWN0IFZlY3RvckNvcGllcjx0cnVlLCBUPgogICAgIHsKICAgICAg
ICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPihkc3QpLCBzdGF0aWNfY2FzdDx2b2lkKj4oY29u
c3RfY2FzdDxUKj4oc3JjKSksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0VuZCkg
LSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKICAgICB9Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVT4KLSAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBU
KiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVSogZHN0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElu
cHV0SXRlcmF0b3IsIHR5cGVuYW1lIFU+CisgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENv
cHkoSW5wdXRJdGVyYXRvciBzcmMsIElucHV0SXRlcmF0b3Igc3JjRW5kLCBVKiBkc3QpCiAgICAg
ewogICAgICAgICBWZWN0b3JDb3BpZXI8ZmFsc2UsIFQ+Ojp1bmluaXRpYWxpemVkQ29weShzcmMs
IHNyY0VuZCwgZHN0KTsKICAgICB9CkBAIC0yNjUsNyArMjY1LDggQEAgc3RydWN0IFZlY3RvclR5
cGVPcGVyYXRpb25zCiAgICAgICAgIFZlY3Rvck1vdmVyPFZlY3RvclRyYWl0czxUPjo6Y2FuTW92
ZVdpdGhNZW1jcHksIFQ+Ojptb3ZlT3ZlcmxhcHBpbmcoc3JjLCBzcmNFbmQsIGRzdCk7CiAgICAg
fQogCi0gICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29uc3QgVCogc3JjLCBjb25z
dCBUKiBzcmNFbmQsIFQqIGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1dEl0ZXJhdG9y
PgorICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KElucHV0SXRlcmF0b3Igc3JjLCBJ
bnB1dEl0ZXJhdG9yIHNyY0VuZCwgVCogZHN0KQogICAgIHsKICAgICAgICAgVmVjdG9yQ29waWVy
PFZlY3RvclRyYWl0czxUPjo6Y2FuQ29weVdpdGhNZW1jcHksIFQ+Ojp1bmluaXRpYWxpemVkQ29w
eShzcmMsIHNyY0VuZCwgZHN0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggN2QyYTVmZmJjYzNhOGE4MTQxZmZjZmJiMmU1YWJk
YjY1OGE4NWM3NS4uNjhlZWY0MTI5NzI2MmUxZmZiN2ZlMDdiNGNiNDQ4ZDhlYmZmMjFlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtMTIw
Nyw3ICsxMjA3LDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3TGF5b3V0SGF0Y2hpbmco
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBGbG9hdFF1YWQgcXUKIEZvbnRDYXNjYWRlIEluc3Bl
Y3Rvck92ZXJsYXk6OmZvbnRGb3JMYXlvdXRMYWJlbCgpCiB7CiAgICAgRm9udENhc2NhZGVEZXNj
cmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldEZhbWlsaWVz
KHsgInN5c3RlbS11aSIgfSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldEZhbWlsaWVzKFZlY3Rv
cjxBdG9tU3RyaW5nPiB7ICJzeXN0ZW0tdWkiIH0pOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRX
ZWlnaHQoRm9udFNlbGVjdGlvblZhbHVlKDUwMCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRD
b21wdXRlZFNpemUoMTIpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNDkyN2RiMzhhNTIzOTZjOTcxYmQyNzhkYzBhYmI3MmVjZTRmNjJiYS4u
YjJlOGNkOGNhMjExMTJiNTdkNjU4YTZjN2MzNzFiYTllYjA4YWQzZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIx
LTExLTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pT
Q10gQ2xlYW4gdXAgU3RydWN0dXJlU3R1YkluZm8gaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjY1MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRml4ZWRWZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMjEtMTEtMDIgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI2ODQyMSk6IFRlc3RXZWJLaXRBUEkuV2ViS2l0LlByZWZlcmVuY2VDaGFuZ2Vz
KiB0ZXN0cyBhcmUgZmxha3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ZpeGVkVmVjdG9yLmNwcAppbmRleCAxNjE1M2RhYzk3MjVkMGI1OGRiZmZjY2I0NjgyNjg3
OTQ3ODAxNTVhLi5iMzU5NDdmNGE4NDJlZWE2NGI5OGRkYjJhZjZhMGJjNWQ2ZWU3YjZiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaXhlZFZlY3Rvci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwCkBAIC0xNzEs
NiArMTcxLDgxIEBAIFRFU1QoV1RGX0ZpeGVkVmVjdG9yLCBNb3ZlQXNzaWduVmVjdG9yKQogICAg
ICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFsdWUoKSwgaW5kZXgpOwogfQogCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorY2xhc3MgTm9uY29weWFibGVWZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFQ+
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOb25jb3B5YWJsZVZlY3Rvcik7CitwdWJsaWM6
CisgICAgTm9uY29weWFibGVWZWN0b3IoKSA9IGRlZmF1bHQ7CisgICAgTm9uY29weWFibGVWZWN0
b3IoTm9uY29weWFibGVWZWN0b3ImJikgPSBkZWZhdWx0OworICAgIE5vbmNvcHlhYmxlVmVjdG9y
JiBvcGVyYXRvcj0oTm9uY29weWFibGVWZWN0b3ImJikgPSBkZWZhdWx0OworfTsKKworVEVTVChX
VEZfRml4ZWRWZWN0b3IsIE1vdmVDb250YWluZXIpCit7CisgICAgTm9uY29weWFibGVWZWN0b3I8
TW92ZU9ubHk+IHZlYzE7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgdmVj
MS5jb25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMik7
CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgRVhQRUNUX0VRKHZlYzEuc2l6
ZSgpLCA0VSk7CisgICAgRml4ZWRWZWN0b3I8TW92ZU9ubHk+IHZlYzIoV1RGTW92ZSh2ZWMxKSk7
CisgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCAwVSk7CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6
ZSgpLCA0VSk7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjMi5zaXpl
KCk7ICsraW5kZXgpCisgICAgICAgIEVYUEVDVF9FUSh2ZWMyW2luZGV4XS52YWx1ZSgpLCBpbmRl
eCk7Cit9CisKK1RFU1QoV1RGX0ZpeGVkVmVjdG9yLCBNb3ZlQXNzaWduQ29udGFpbmVyKQorewor
ICAgIEZpeGVkVmVjdG9yPE1vdmVPbmx5PiB2ZWMyOworICAgIHsKKyAgICAgICAgTm9uY29weWFi
bGVWZWN0b3I8TW92ZU9ubHk+IHZlYzE7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5k
KDApOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgxKTsKKyAgICAgICAgdmVjMS5j
b25zdHJ1Y3RBbmRBcHBlbmQoMik7CisgICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMp
OworICAgICAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAgICAgICAgdmVjMiA9IFdU
Rk1vdmUodmVjMSk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgMFUpOworICAgIH0K
KyAgICBFWFBFQ1RfRVEodmVjMi5zaXplKCksIDRVKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4
ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgRVhQRUNUX0VRKHZl
YzJbaW5kZXhdLnZhbHVlKCksIGluZGV4KTsKK30KKworVEVTVChXVEZfRml4ZWRWZWN0b3IsIFJl
ZmVyZW5jZUNvbnRhaW5lcikKK3sKKyAgICBOb25jb3B5YWJsZVZlY3Rvcjx1bnNpZ25lZD4gdmVj
MTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgwKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFu
ZEFwcGVuZCgxKTsKKyAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsKKyAgICB2ZWMxLmNv
bnN0cnVjdEFuZEFwcGVuZCgzKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDRVKTsKKyAg
ICBGaXhlZFZlY3Rvcjx1bnNpZ25lZD4gdmVjMih2ZWMxKTsKKyAgICBFWFBFQ1RfRVEodmVjMS5z
aXplKCksIDRVKTsKKyAgICBFWFBFQ1RfRVEodmVjMi5zaXplKCksIDRVKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAg
RVhQRUNUX0VRKHZlYzJbaW5kZXhdLCBpbmRleCk7Cit9CisKK1RFU1QoV1RGX0ZpeGVkVmVjdG9y
LCBSZWZlcmVuY2VBc3NpZ25Db250YWluZXIpCit7CisgICAgRml4ZWRWZWN0b3I8dW5zaWduZWQ+
IHZlYzI7CisgICAgeworICAgICAgICBOb25jb3B5YWJsZVZlY3Rvcjx1bnNpZ25lZD4gdmVjMTsK
KyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgICAgIHZlYzEuY29uc3Ry
dWN0QW5kQXBwZW5kKDEpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgyKTsKKyAg
ICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWMx
LnNpemUoKSwgNFUpOworICAgICAgICB2ZWMyID0gdmVjMTsKKyAgICAgICAgRVhQRUNUX0VRKHZl
YzEuc2l6ZSgpLCA0VSk7CisgICAgfQorICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUoKSwgNFUpOwor
ICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgpOyArK2luZGV4
KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0sIGluZGV4KTsKK30KKwogVEVTVChXVEZf
Rml4ZWRWZWN0b3IsIFN3YXApCiB7CiAgICAgRml4ZWRWZWN0b3I8dW5zaWduZWQ+IHZlYzEoMyk7
Cg==
</data>
<flag name="commit-queue"
          id="467945"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443235</attachid>
            <date>2021-11-03 13:42:59 -0700</date>
            <delta_ts>2021-11-03 13:42:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232652-20211103134258.patch</filename>
            <type>text/plain</type>
            <size>20975</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWMyMTMwOWYyZGVmNjdjMGQzMjBjYWIyNmMyYzYzMjRkMjQ5OGFjLi5mMDFhYmUwZWZkNjZhOGNh
OWFlODc0ZGQyZDEwMDFjZGJmODg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGVuaGFuY2VzIEZpeGVkVmVjdG9yIHRvIGluaXRpYWxpemUgaXQgZnJvbSB0aGUgb3Ro
ZXIgY29udGFpbmVycy4KKyAgICAgICAgU28gd2UgY2FuIHNpbXBsaWZ5IGJhc2VsaW5lIFN0cnVj
dHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uLgorICAgICAgICBOb3csIFN0cnVjdHVyZVN0dWJJ
bmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gYmVjb21lcworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyBjb25zdHJ1Y3RvciB0YWtpbmcgY29uc3QgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyYuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjppbml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8p
OiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6CisKIDIwMjEtMTEt
MDIgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEltcGxlbWVudCBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2N2JiZDM4NWNmNDUzOGNkYmRh
ZGU3ZDBiYjhmNGQ3NjhmYWIxNDcuLmFkZDc5NTcyOWU4ZWVmMTgzNjM0NzBlYmM1MTJjMzcxOTIw
YjMzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBTdHJ1Y3R1cmVTdHVi
SW5mbyBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvRml4ZWRWZWN0b3IuaDoKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0
b3I6OkZpeGVkVmVjdG9yKToKKyAgICAgICAgKFdURjo6Rml4ZWRWZWN0b3I6Om9wZXJhdG9yPSk6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRBcnJheS5oOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkQXJyYXk6OlJlZkNvdW50ZWRBcnJheSk6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRBcnJh
eTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6CisgICAgICAg
ICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JUeXBlT3BlcmF0aW9uczo6dW5p
bml0aWFsaXplZENvcHkpOgorCiAyMDIxLTExLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gTWlub3IgY2xlYW4tdXAgZm9yIGZvcm1hdC1yZWxh
dGVkIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYyM2IyMDNlYWM1YzljNjVkMDQwNmJjMGVkNmI3
ZmY3MDk4ZjgxOGYuLjU4NTYyODk5YzA2OTljNzhjYzA2NmM3ZDFmY2U3NWQ4MGNiNjZhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0wMyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJ
bmZvIGluaXRpYWxpemF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmZvbnRGb3JMYXlvdXRMYWJlbCk6CisKIDIwMjEtMTEt
MDIgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTVkcg
ZWxlbWVudHMgc2hvdWxkIGluY2x1ZGUgU1ZHRWxlbWVudElubGluZXMgbm90IEVsZW1lbnRJbmxp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4
IGI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5MTg0MjYyMzQ1OTI3ZWE2ZGYuLjJlZGZkODJkOTk3ZTA2
ODU2Yjk3NDA3YWU2ZTg0Mzc1ZjQzMmQ5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC03ODIsNyArNzgyLDcgQEAgdm9pZCBDb2RlQmxvY2s6
OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENv
ZGUpCiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5p
c0VtcHR5KCkpOwogICAgICAgICBqaXREYXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0
b3I8dm9pZCo+KGppdENvZGUtPm1fY29uc3RhbnRQb29sLnNpemUoKSk7Ci0gICAgICAgIGppdERh
dGEubV9zdHViSW5mb3MgPSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+
bV91bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpOworICAgICAgICBqaXREYXRhLm1fc3R1YkluZm9z
ID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlU3R1YkluZm8+KGppdENvZGUtPm1fdW5saW5rZWRTdHVi
SW5mb3MpOwogICAgICAgICBqaXREYXRhLm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVjdG9yPENh
bGxMaW5rSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgpOyArK2kp
IHsKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9vbC5hdChp
KTsKQEAgLTgwMCw5ICs4MDAsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRC
YXNlbGluZUNvZGUoUmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5m
bzogewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oZW50cnkucG9pbnRlcigpKTsKLSAgICAgICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvID0gaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZv
c1tpbmRleF07CiAgICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0g
aml0RGF0YS5tX3N0dWJJbmZvc1tpbmRleF07Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uaW5p
dGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1Yklu
Zm8pOwogICAgICAgICAgICAgICAgIGppdERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSAmc3R1
YkluZm87CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRl
eCA3N2M5YjhjNzJiMTQ5MDVkMTQ4ODJkNWQ4NTQzMzQ4Nzc5ZTE3MTM5Li5kOTMzZWUwMzE1ZjMx
Njc0YmIzZWM1MGUzMzk1ZWNhNTExMmQ1MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTQxNSwxNCArNDE1LDEz
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNv
bnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmCiAgICAgbV9jYWNoZVR5cGUgPSBuZXdDYWNoZVR5
cGU7CiB9CiAKLXZvaWQgU3RydWN0dXJlU3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1
bmxpbmtlZFN0dWJJbmZvKQorU3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKGNv
bnN0IFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8pCisgICAgOiBT
dHJ1Y3R1cmVTdHViSW5mbyh1bmxpbmtlZFN0dWJJbmZvLmFjY2Vzc1R5cGUsIENvZGVPcmlnaW4o
dW5saW5rZWRTdHViSW5mby5ieXRlY29kZUluZGV4KSkKIHsKLSAgICBhY2Nlc3NUeXBlID0gdW5s
aW5rZWRTdHViSW5mby5hY2Nlc3NUeXBlOwogICAgIHN0YXJ0ID0gdW5saW5rZWRTdHViSW5mby5z
dGFydDsKICAgICBkb25lTG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLmRvbmVMb2NhdGlvbjsK
ICAgICBzbG93UGF0aFN0YXJ0TG9jYXRpb24gPSB1bmxpbmtlZFN0dWJJbmZvLnNsb3dQYXRoU3Rh
cnRMb2NhdGlvbjsKICAgICBjYWxsU2l0ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwotICAgIGNvZGVP
cmlnaW4gPSBDb2RlT3JpZ2luKHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAg
bV9jb2RlUHRyID0gc2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgIHByb3BlcnR5SXNJbnQzMiA9
IHVubGlua2VkU3R1YkluZm8ucHJvcGVydHlJc0ludDMyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDA0N2I0ZWJmMGVk
MWEwNzg3MGI1MDY1NmEyZjZkYzM0NGVlOGVhNDYuLmU1ZjYyN2YzYTIzYmYzYTdmYTRlOTEwZTc4
NTEyMzYyMGIyYjk4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0xMDMsOSArMTAzLDcgQEAgY2xhc3MgU3RydWN0dXJl
U3R1YkluZm8gewogICAgICAgICByZWdzLnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIH0K
IAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKCkKLSAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhB
Y2Nlc3NUeXBlOjpHZXRCeUlkLCB7IH0pCi0gICAgeyB9CisgICAgU3RydWN0dXJlU3R1YkluZm8o
Y29uc3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyk7CiAKICAg
ICB+U3RydWN0dXJlU3R1YkluZm8oKTsKIApAQCAtMTIyLDggKzEyMCw2IEBAIGNsYXNzIFN0cnVj
dHVyZVN0dWJJbmZvIHsKICAgICB2b2lkIGRlcmVmKCk7CiAgICAgdm9pZCBhYm91dFRvRGllKCk7
CiAKLSAgICB2b2lkIGluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyhDb2Rl
QmxvY2sqLCBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0KICAgICBERUNMQVJFX1ZJU0lU
X0FHR1JFR0FURTsKIAogICAgIC8vIENoZWNrIGlmIHRoZSBzdHViIGhhcyB3ZWFrIHJlZmVyZW5j
ZXMgdGhhdCBhcmUgZGVhZC4gSWYgaXQgZG9lcywgdGhlbiBpdCByZXNldHMgaXRzZWxmLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDkyOTQyNDYwNzM0MDA5MTFiNmMzNTdjNzhhNGEw
YzZhNzRlOWFhZDQuLjlmNGYyMjk4ZmI0NGQwOTNhMzc5YTIwMzgzNzAwMTkxM2E0OTI5YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTEwMDcsMTMgKzEwMDcsOSBAQCB2b2lkIEpJ
VDo6bGluaygpCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhB
cml0eUNoZWNrID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihtX2FyaXR5
Q2hlY2spOwogICAgIG1faml0Q29kZSA9IGFkb3B0UmVmKCpuZXcgQmFzZWxpbmVKSVRDb2RlKHJl
c3VsdCwgd2l0aEFyaXR5Q2hlY2spKTsKIAotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZENhbGxz
ID0gRml4ZWRWZWN0b3I8VW5saW5rZWRDYWxsTGlua0luZm8+KG1fdW5saW5rZWRDYWxscy5zaXpl
KCkpOwotICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5zaXplKCkpCi0gICAgICAg
IHN0ZDo6bW92ZShtX3VubGlua2VkQ2FsbHMuYmVnaW4oKSwgbV91bmxpbmtlZENhbGxzLmVuZCgp
LCBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscy5iZWdpbigpKTsKKyAgICBtX2ppdENvZGUtPm1f
dW5saW5rZWRDYWxscyA9IFdURk1vdmUobV91bmxpbmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUt
Pm1fZXZhbENhbGxMaW5rSW5mb3MgPSBXVEZNb3ZlKG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAg
IG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcyA9IEZpeGVkVmVjdG9yPFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8+KG1fdW5saW5rZWRTdHViSW5mb3Muc2l6ZSgpKTsKLSAgICBpZiAobV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSkKLSAgICAgICAgc3RkOjptb3ZlKG1f
dW5saW5rZWRTdHViSW5mb3MuYmVnaW4oKSwgbV91bmxpbmtlZFN0dWJJbmZvcy5lbmQoKSwgbV9q
aXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zLmJlZ2luKCkpOworICAgIG1faml0Q29kZS0+bV91
bmxpbmtlZFN0dWJJbmZvcyA9IFdURk1vdmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CiAgICAgbV9q
aXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7
CiAgICAgbV9qaXRDb2RlLT5tX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3Ry
aW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRD
b2RlTWFwQnVpbGRlci5maW5hbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRml4
ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL0ZpeGVkVmVjdG9yLmgKaW5kZXggMzI4Zjk4MTUx
MGJmN2I2NGY3MzBmMWFiYjhlZTExMDgzMzc2YzFkNC4uYzhhODEyMGM1YmFjZGQ4YTM0MDE3YzY3
OGE4OTFlZTM5NTIxOTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRml4ZWRWZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaXhlZFZlY3Rvci5oCkBAIC02MywyNyArNjMsMTUgQEAg
Y2xhc3MgRml4ZWRWZWN0b3IgewogICAgICAgICA6IG1fc3RvcmFnZShzaXplKQogICAgIHsgfQog
Ci0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXI+Ci0gICAgZXhwbGljaXQgRml4ZWRWZWN0b3IoY29uc3QgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKLSAgICAgICAgOiBtX3N0b3JhZ2Uob3Ro
ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFz
dGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgorICAgIGV4cGxpY2l0
IEZpeGVkVmVjdG9yKENvbnRhaW5lciYmIG90aGVyKQorICAgICAgICA6IG1fc3RvcmFnZShzdGQ6
OmZvcndhcmQ8Q29udGFpbmVyPihvdGhlcikpCiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTxzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KLSAgICBGaXhlZFZl
Y3RvciYgb3BlcmF0b3I9KGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dI
YW5kbGVyPiYgb3RoZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVu
YWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8Q29udGFpbmVyPiwgYm9vbD4gPSB0cnVlPgor
ICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oQ29udGFpbmVyJiYgb3RoZXIpCiAgICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBvdGhlcjsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyPgotICAgIGV4cGxpY2l0IEZpeGVkVmVjdG9yKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVyKQotICAgICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKG90
aGVyKSkKLSAgICB7IH0KLQotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIEZpeGVkVmVjdG9yJiBvcGVyYXRvcj0oVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCi0gICAgewotICAg
ICAgICBtX3N0b3JhZ2UgPSBXVEZNb3ZlKG90aGVyKTsKKyAgICAgICAgbV9zdG9yYWdlID0gc3Rk
Ojpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaCBiL1NvdXJj
ZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCmluZGV4IDUwMzMyNTM0MDQwNjJjNDZlNGI1ZTg1
MGJlNjYwNjliMDdjNDc5YTYuLjgyMTlkNzNhMjRjOTIyZDdkMGM1Y2RlMDA4ZmQ4NjliOWYxMjVm
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRBcnJheS5oCkBAIC05MywzMiArOTMsMzYgQEAgY2xhc3Mg
UmVmQ291bnRlZEFycmF5IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB0
ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4K
LSAgICBleHBsaWNpdCBSZWZDb3VudGVkQXJyYXkoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250
YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+LCBi
b29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5KGNvbnN0IENvbnRhaW5l
ciYgY29udGFpbmVyKQogICAgIHsKLSAgICAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkgeworICAg
ICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjpzaXplKGNvbnRhaW5lcik7CisgICAgICAgIGlmICgh
c2l6ZSkgewogICAgICAgICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVCogZGF0YSA9IGFs
bG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgVCogZGF0YSA9
IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEoc2l6ZSk7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7
Ci0gICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShvdGhl
ci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAgIFZlY3RvclR5cGVPcGVyYXRp
b25zPFQ+Ojp1bmluaXRpYWxpemVkQ29weShzdGQ6OmJlZ2luKGNvbnRhaW5lciksIHN0ZDo6ZW5k
KGNvbnRhaW5lciksIGRhdGEpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgotICAgIGV4cGxpY2l0IFJlZkNvdW50
ZWRBcnJheShWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mJiBvdGhl
cikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfaW50ZWdyYWxfdjxDb250YWluZXI+ICYmICFzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2Vf
djxDb250YWluZXI+LCBib29sPiA9IHRydWU+CisgICAgZXhwbGljaXQgUmVmQ291bnRlZEFycmF5
KENvbnRhaW5lciYmIG90aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7Ci0gICAgICAgIGlm
ICh2ZWN0b3IuaXNFbXB0eSgpKSB7CisgICAgICAgIENvbnRhaW5lciBjb250YWluZXIoc3RkOjpm
b3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6
c2l6ZShjb250YWluZXIpOworICAgICAgICBpZiAoIXNpemUpIHsKICAgICAgICAgICAgIFB0clRy
YWl0czo6ZXhjaGFuZ2UobV9kYXRhLCBudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZl
Y3Rvci5zaXplKCkpOworICAgICAgICBUKiBkYXRhID0gYWxsb2NhdGVVbmluaXRpYWxpemVkRGF0
YShzaXplKTsKICAgICAgICAgbV9kYXRhID0gZGF0YTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAgICAgICAgIG5l
dyAoZGF0YSArIGluZGV4KSBUKFdURk1vdmUodmVjdG9yW2luZGV4XSkpOworICAgICAgICBhdXRv
IGl0ZXJhdG9yID0gc3RkOjpiZWdpbihjb250YWluZXIpOworICAgICAgICBhdXRvIGVuZCA9IHN0
ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgIGZvciAoOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRl
cmF0b3IpCisgICAgICAgICAgICBuZXcgKGRhdGErKykgVChXVEZNb3ZlKCppdGVyYXRvcikpOwog
ICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPdGhlclRyYWl0cyA9IFB0clRyYWl0
cz4KQEAgLTEzMiwxNiArMTM2LDE3IEBAIGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7CiAgICAgICAg
IHJldHVybiBhc3NpZ248UHRyVHJhaXRzPihvdGhlcik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8
c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVm
Q291bnRlZEFycmF5JiBvcGVyYXRvcj0oY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXI+JiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXIs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19pbnRlZ3JhbF92PENvbnRhaW5l
cj4+PgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KGNvbnN0IENvbnRhaW5lciYgY29u
dGFpbmVyKQogICAgIHsKICAgICAgICAgVCogb2xkRGF0YSA9IGRhdGEoKTsKLSAgICAgICAgaWYg
KG90aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6c2l6ZShjb250
YWluZXIpOworICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICBQdHJUcmFpdHM6OmV4Y2hh
bmdlKG1fZGF0YSwgbnVsbHB0cik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgVCogZGF0
YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERhdGEob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgICAg
IFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHNpemUpOwogICAgICAgICAgICAg
bV9kYXRhID0gZGF0YTsKLSAgICAgICAgICAgIFZlY3RvclR5cGVPcGVyYXRpb25zPFQ+Ojp1bmlu
aXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwgZGF0YSk7CisgICAgICAg
ICAgICBWZWN0b3JUeXBlT3BlcmF0aW9uczxUPjo6dW5pbml0aWFsaXplZENvcHkoc3RkOjpiZWdp
bihjb250YWluZXIpLCBzdGQ6OmVuZChjb250YWluZXIpLCBkYXRhKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoIW9sZERhdGEpCiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CkBAIC0xNTYsMTgg
KzE2MSwyMSBAQCBjbGFzcyBSZWZDb3VudGVkQXJyYXkgewogICAgICAgICByZXR1cm4gKnRoaXM7
CiAgICAgfQogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXI+Ci0gICAgUmVmQ291bnRlZEFycmF5JiBvcGVyYXRvcj0oVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+JiYgb3RoZXIpCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29udGFpbmVyLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2ludGVncmFsX3Y8
Q29udGFpbmVyPiAmJiAhc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlX3Y8Q29udGFpbmVyPiwgYm9v
bD4gPSB0cnVlPgorICAgIFJlZkNvdW50ZWRBcnJheSYgb3BlcmF0b3I9KENvbnRhaW5lciYmIG90
aGVyKQogICAgIHsKLSAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXI+IHZlY3RvcihXVEZNb3ZlKG90aGVyKSk7CisgICAgICAgIENvbnRhaW5lciBjb250YWlu
ZXIoc3RkOjpmb3J3YXJkPENvbnRhaW5lcj4ob3RoZXIpKTsKICAgICAgICAgVCogb2xkRGF0YSA9
IGRhdGEoKTsKLSAgICAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCisgICAgICAgIHVuc2lnbmVk
IHNpemUgPSBzdGQ6OnNpemUoY29udGFpbmVyKTsKKyAgICAgICAgaWYgKCFzaXplKQogICAgICAg
ICAgICAgUHRyVHJhaXRzOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpOwogICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIFQqIGRhdGEgPSBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWREYXRhKHZlY3Rv
ci5zaXplKCkpOworICAgICAgICAgICAgVCogZGF0YSA9IGFsbG9jYXRlVW5pbml0aWFsaXplZERh
dGEoc2l6ZSk7CiAgICAgICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjdG9yLnNpemUoKTsgKytpbmRleCkKLSAgICAg
ICAgICAgICAgICBuZXcgKGRhdGEgKyBpbmRleCkgVChXVEZNb3ZlKHZlY3RvcltpbmRleF0pKTsK
KyAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OmJlZ2luKGNvbnRhaW5lcik7CisgICAg
ICAgICAgICBhdXRvIGVuZCA9IHN0ZDo6ZW5kKGNvbnRhaW5lcik7CisgICAgICAgICAgICBmb3Ig
KDsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKQorICAgICAgICAgICAgICAgIG5ldyAoZGF0
YSsrKSBUKFdURk1vdmUoKml0ZXJhdG9yKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFvbGRE
YXRhKQogICAgICAgICAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU2VnbWVudGVkVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3IuaApp
bmRleCBjNWI5ZThhMWVjZGQzNWQ1Y2IzZGQ5ZGU1NTEwZTBjNDgyOWM2MzUxLi40NDFjNzMyY2Jh
MDhjOWNjZjU2MmVkYjJkZWFiMzg1Mzk5NjE2ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9TZWdtZW50ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3Iu
aApAQCAtMTA4LDYgKzEwOCwxOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgdXNpbmcgaXRl
cmF0b3IgPSBJdGVyYXRvcjsKIAogICAgICAgICBTZWdtZW50ZWRWZWN0b3IoKSA9IGRlZmF1bHQ7
CisgICAgICAgIFNlZ21lbnRlZFZlY3RvcihTZWdtZW50ZWRWZWN0b3ImJiBvdGhlcikKKyAgICAg
ICAgICAgIDogU2VnbWVudGVkVmVjdG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3dhcChv
dGhlcik7CisgICAgICAgIH0KKworICAgICAgICBTZWdtZW50ZWRWZWN0b3ImIG9wZXJhdG9yPShT
ZWdtZW50ZWRWZWN0b3ImJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgU2VnbWVudGVk
VmVjdG9yIG1vdmVkKFdURk1vdmUob3RoZXIpKTsKKyAgICAgICAgICAgIHN3YXAobW92ZWQpOwor
ICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CiAKICAgICAgICAgflNlZ21lbnRl
ZFZlY3RvcigpCiAgICAgICAgIHsKQEAgLTIyMSw2ICsyMzMsMTIgQEAgbmFtZXNwYWNlIFdURiB7
CiAgICAgICAgICAgICBtX3NlZ21lbnRzLnNocmlua1RvRml0KCk7CiAgICAgICAgIH0KIAorICAg
ICAgICB2b2lkIHN3YXAoU2VnbWVudGVkVmVjdG9yJiBvdGhlcikKKyAgICAgICAgeworICAgICAg
ICAgICAgc3RkOjpzd2FwKG1fc2l6ZSwgb3RoZXIubV9zaXplKTsKKyAgICAgICAgICAgIG1fc2Vn
bWVudHMuc3dhcChvdGhlci5tX3NlZ21lbnRzKTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgc3RydWN0IFNlZ21lbnQgewogI2lmIENPTVBJTEVSKE1TVkMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4
IGM0Y2RmYjRjYzVmMjczNGI3YTZhY2VlOTFlOTc5YzljMWI4NjliYjguLjhjNjgyZWI5NjA5NTc5
Nzc1MWVmZmRkODE5ZmI5MTk1ZjBkMTUxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Zl
Y3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC0xNjMsOCArMTYzLDggQEAg
c3RydWN0IFZlY3RvckNvcGllcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgVmVjdG9y
Q29waWVyPGZhbHNlLCBUPgogewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci0gICAgc3RhdGlj
IHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFUq
IGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1dEl0ZXJhdG9yLCB0eXBlbmFtZSBVPgor
ICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KElucHV0SXRlcmF0b3Igc3JjLCBJbnB1
dEl0ZXJhdG9yIHNyY0VuZCwgVSogZHN0KQogICAgIHsKICAgICAgICAgd2hpbGUgKHNyYyAhPSBz
cmNFbmQpIHsKICAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgZHN0KSBVKCpzcmMpOwpAQCAtMTgx
LDggKzE4MSw4IEBAIHN0cnVjdCBWZWN0b3JDb3BpZXI8dHJ1ZSwgVD4KICAgICB7CiAgICAgICAg
IG1lbWNweShzdGF0aWNfY2FzdDx2b2lkKj4oZHN0KSwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0
X2Nhc3Q8VCo+KHNyYykpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmNFbmQpIC0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CiAgICAgfQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+Ci0gICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29uc3QgVCog
c3JjLCBjb25zdCBUKiBzcmNFbmQsIFUqIGRzdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1
dEl0ZXJhdG9yLCB0eXBlbmFtZSBVPgorICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5
KElucHV0SXRlcmF0b3Igc3JjLCBJbnB1dEl0ZXJhdG9yIHNyY0VuZCwgVSogZHN0KQogICAgIHsK
ICAgICAgICAgVmVjdG9yQ29waWVyPGZhbHNlLCBUPjo6dW5pbml0aWFsaXplZENvcHkoc3JjLCBz
cmNFbmQsIGRzdCk7CiAgICAgfQpAQCAtMjY1LDcgKzI2NSw4IEBAIHN0cnVjdCBWZWN0b3JUeXBl
T3BlcmF0aW9ucwogICAgICAgICBWZWN0b3JNb3ZlcjxWZWN0b3JUcmFpdHM8VD46OmNhbk1vdmVX
aXRoTWVtY3B5LCBUPjo6bW92ZU92ZXJsYXBwaW5nKHNyYywgc3JjRW5kLCBkc3QpOwogICAgIH0K
IAotICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNyYywgY29uc3Qg
VCogc3JjRW5kLCBUKiBkc3QpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRJdGVyYXRvcj4K
KyAgICBzdGF0aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShJbnB1dEl0ZXJhdG9yIHNyYywgSW5w
dXRJdGVyYXRvciBzcmNFbmQsIFQqIGRzdCkKICAgICB7CiAgICAgICAgIFZlY3RvckNvcGllcjxW
ZWN0b3JUcmFpdHM8VD46OmNhbkNvcHlXaXRoTWVtY3B5LCBUPjo6dW5pbml0aWFsaXplZENvcHko
c3JjLCBzcmNFbmQsIGRzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDdkMmE1ZmZiY2MzYThhODE0MWZmY2ZiYjJlNWFiZGI2
NThhODVjNzUuLjY4ZWVmNDEyOTcyNjJlMWZmYjdmZTA3YjRjYjQ0OGQ4ZWJmZjIxZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTEyMDcs
NyArMTIwNyw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd0xheW91dEhhdGNoaW5nKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgRmxvYXRRdWFkIHF1CiBGb250Q2FzY2FkZSBJbnNwZWN0
b3JPdmVybGF5Ojpmb250Rm9yTGF5b3V0TGFiZWwoKQogewogICAgIEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24gZm9udERlc2NyaXB0aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbGllcyh7
ICJzeXN0ZW0tdWkiIH0pOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbGllcyhWZWN0b3I8
QXRvbVN0cmluZz4geyAic3lzdGVtLXVpIiB9KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0V2Vp
Z2h0KEZvbnRTZWxlY3Rpb25WYWx1ZSg1MDApKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29t
cHV0ZWRTaXplKDEyKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDQ5MjdkYjM4YTUyMzk2Yzk3MWJkMjc4ZGMwYWJiNzJlY2U0ZjYyYmEuLmIy
ZThjZDhjYTIxMTEyYjU3ZDY1OGE2YzdjMzcxYmE5ZWIwOGFkM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0x
MS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0Nd
IENsZWFuIHVwIFN0cnVjdHVyZVN0dWJJbmZvIGluaXRpYWxpemF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ZpeGVkVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDIxLTExLTAyICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyNjg0MjEpOiBUZXN0V2ViS2l0QVBJLldlYktpdC5QcmVmZXJlbmNlQ2hhbmdlcyog
dGVzdHMgYXJlIGZsYWt5IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9GaXhlZFZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9GaXhlZFZlY3Rvci5jcHAKaW5kZXggMTYxNTNkYWM5NzI1ZDBiNThkYmZmY2NiNDY4MjY4Nzk0
NzgwMTU1YS4uYjM1OTQ3ZjRhODQyZWVhNjRiOThkZGIyYWY2YTBiYzVkNmVlN2I2YiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRml4ZWRWZWN0b3IuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpeGVkVmVjdG9yLmNwcApAQCAtMTcxLDYg
KzE3MSw4MSBAQCBURVNUKFdURl9GaXhlZFZlY3RvciwgTW92ZUFzc2lnblZlY3RvcikKICAgICAg
ICAgRVhQRUNUX0VRKHZlYzJbaW5kZXhdLnZhbHVlKCksIGluZGV4KTsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK2NsYXNzIE5vbmNvcHlhYmxlVmVjdG9yIDogcHVibGljIFZlY3RvcjxUPiB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm9uY29weWFibGVWZWN0b3IpOworcHVibGljOgor
ICAgIE5vbmNvcHlhYmxlVmVjdG9yKCkgPSBkZWZhdWx0OworICAgIE5vbmNvcHlhYmxlVmVjdG9y
KE5vbmNvcHlhYmxlVmVjdG9yJiYpID0gZGVmYXVsdDsKKyAgICBOb25jb3B5YWJsZVZlY3RvciYg
b3BlcmF0b3I9KE5vbmNvcHlhYmxlVmVjdG9yJiYpID0gZGVmYXVsdDsKK307CisKK1RFU1QoV1RG
X0ZpeGVkVmVjdG9yLCBNb3ZlQ29udGFpbmVyKQoreworICAgIE5vbmNvcHlhYmxlVmVjdG9yPE1v
dmVPbmx5PiB2ZWMxOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDApOworICAgIHZlYzEu
Y29uc3RydWN0QW5kQXBwZW5kKDEpOworICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDIpOwor
ICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOworICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUo
KSwgNFUpOworICAgIEZpeGVkVmVjdG9yPE1vdmVPbmx5PiB2ZWMyKFdURk1vdmUodmVjMSkpOwor
ICAgIEVYUEVDVF9FUSh2ZWMxLnNpemUoKSwgMFUpOworICAgIEVYUEVDVF9FUSh2ZWMyLnNpemUo
KSwgNFUpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHZlYzIuc2l6ZSgp
OyArK2luZGV4KQorICAgICAgICBFWFBFQ1RfRVEodmVjMltpbmRleF0udmFsdWUoKSwgaW5kZXgp
OworfQorCitURVNUKFdURl9GaXhlZFZlY3RvciwgTW92ZUFzc2lnbkNvbnRhaW5lcikKK3sKKyAg
ICBGaXhlZFZlY3RvcjxNb3ZlT25seT4gdmVjMjsKKyAgICB7CisgICAgICAgIE5vbmNvcHlhYmxl
VmVjdG9yPE1vdmVPbmx5PiB2ZWMxOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgw
KTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMSk7CisgICAgICAgIHZlYzEuY29u
c3RydWN0QW5kQXBwZW5kKDIpOworICAgICAgICB2ZWMxLmNvbnN0cnVjdEFuZEFwcGVuZCgzKTsK
KyAgICAgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAgICAgIHZlYzIgPSBXVEZN
b3ZlKHZlYzEpOworICAgICAgICBFWFBFQ1RfRVEodmVjMS5zaXplKCksIDBVKTsKKyAgICB9Cisg
ICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9
IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIEVYUEVDVF9FUSh2ZWMy
W2luZGV4XS52YWx1ZSgpLCBpbmRleCk7Cit9CisKK1RFU1QoV1RGX0ZpeGVkVmVjdG9yLCBSZWZl
cmVuY2VDb250YWluZXIpCit7CisgICAgTm9uY29weWFibGVWZWN0b3I8dW5zaWduZWQ+IHZlYzE7
CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMCk7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRB
cHBlbmQoMSk7CisgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMik7CisgICAgdmVjMS5jb25z
dHJ1Y3RBbmRBcHBlbmQoMyk7CisgICAgRVhQRUNUX0VRKHZlYzEuc2l6ZSgpLCA0VSk7CisgICAg
Rml4ZWRWZWN0b3I8dW5zaWduZWQ+IHZlYzIodmVjMSk7CisgICAgRVhQRUNUX0VRKHZlYzEuc2l6
ZSgpLCA0VSk7CisgICAgRVhQRUNUX0VRKHZlYzIuc2l6ZSgpLCA0VSk7CisgICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IDA7IGluZGV4IDwgdmVjMi5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIEVY
UEVDVF9FUSh2ZWMyW2luZGV4XSwgaW5kZXgpOworfQorCitURVNUKFdURl9GaXhlZFZlY3Rvciwg
UmVmZXJlbmNlQXNzaWduQ29udGFpbmVyKQoreworICAgIEZpeGVkVmVjdG9yPHVuc2lnbmVkPiB2
ZWMyOworICAgIHsKKyAgICAgICAgTm9uY29weWFibGVWZWN0b3I8dW5zaWduZWQ+IHZlYzE7Cisg
ICAgICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDApOworICAgICAgICB2ZWMxLmNvbnN0cnVj
dEFuZEFwcGVuZCgxKTsKKyAgICAgICAgdmVjMS5jb25zdHJ1Y3RBbmRBcHBlbmQoMik7CisgICAg
ICAgIHZlYzEuY29uc3RydWN0QW5kQXBwZW5kKDMpOworICAgICAgICBFWFBFQ1RfRVEodmVjMS5z
aXplKCksIDRVKTsKKyAgICAgICAgdmVjMiA9IHZlYzE7CisgICAgICAgIEVYUEVDVF9FUSh2ZWMx
LnNpemUoKSwgNFUpOworICAgIH0KKyAgICBFWFBFQ1RfRVEodmVjMi5zaXplKCksIDRVKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2ZWMyLnNpemUoKTsgKytpbmRleCkK
KyAgICAgICAgRVhQRUNUX0VRKHZlYzJbaW5kZXhdLCBpbmRleCk7Cit9CisKIFRFU1QoV1RGX0Zp
eGVkVmVjdG9yLCBTd2FwKQogewogICAgIEZpeGVkVmVjdG9yPHVuc2lnbmVkPiB2ZWMxKDMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>