<?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>227011</bug_id>
          
          <creation_ts>2021-06-14 22:18:21 -0700</creation_ts>
          <short_desc>[WinCairo] Turn ENABLE_SHAREABLE_RESOURCE on</short_desc>
          <delta_ts>2021-06-21 14:48:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>227014</dependson>
    
    <dependson>227017</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769692</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-14 22:18:21 -0700</bug_when>
    <thetext>[WinCairo] Turn ENABLE_SHAREABLE_RESOURCE on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769693</commentid>
    <comment_count>1</comment_count>
      <attachid>431401</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-14 22:18:34 -0700</bug_when>
    <thetext>Created attachment 431401
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769695</commentid>
    <comment_count>2</comment_count>
      <attachid>431402</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-14 22:27:56 -0700</bug_when>
    <thetext>Created attachment 431402
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770814</commentid>
    <comment_count>3</comment_count>
      <attachid>431720</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-17 14:16:59 -0700</bug_when>
    <thetext>Created attachment 431720
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771210</commentid>
    <comment_count>4</comment_count>
      <attachid>431829</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-20 20:00:37 -0700</bug_when>
    <thetext>Created attachment 431829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771420</commentid>
    <comment_count>5</comment_count>
      <attachid>431901</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-21 13:25:09 -0700</bug_when>
    <thetext>Created attachment 431901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771425</commentid>
    <comment_count>6</comment_count>
      <attachid>431901</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-06-21 13:31:44 -0700</bug_when>
    <thetext>Comment on attachment 431901
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCacheDataCurl.cpp:123
&gt; +#if ENABLE(SHAREABLE_RESOURCE) &amp;&amp; OS(WINDOWS)
&gt; +RefPtr&lt;SharedMemory&gt; Data::tryCreateSharedMemory() const
&gt; +{
&gt; +    if (isNull() || !isMap())
&gt; +        return nullptr;
&gt; +
&gt; +    HANDLE handle = WTF::get&lt;FileSystem::MappedFileData&gt;(*m_buffer).fileMapping();
&gt; +    HANDLE newHandle;
&gt; +    if (!DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), &amp;newHandle, 0, false, DUPLICATE_SAME_ACCESS))
&gt; +        return nullptr;
&gt; +
&gt; +    return SharedMemory::adopt(newHandle, m_size, SharedMemory::Protection::ReadOnly);
&gt; +}
&gt; +#endif

You have any plans to do a POSIX implementation that PlayStation can use here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771460</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-21 14:39:19 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #6)
&gt; You have any plans to do a POSIX implementation that PlayStation can use
&gt; here too?

It sounds a good idea. But, not high priority for me now. My motivation was fixing a WinCairo assertion failure (Bug 225801), but unfortunately this change doesn&apos;t fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771462</commentid>
    <comment_count>8</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-06-21 14:41:31 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #7)
&gt; (In reply to Don Olmstead from comment #6)
&gt; &gt; You have any plans to do a POSIX implementation that PlayStation can use
&gt; &gt; here too?
&gt; 
&gt; It sounds a good idea. But, not high priority for me now. My motivation was
&gt; fixing a WinCairo assertion failure (Bug 225801), but unfortunately this
&gt; change doesn&apos;t fix it.

Ok can you open a bug for that part?

Builds are green so commit at your leisure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771463</commentid>
    <comment_count>9</comment_count>
      <attachid>431901</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-21 14:42:16 -0700</bug_when>
    <thetext>Comment on attachment 431901
Patch

Clearing flags on attachment: 431901

Committed r279085 (239004@main): &lt;https://commits.webkit.org/239004@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771464</commentid>
    <comment_count>10</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-21 14:42:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771465</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-21 14:43:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/79581434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771468</commentid>
    <comment_count>12</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-06-21 14:48:12 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #8)
&gt; Ok can you open a bug for that part?

Yup. Filed.
  Bug 227236 – [PlayStation] Turn ENABLE_SHAREABLE_RESOURCE on</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431401</attachid>
            <date>2021-06-14 22:18:34 -0700</date>
            <delta_ts>2021-06-14 22:28:04 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>10989</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCmluZGV4
IDFhMzgzMmViZjFmZi4uYTQ4NDMxNzM2MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAKQEAgLTMwLDQ5ICszMCw1MiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogQ2FjaGVQYXlsb2FkIENhY2hlUGF5bG9hZDo6bWFrZU1hcHBlZFBheWxvYWQoRmls
ZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEmJiBkYXRhKQogewotICAgIHJldHVybiBDYWNoZVBheWxv
YWQodHJ1ZSwgZGF0YS5sZWFrSGFuZGxlKCksIGRhdGEuc2l6ZSgpKTsKKyAgICByZXR1cm4gQ2Fj
aGVQYXlsb2FkKFdURk1vdmUoZGF0YSkpOwogfQogCiBDYWNoZVBheWxvYWQgQ2FjaGVQYXlsb2Fk
OjptYWtlTWFsbG9jUGF5bG9hZChNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+JiYgZGF0YSwg
c2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIENhY2hlUGF5bG9hZChmYWxzZSwgZGF0YS5sZWFr
UHRyKCksIHNpemUpOworICAgIHJldHVybiBDYWNoZVBheWxvYWQoc3RkOjptYWtlX3BhaXIoV1RG
TW92ZShkYXRhKSwgc2l6ZSkpOwogfQogCiBDYWNoZVBheWxvYWQgQ2FjaGVQYXlsb2FkOjptYWtl
RW1wdHlQYXlsb2FkKCkKIHsKLSAgICByZXR1cm4gQ2FjaGVQYXlsb2FkKHRydWUsIG51bGxwdHIs
IDApOworICAgIHJldHVybiBDYWNoZVBheWxvYWQoc3RkOjptYWtlX3BhaXIobnVsbHB0ciwgMCkp
OwogfQogCiBDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZChDYWNoZVBheWxvYWQmJiBvdGhlcikK
IHsKLSAgICBtX21hcHBlZCA9IG90aGVyLm1fbWFwcGVkOwotICAgIG1fc2l6ZSA9IG90aGVyLm1f
c2l6ZTsKLSAgICBtX2RhdGEgPSBvdGhlci5tX2RhdGE7Ci0gICAgb3RoZXIubV9tYXBwZWQgPSBm
YWxzZTsKLSAgICBvdGhlci5tX2RhdGEgPSBudWxscHRyOwotICAgIG90aGVyLm1fc2l6ZSA9IDA7
CisgICAgbV9kYXRhID0gV1RGTW92ZShvdGhlci5tX2RhdGEpOworICAgIG90aGVyLm1fZGF0YSA9
IHN0ZDo6bWFrZV9wYWlyKG51bGxwdHIsIDApOwogfQogCi1DYWNoZVBheWxvYWQ6On5DYWNoZVBh
eWxvYWQoKQorQ2FjaGVQYXlsb2FkOjpDYWNoZVBheWxvYWQoVmFyaWFudDxGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNp
emVfdD4+JiYgZGF0YSkKKyAgICA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewotICAgIGZyZWVE
YXRhKCk7CiB9CiAKLUNhY2hlUGF5bG9hZCYgQ2FjaGVQYXlsb2FkOjpvcGVyYXRvcj0oQ2FjaGVQ
YXlsb2FkJiYgb3RoZXIpCitDYWNoZVBheWxvYWQ6On5DYWNoZVBheWxvYWQoKSA9IGRlZmF1bHQ7
CisKK2NvbnN0IHVpbnQ4X3QqIENhY2hlUGF5bG9hZDo6ZGF0YSgpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICBmcmVlRGF0YSgpOwotICAgIHJldHVybiAqbmV3ICh0
aGlzKSBDYWNoZVBheWxvYWQoV1RGTW92ZShvdGhlcikpOworICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fZGF0YSwKKyAgICAgICAgW10oY29uc3QgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEm
IGRhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YS5kYXRhKCkpOworICAgICAgICB9LAorICAgICAgICBbXShjb25zdCBzdGQ6OnBhaXI8TWFs
bG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90PiYgZGF0YSkgeworICAgICAgICAgICAg
cmV0dXJuIGRhdGEuZmlyc3QuZ2V0KCk7CisgICAgICAgIH0pOwogfQogCi12b2lkIENhY2hlUGF5
bG9hZDo6ZnJlZURhdGEoKQorc2l6ZV90IENhY2hlUGF5bG9hZDo6c2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX2RhdGEpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9tYXBwZWQpIHsKLSAg
ICAgICAgRmlsZVN5c3RlbTo6dW5tYXBWaWV3T2ZGaWxlKG1fZGF0YSwgbV9zaXplKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgZmFzdEZyZWUobV9kYXRhKTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hP
bihtX2RhdGEsCisgICAgICAgIFtdKGNvbnN0IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhJiBk
YXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5zaXplKCk7CisgICAgICAgIH0sCisgICAg
ICAgIFtdKGNvbnN0IHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXpl
X3Q+JiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5zZWNvbmQ7CisgICAgICAgIH0p
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVQYXlsb2FkLmgKaW5kZXggMWRjYTExNzIyMjVjLi5iZWY4ZDcwNjUyMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWxsb2NQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKIApAQCAtNDEsMjIgKzQyLDEzIEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRf
UFJJVkFURSB+Q2FjaGVQYXlsb2FkKCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FjaGVQYXls
b2FkJiBvcGVyYXRvcj0oQ2FjaGVQYXlsb2FkJiYgb3RoZXIpOwogCi0gICAgY29uc3QgdWludDhf
dCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQotICAgIHNpemVfdCBzaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgdWludDhf
dCogZGF0YSgpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXplKCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGVQYXlsb2FkKGJvb2wgbWFwcGVkLCB2b2lkKiBkYXRh
LCBzaXplX3Qgc2l6ZSkKLSAgICAgICAgOiBtX21hcHBlZChtYXBwZWQpCi0gICAgICAgICwgbV9z
aXplKHNpemUpCi0gICAgICAgICwgbV9kYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKSkK
LSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmcmVlRGF0YSgpOwotCi0gICAgYm9vbCBtX21hcHBl
ZDsKLSAgICBzaXplX3QgbV9zaXplOwotICAgIHVpbnQ4X3QqIG1fZGF0YTsKKyAgICBDYWNoZVBh
eWxvYWQoVmFyaWFudDxGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxv
Y1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4+JiYpOworCisgICAgVmFyaWFudDxGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1h
bGxvYz4sIHNpemVfdD4+IG1fZGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxl
U3lzdGVtLmNwcAppbmRleCA4NzFhN2ExYTBhZjYuLmQ3MGRjZGQ2MTgzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5
c3RlbS5jcHAKQEAgLTMxNywxMyArMzE3LDYgQEAgYm9vbCBleGNsdWRlRnJvbUJhY2t1cChjb25z
dCBTdHJpbmcmKQogCiAjZW5kaWYKIAotTWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0YSgp
Ci17Ci0gICAgaWYgKCFtX2ZpbGVEYXRhKQotICAgICAgICByZXR1cm47Ci0gICAgdW5tYXBWaWV3
T2ZGaWxlKG1fZmlsZURhdGEsIG1fZmlsZVNpemUpOwotfQotCiBNYXBwZWRGaWxlRGF0YTo6TWFw
cGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgTWFwcGVkRmlsZU1vZGUgbWFwTW9k
ZSwgYm9vbCYgc3VjY2VzcykKIHsKICAgICBhdXRvIGZkID0gb3BlbkZpbGUoZmlsZVBhdGgsIEZp
bGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZCk7CkBAIC0zMzQsNiArMzI3LDEzIEBAIE1hcHBl
ZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBNYXBwZWRG
aWxlTW9kZSBtYXBNb2RlLCBiCiAKICNpZiBIQVZFKE1NQVApCiAKK01hcHBlZEZpbGVEYXRhOjp+
TWFwcGVkRmlsZURhdGEoKQoreworICAgIGlmICghbV9maWxlRGF0YSkKKyAgICAgICAgcmV0dXJu
OworICAgIG11bm1hcChtX2ZpbGVEYXRhLCBtX2ZpbGVTaXplKTsKK30KKwogYm9vbCBNYXBwZWRG
aWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Bl
bk1vZGUgb3Blbk1vZGUsIE1hcHBlZEZpbGVNb2RlIG1hcE1vZGUpCiB7CiAgICAgaWYgKCFpc0hh
bmRsZVZhbGlkKGhhbmRsZSkpCkBAIC0zODcsMTIgKzM4Nyw2IEBAIGJvb2wgTWFwcGVkRmlsZURh
dGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2Rl
IG9wZW5NCiAgICAgbV9maWxlU2l6ZSA9IHNpemU7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KLWJv
b2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCi17Ci0gICAgcmV0
dXJuICFtdW5tYXAoYnVmZmVyLCBzaXplKTsKLX0KLQogI2VuZGlmCiAKIFBsYXRmb3JtRmlsZUhh
bmRsZSBvcGVuQW5kTG9ja0ZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgb3Bl
bk1vZGUsIE9wdGlvblNldDxGaWxlTG9ja01vZGU+IGxvY2tNb2RlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmlu
ZGV4IGY3NTczYTg2NzNiNi4uODc4MjJiZWE4ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0yMTAs
OCArMjEwLDYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyByZWFsUGF0aChjb25zdCBTdHJp
bmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0
aChjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VTYWZlVG9Vc2VN
ZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCB1bm1hcFZpZXdPZkZpbGUodm9pZCogYnVmZmVyLCBzaXplX3QpOwotCiBjbGFzcyBNYXBwZWRG
aWxlRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0yMjcs
MTMgKzIyNSwxOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlsZURhdGE7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9m
aWxlU2l6ZTsgfQogCi0gICAgdm9pZCogbGVha0hhbmRsZSgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFu
Z2UobV9maWxlRGF0YSwgbnVsbHB0cik7IH0KKyNpZiBPUyhXSU5ET1dTKQorICAgIEhBTkRMRSBo
YW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5k
bGUsIEZpbGVPcGVuTW9kZSwgTWFwcGVkRmlsZU1vZGUpOwogCiAgICAgdm9pZCogbV9maWxlRGF0
YSB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBtX2ZpbGVTaXplIHsgMCB9OworI2lmIE9TKFdJ
TkRPV1MpCisgICAgSEFORExFIG1faGFuZGxlIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiBp
bmxpbmUgTWFwcGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIE1hcHBlZEZpbGVNb2RlIG1hcE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCkBAIC0yNDksNiAr
MjUyLDkgQEAgaW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3AKIGlubGluZSBNYXBwZWRGaWxlRGF0YTo6
TWFwcGVkRmlsZURhdGEoTWFwcGVkRmlsZURhdGEmJiBvdGhlcikKICAgICA6IG1fZmlsZURhdGEo
c3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVEYXRhLCBudWxscHRyKSkKICAgICAsIG1fZmlsZVNp
emUoc3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVTaXplLCAwKSkKKyNpZiBPUyhXSU5ET1dTKQor
ICAgICwgbV9oYW5kbGUoc3RkOjpleGNoYW5nZShvdGhlci5tX2hhbmRsZSwgbnVsbHB0cikpCisj
ZW5kaWYKIHsKIH0KIApAQCAtMjU2LDYgKzI2Miw5IEBAIGlubGluZSBNYXBwZWRGaWxlRGF0YSYg
TWFwcGVkRmlsZURhdGE6Om9wZXJhdG9yPShNYXBwZWRGaWxlRGF0YSYmIG90aGVyKQogewogICAg
IG1fZmlsZURhdGEgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZURhdGEsIG51bGxwdHIpOwog
ICAgIG1fZmlsZVNpemUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZVNpemUsIDApOworI2lm
IE9TKFdJTkRPV1MpCisgICAgbV9oYW5kbGUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faGFuZGxl
LCBudWxscHRyKTsKKyNlbmRpZgogICAgIHJldHVybiAqdGhpczsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2lu
L0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4IDM3NmEzMmM3MzQzYS4uMjIzYTFhNjdmYjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zNjMsOSArMzYzLDEzIEBAIFN0cmlu
ZyBjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoKQogICAgIH0pOwogfQogCi1ib29sIHVubWFwVmll
d09mRmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCkKK01hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmls
ZURhdGEoKQogewotICAgIHJldHVybiBVbm1hcFZpZXdPZkZpbGUoYnVmZmVyKTsKKyAgICBpZiAo
IW1fZmlsZURhdGEpCisgICAgICAgIHJldHVybjsKKyAgICBVbm1hcFZpZXdPZkZpbGUobV9maWxl
RGF0YSk7CisgICAgaWYgKG1faGFuZGxlKQorICAgICAgICBDbG9zZUhhbmRsZShtX2hhbmRsZSk7
CiB9CiAKIGJvb2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wZW5Nb2RlLCBNYXBwZWRGaWxlTW9kZSkKQEAgLTM5
OSwxNSArNDAzLDE2IEBAIGJvb2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wZW5NCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAotICAgIGF1dG8gbWFwcGluZyA9IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVs
bHB0ciwgcGFnZVByb3RlY3Rpb24sIDAsIDAsIG51bGxwdHIpOwotICAgIGlmICghbWFwcGluZykK
KyAgICBtX2hhbmRsZSA9IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVsbHB0ciwgcGFnZVBy
b3RlY3Rpb24sIDAsIDAsIG51bGxwdHIpOworICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZGaWxlKG1hcHBpbmcsIGRl
c2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKLSAgICBDbG9zZUhhbmRsZShtYXBwaW5nKTsKKyAg
ICBtX2ZpbGVEYXRhID0gTWFwVmlld09mRmlsZShtX2hhbmRsZSwgZGVzaXJlZEFjY2VzcywgMCwg
MCwgKnNpemUpOwogICAgIGlmICghbV9maWxlRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIG1fZmlsZVNpemUgPSAqc2l6ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IDc2YTJmMmUzNTE1NC4uODZmNzcyMGI4M2ViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTkwNCw3ICs5MDQs
NyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpDYWxsYmFjazo6dGltZXJGaXJlZCgpCiAgICAgbV9y
ZXNvdXJjZS5kaWRBZGRDbGllbnQobV9jbGllbnQpOwogfQogCi0jaWYgVVNFKEZPVU5EQVRJT04p
IHx8IFVTRShTT1VQKQorI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAKIHZvaWQgQ2Fj
aGVkUmVzb3VyY2U6OnRyeVJlcGxhY2VFbmNvZGVkRGF0YShTaGFyZWRCdWZmZXImIG5ld0J1ZmZl
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5k
ZXggMzBmZjMxMDEwMDIzLi45N2U2YWQ5NGM0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yODEsNyArMjgxLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyAvKiBieXRlc1Nl
bnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKiB0b3RhbEJ5dGVzVG9CZVNlbnQgKi8pIHsgfQog
Ci0jaWYgVVNFKEZPVU5EQVRJT04pIHx8IFVTRShTT1VQKQorI2lmIEVOQUJMRShTSEFSRUFCTEVf
UkVTT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0cnlSZXBsYWNlRW5jb2RlZERhdGEo
U2hhcmVkQnVmZmVyJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDdXJsLmNwcAppbmRleCA4YmVh
ODg5M2FiYWEuLjUxZmIxODFjOGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAKQEAgLTI2LDYg
KzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRh
LmgiCiAKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBu
YW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKIApAQCAtMTA1LDUgKzEwNywyMCBAQCBEYXRhIERhdGE6
OmFkb3B0TWFwKEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhJiYgbWFwcGVkRmlsZSwgRmlsZVN5
c3RlbTo6UGxhdGZvcgogICAgIHJldHVybiB7IFdURk1vdmUobWFwcGVkRmlsZSkgfTsKIH0KIAor
I2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBEYXRh
Ojp0cnlDcmVhdGVTaGFyZWRNZW1vcnkoKSBjb25zdAoreworICAgIGlmIChpc051bGwoKSB8fCAh
aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBIQU5ETEUgaGFuZGxlID0g
V1RGOjpnZXQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+KCptX2J1ZmZlcikuaGFuZGxlKCk7
CisgICAgSEFORExFIG5ld0hhbmRsZTsKKyAgICBpZiAoIUR1cGxpY2F0ZUhhbmRsZShHZXRDdXJy
ZW50UHJvY2VzcygpLCBoYW5kbGUsIEdldEN1cnJlbnRQcm9jZXNzKCksICZuZXdIYW5kbGUsIDAs
IGZhbHNlLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBTaGFyZWRNZW1vcnk6OmFkb3B0KG5ld0hhbmRsZSwgbV9zaXplLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFr
ZQppbmRleCAxZWNmZDIxZTQ0NzAuLmFlMmFiNGQxMDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL09wdGlvbnNXaW4uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UK
QEAgLTY2LDYgKzY2LDcgQEAgaWYgKCR7V1RGX1BMQVRGT1JNX1dJTl9DQUlST30pCiAgICAgV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiBQUklW
QVRFIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MRUdB
Q1lfRU5DUllQVEVEX01FRElBIFBVQkxJQyBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCBQUklWQVRFIE9OKQorICAgIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0Ug
UFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
VVNFUl9NRVNTQUdFX0hBTkRMRVJTIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wyIFBVQkxJQyBPTikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431402</attachid>
            <date>2021-06-14 22:27:56 -0700</date>
            <delta_ts>2021-06-17 14:16:59 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>10941</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCmluZGV4
IDFhMzgzMmViZjFmZi4uYTQ4NDMxNzM2MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAKQEAgLTMwLDQ5ICszMCw1MiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogQ2FjaGVQYXlsb2FkIENhY2hlUGF5bG9hZDo6bWFrZU1hcHBlZFBheWxvYWQoRmls
ZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEmJiBkYXRhKQogewotICAgIHJldHVybiBDYWNoZVBheWxv
YWQodHJ1ZSwgZGF0YS5sZWFrSGFuZGxlKCksIGRhdGEuc2l6ZSgpKTsKKyAgICByZXR1cm4gQ2Fj
aGVQYXlsb2FkKFdURk1vdmUoZGF0YSkpOwogfQogCiBDYWNoZVBheWxvYWQgQ2FjaGVQYXlsb2Fk
OjptYWtlTWFsbG9jUGF5bG9hZChNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+JiYgZGF0YSwg
c2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIENhY2hlUGF5bG9hZChmYWxzZSwgZGF0YS5sZWFr
UHRyKCksIHNpemUpOworICAgIHJldHVybiBDYWNoZVBheWxvYWQoc3RkOjptYWtlX3BhaXIoV1RG
TW92ZShkYXRhKSwgc2l6ZSkpOwogfQogCiBDYWNoZVBheWxvYWQgQ2FjaGVQYXlsb2FkOjptYWtl
RW1wdHlQYXlsb2FkKCkKIHsKLSAgICByZXR1cm4gQ2FjaGVQYXlsb2FkKHRydWUsIG51bGxwdHIs
IDApOworICAgIHJldHVybiBDYWNoZVBheWxvYWQoc3RkOjptYWtlX3BhaXIobnVsbHB0ciwgMCkp
OwogfQogCiBDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZChDYWNoZVBheWxvYWQmJiBvdGhlcikK
IHsKLSAgICBtX21hcHBlZCA9IG90aGVyLm1fbWFwcGVkOwotICAgIG1fc2l6ZSA9IG90aGVyLm1f
c2l6ZTsKLSAgICBtX2RhdGEgPSBvdGhlci5tX2RhdGE7Ci0gICAgb3RoZXIubV9tYXBwZWQgPSBm
YWxzZTsKLSAgICBvdGhlci5tX2RhdGEgPSBudWxscHRyOwotICAgIG90aGVyLm1fc2l6ZSA9IDA7
CisgICAgbV9kYXRhID0gV1RGTW92ZShvdGhlci5tX2RhdGEpOworICAgIG90aGVyLm1fZGF0YSA9
IHN0ZDo6bWFrZV9wYWlyKG51bGxwdHIsIDApOwogfQogCi1DYWNoZVBheWxvYWQ6On5DYWNoZVBh
eWxvYWQoKQorQ2FjaGVQYXlsb2FkOjpDYWNoZVBheWxvYWQoVmFyaWFudDxGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNp
emVfdD4+JiYgZGF0YSkKKyAgICA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewotICAgIGZyZWVE
YXRhKCk7CiB9CiAKLUNhY2hlUGF5bG9hZCYgQ2FjaGVQYXlsb2FkOjpvcGVyYXRvcj0oQ2FjaGVQ
YXlsb2FkJiYgb3RoZXIpCitDYWNoZVBheWxvYWQ6On5DYWNoZVBheWxvYWQoKSA9IGRlZmF1bHQ7
CisKK2NvbnN0IHVpbnQ4X3QqIENhY2hlUGF5bG9hZDo6ZGF0YSgpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICBmcmVlRGF0YSgpOwotICAgIHJldHVybiAqbmV3ICh0
aGlzKSBDYWNoZVBheWxvYWQoV1RGTW92ZShvdGhlcikpOworICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fZGF0YSwKKyAgICAgICAgW10oY29uc3QgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEm
IGRhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YS5kYXRhKCkpOworICAgICAgICB9LAorICAgICAgICBbXShjb25zdCBzdGQ6OnBhaXI8TWFs
bG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90PiYgZGF0YSkgeworICAgICAgICAgICAg
cmV0dXJuIGRhdGEuZmlyc3QuZ2V0KCk7CisgICAgICAgIH0pOwogfQogCi12b2lkIENhY2hlUGF5
bG9hZDo6ZnJlZURhdGEoKQorc2l6ZV90IENhY2hlUGF5bG9hZDo6c2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX2RhdGEpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9tYXBwZWQpIHsKLSAg
ICAgICAgRmlsZVN5c3RlbTo6dW5tYXBWaWV3T2ZGaWxlKG1fZGF0YSwgbV9zaXplKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgZmFzdEZyZWUobV9kYXRhKTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hP
bihtX2RhdGEsCisgICAgICAgIFtdKGNvbnN0IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhJiBk
YXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5zaXplKCk7CisgICAgICAgIH0sCisgICAg
ICAgIFtdKGNvbnN0IHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXpl
X3Q+JiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5zZWNvbmQ7CisgICAgICAgIH0p
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVQYXlsb2FkLmgKaW5kZXggMWRjYTExNzIyMjVjLi5iZWY4ZDcwNjUyMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWxsb2NQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKIApAQCAtNDEsMjIgKzQyLDEzIEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRf
UFJJVkFURSB+Q2FjaGVQYXlsb2FkKCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FjaGVQYXls
b2FkJiBvcGVyYXRvcj0oQ2FjaGVQYXlsb2FkJiYgb3RoZXIpOwogCi0gICAgY29uc3QgdWludDhf
dCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQotICAgIHNpemVfdCBzaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgdWludDhf
dCogZGF0YSgpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXplKCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGVQYXlsb2FkKGJvb2wgbWFwcGVkLCB2b2lkKiBkYXRh
LCBzaXplX3Qgc2l6ZSkKLSAgICAgICAgOiBtX21hcHBlZChtYXBwZWQpCi0gICAgICAgICwgbV9z
aXplKHNpemUpCi0gICAgICAgICwgbV9kYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKSkK
LSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmcmVlRGF0YSgpOwotCi0gICAgYm9vbCBtX21hcHBl
ZDsKLSAgICBzaXplX3QgbV9zaXplOwotICAgIHVpbnQ4X3QqIG1fZGF0YTsKKyAgICBDYWNoZVBh
eWxvYWQoVmFyaWFudDxGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxv
Y1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4+JiYpOworCisgICAgVmFyaWFudDxGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1h
bGxvYz4sIHNpemVfdD4+IG1fZGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxl
U3lzdGVtLmNwcAppbmRleCA4NzFhN2ExYTBhZjYuLmQ3MGRjZGQ2MTgzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5
c3RlbS5jcHAKQEAgLTMxNywxMyArMzE3LDYgQEAgYm9vbCBleGNsdWRlRnJvbUJhY2t1cChjb25z
dCBTdHJpbmcmKQogCiAjZW5kaWYKIAotTWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0YSgp
Ci17Ci0gICAgaWYgKCFtX2ZpbGVEYXRhKQotICAgICAgICByZXR1cm47Ci0gICAgdW5tYXBWaWV3
T2ZGaWxlKG1fZmlsZURhdGEsIG1fZmlsZVNpemUpOwotfQotCiBNYXBwZWRGaWxlRGF0YTo6TWFw
cGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgTWFwcGVkRmlsZU1vZGUgbWFwTW9k
ZSwgYm9vbCYgc3VjY2VzcykKIHsKICAgICBhdXRvIGZkID0gb3BlbkZpbGUoZmlsZVBhdGgsIEZp
bGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZCk7CkBAIC0zMzQsNiArMzI3LDEzIEBAIE1hcHBl
ZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBNYXBwZWRG
aWxlTW9kZSBtYXBNb2RlLCBiCiAKICNpZiBIQVZFKE1NQVApCiAKK01hcHBlZEZpbGVEYXRhOjp+
TWFwcGVkRmlsZURhdGEoKQoreworICAgIGlmICghbV9maWxlRGF0YSkKKyAgICAgICAgcmV0dXJu
OworICAgIG11bm1hcChtX2ZpbGVEYXRhLCBtX2ZpbGVTaXplKTsKK30KKwogYm9vbCBNYXBwZWRG
aWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Bl
bk1vZGUgb3Blbk1vZGUsIE1hcHBlZEZpbGVNb2RlIG1hcE1vZGUpCiB7CiAgICAgaWYgKCFpc0hh
bmRsZVZhbGlkKGhhbmRsZSkpCkBAIC0zODcsMTIgKzM4Nyw2IEBAIGJvb2wgTWFwcGVkRmlsZURh
dGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2Rl
IG9wZW5NCiAgICAgbV9maWxlU2l6ZSA9IHNpemU7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KLWJv
b2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCi17Ci0gICAgcmV0
dXJuICFtdW5tYXAoYnVmZmVyLCBzaXplKTsKLX0KLQogI2VuZGlmCiAKIFBsYXRmb3JtRmlsZUhh
bmRsZSBvcGVuQW5kTG9ja0ZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgb3Bl
bk1vZGUsIE9wdGlvblNldDxGaWxlTG9ja01vZGU+IGxvY2tNb2RlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmlu
ZGV4IGY3NTczYTg2NzNiNi4uODc4MjJiZWE4ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0yMTAs
OCArMjEwLDYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyByZWFsUGF0aChjb25zdCBTdHJp
bmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0
aChjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VTYWZlVG9Vc2VN
ZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCB1bm1hcFZpZXdPZkZpbGUodm9pZCogYnVmZmVyLCBzaXplX3QpOwotCiBjbGFzcyBNYXBwZWRG
aWxlRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0yMjcs
MTMgKzIyNSwxOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlsZURhdGE7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9m
aWxlU2l6ZTsgfQogCi0gICAgdm9pZCogbGVha0hhbmRsZSgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFu
Z2UobV9maWxlRGF0YSwgbnVsbHB0cik7IH0KKyNpZiBPUyhXSU5ET1dTKQorICAgIEhBTkRMRSBo
YW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5k
bGUsIEZpbGVPcGVuTW9kZSwgTWFwcGVkRmlsZU1vZGUpOwogCiAgICAgdm9pZCogbV9maWxlRGF0
YSB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBtX2ZpbGVTaXplIHsgMCB9OworI2lmIE9TKFdJ
TkRPV1MpCisgICAgSEFORExFIG1faGFuZGxlIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiBp
bmxpbmUgTWFwcGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIE1hcHBlZEZpbGVNb2RlIG1hcE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCkBAIC0yNDksNiAr
MjUyLDkgQEAgaW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3AKIGlubGluZSBNYXBwZWRGaWxlRGF0YTo6
TWFwcGVkRmlsZURhdGEoTWFwcGVkRmlsZURhdGEmJiBvdGhlcikKICAgICA6IG1fZmlsZURhdGEo
c3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVEYXRhLCBudWxscHRyKSkKICAgICAsIG1fZmlsZVNp
emUoc3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVTaXplLCAwKSkKKyNpZiBPUyhXSU5ET1dTKQor
ICAgICwgbV9oYW5kbGUoc3RkOjpleGNoYW5nZShvdGhlci5tX2hhbmRsZSwgbnVsbHB0cikpCisj
ZW5kaWYKIHsKIH0KIApAQCAtMjU2LDYgKzI2Miw5IEBAIGlubGluZSBNYXBwZWRGaWxlRGF0YSYg
TWFwcGVkRmlsZURhdGE6Om9wZXJhdG9yPShNYXBwZWRGaWxlRGF0YSYmIG90aGVyKQogewogICAg
IG1fZmlsZURhdGEgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZURhdGEsIG51bGxwdHIpOwog
ICAgIG1fZmlsZVNpemUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZVNpemUsIDApOworI2lm
IE9TKFdJTkRPV1MpCisgICAgbV9oYW5kbGUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faGFuZGxl
LCBudWxscHRyKTsKKyNlbmRpZgogICAgIHJldHVybiAqdGhpczsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2lu
L0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4IDM3NmEzMmM3MzQzYS4uZDY1Nzc2ZDQyNWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zNjMsOSArMzYzLDEzIEBAIFN0cmlu
ZyBjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoKQogICAgIH0pOwogfQogCi1ib29sIHVubWFwVmll
d09mRmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCkKK01hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmls
ZURhdGEoKQogewotICAgIHJldHVybiBVbm1hcFZpZXdPZkZpbGUoYnVmZmVyKTsKKyAgICBpZiAo
IW1fZmlsZURhdGEpCisgICAgICAgIHJldHVybjsKKyAgICBVbm1hcFZpZXdPZkZpbGUobV9maWxl
RGF0YSk7CisgICAgaWYgKG1faGFuZGxlKQorICAgICAgICBDbG9zZUhhbmRsZShtX2hhbmRsZSk7
CiB9CiAKIGJvb2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wZW5Nb2RlLCBNYXBwZWRGaWxlTW9kZSkKQEAgLTM5
OSwxMiArNDAzLDExIEBAIGJvb2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wZW5NCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAotICAgIGF1dG8gbWFwcGluZyA9IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVs
bHB0ciwgcGFnZVByb3RlY3Rpb24sIDAsIDAsIG51bGxwdHIpOwotICAgIGlmICghbWFwcGluZykK
KyAgICBtX2hhbmRsZSA9IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVsbHB0ciwgcGFnZVBy
b3RlY3Rpb24sIDAsIDAsIG51bGxwdHIpOworICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZGaWxlKG1hcHBpbmcsIGRl
c2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKLSAgICBDbG9zZUhhbmRsZShtYXBwaW5nKTsKKyAg
ICBtX2ZpbGVEYXRhID0gTWFwVmlld09mRmlsZShtX2hhbmRsZSwgZGVzaXJlZEFjY2VzcywgMCwg
MCwgKnNpemUpOwogICAgIGlmICghbV9maWxlRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIG1fZmlsZVNpemUgPSAqc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDc2YTJmMmUzNTE1NC4uODZmNzcyMGI4M2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTkw
NCw3ICs5MDQsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpDYWxsYmFjazo6dGltZXJGaXJlZCgp
CiAgICAgbV9yZXNvdXJjZS5kaWRBZGRDbGllbnQobV9jbGllbnQpOwogfQogCi0jaWYgVVNFKEZP
VU5EQVRJT04pIHx8IFVTRShTT1VQKQorI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAK
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnRyeVJlcGxhY2VFbmNvZGVkRGF0YShTaGFyZWRCdWZmZXIm
IG5ld0J1ZmZlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmgKaW5kZXggMzBmZjMxMDEwMDIzLi45N2U2YWQ5NGM0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yODEsNyArMjgxLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyAv
KiBieXRlc1NlbnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKiB0b3RhbEJ5dGVzVG9CZVNlbnQg
Ki8pIHsgfQogCi0jaWYgVVNFKEZPVU5EQVRJT04pIHx8IFVTRShTT1VQKQorI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0cnlSZXBsYWNlRW5j
b2RlZERhdGEoU2hhcmVkQnVmZmVyJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDdXJsLmNwcApp
bmRleCA4YmVhODg5M2FiYWEuLjUxZmIxODFjOGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ3VybC5jcHAK
QEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVEYXRhLmgiCiAKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiBuYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKIApAQCAtMTA1LDUgKzEwNywyMCBAQCBE
YXRhIERhdGE6OmFkb3B0TWFwKEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhJiYgbWFwcGVkRmls
ZSwgRmlsZVN5c3RlbTo6UGxhdGZvcgogICAgIHJldHVybiB7IFdURk1vdmUobWFwcGVkRmlsZSkg
fTsKIH0KIAorI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCitSZWZQdHI8U2hhcmVkTWVt
b3J5PiBEYXRhOjp0cnlDcmVhdGVTaGFyZWRNZW1vcnkoKSBjb25zdAoreworICAgIGlmIChpc051
bGwoKSB8fCAhaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBIQU5ETEUg
aGFuZGxlID0gV1RGOjpnZXQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+KCptX2J1ZmZlciku
aGFuZGxlKCk7CisgICAgSEFORExFIG5ld0hhbmRsZTsKKyAgICBpZiAoIUR1cGxpY2F0ZUhhbmRs
ZShHZXRDdXJyZW50UHJvY2VzcygpLCBoYW5kbGUsIEdldEN1cnJlbnRQcm9jZXNzKCksICZuZXdI
YW5kbGUsIDAsIGZhbHNlLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIHJldHVybiBTaGFyZWRNZW1vcnk6OmFkb3B0KG5ld0hhbmRsZSwgbV9z
aXplLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dpbi5jbWFrZQppbmRleCAxZWNmZDIxZTQ0NzAuLmFlMmFiNGQxMDM2NyAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNX
aW4uY21ha2UKQEAgLTY2LDYgKzY2LDcgQEAgaWYgKCR7V1RGX1BMQVRGT1JNX1dJTl9DQUlST30p
CiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMiBQUklWQVRFIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIFBVQkxJQyBPRkYpCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCBQUklWQVRFIE9O
KQorICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TSEFSRUFCTEVf
UkVTT1VSQ0UgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wyIFBVQkxJQyBPTikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431720</attachid>
            <date>2021-06-17 14:16:59 -0700</date>
            <delta_ts>2021-06-20 20:00:23 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>7392</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dURi93
dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODcxYTdhMWEwYWY2Li5kNzBkY2RkNjE4M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0ZpbGVTeXN0ZW0uY3BwCkBAIC0zMTcsMTMgKzMxNyw2IEBAIGJvb2wgZXhjbHVkZUZyb21CYWNr
dXAoY29uc3QgU3RyaW5nJikKIAogI2VuZGlmCiAKLU1hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmls
ZURhdGEoKQotewotICAgIGlmICghbV9maWxlRGF0YSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVu
bWFwVmlld09mRmlsZShtX2ZpbGVEYXRhLCBtX2ZpbGVTaXplKTsKLX0KLQogTWFwcGVkRmlsZURh
dGE6Ok1hcHBlZEZpbGVEYXRhKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIE1hcHBlZEZpbGVNb2Rl
IG1hcE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiB7CiAgICAgYXV0byBmZCA9IG9wZW5GaWxlKGZpbGVQ
YXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWQpOwpAQCAtMzM0LDYgKzMyNywxMyBA
QCBNYXBwZWRGaWxlRGF0YTo6TWFwcGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwg
TWFwcGVkRmlsZU1vZGUgbWFwTW9kZSwgYgogCiAjaWYgSEFWRShNTUFQKQogCitNYXBwZWRGaWxl
RGF0YTo6fk1hcHBlZEZpbGVEYXRhKCkKK3sKKyAgICBpZiAoIW1fZmlsZURhdGEpCisgICAgICAg
IHJldHVybjsKKyAgICBtdW5tYXAobV9maWxlRGF0YSwgbV9maWxlU2l6ZSk7Cit9CisKIGJvb2wg
TWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwg
RmlsZU9wZW5Nb2RlIG9wZW5Nb2RlLCBNYXBwZWRGaWxlTW9kZSBtYXBNb2RlKQogewogICAgIGlm
ICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQpAQCAtMzg3LDEyICszODcsNiBAQCBib29sIE1hcHBl
ZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIEZpbGVP
cGVuTW9kZSBvcGVuTQogICAgIG1fZmlsZVNpemUgPSBzaXplOwogICAgIHJldHVybiB0cnVlOwog
fQotCi1ib29sIHVubWFwVmlld09mRmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKQotewot
ICAgIHJldHVybiAhbXVubWFwKGJ1ZmZlciwgc2l6ZSk7Ci19Ci0KICNlbmRpZgogCiBQbGF0Zm9y
bUZpbGVIYW5kbGUgb3BlbkFuZExvY2tGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5N
b2RlIG9wZW5Nb2RlLCBPcHRpb25TZXQ8RmlsZUxvY2tNb2RlPiBsb2NrTW9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uaAppbmRleCBmNzU3M2E4NjczYjYuLjNlODE1OTdlMTc1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaApA
QCAtMjEwLDggKzIxMCw2IEBAIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcmVhbFBhdGgoY29u
c3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc1NhZmVUb1VzZU1lbW9yeU1h
cEZvclBhdGgoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBtYWtlU2Fm
ZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChjb25zdCBTdHJpbmcmKTsKIAotV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1ZmZlciwgc2l6ZV90KTsKLQogY2xhc3Mg
TWFwcGVkRmlsZURhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMjI3LDEzICsyMjUsMjEgQEAgcHVibGljOgogICAgIGNvbnN0IHZvaWQqIGRhdGEoKSBjb25z
dCB7IHJldHVybiBtX2ZpbGVEYXRhOyB9CiAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlsZVNpemU7IH0KIAorI2lmICFPUyhXSU5ET1dTKQogICAgIHZvaWQqIGxlYWtIYW5k
bGUoKSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fZmlsZURhdGEsIG51bGxwdHIpOyB9CisjZW5k
aWYKKyNpZiBPUyhXSU5ET1dTKQorICAgIEhBTkRMRSBmaWxlTWFwcGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fZmlsZU1hcHBpbmc7IH0KKyNlbmRpZgogCiBwcml2YXRlOgogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIG1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBGaWxlT3Blbk1v
ZGUsIE1hcHBlZEZpbGVNb2RlKTsKIAogICAgIHZvaWQqIG1fZmlsZURhdGEgeyBudWxscHRyIH07
CiAgICAgdW5zaWduZWQgbV9maWxlU2l6ZSB7IDAgfTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIEhB
TkRMRSBtX2ZpbGVNYXBwaW5nIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiBpbmxpbmUgTWFw
cGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIE1h
cHBlZEZpbGVNb2RlIG1hcE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCkBAIC0yNDksNiArMjU1LDkgQEAg
aW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlLCBGaWxlT3Blbk1vZGUgb3AKIGlubGluZSBNYXBwZWRGaWxlRGF0YTo6TWFwcGVkRmls
ZURhdGEoTWFwcGVkRmlsZURhdGEmJiBvdGhlcikKICAgICA6IG1fZmlsZURhdGEoc3RkOjpleGNo
YW5nZShvdGhlci5tX2ZpbGVEYXRhLCBudWxscHRyKSkKICAgICAsIG1fZmlsZVNpemUoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2ZpbGVTaXplLCAwKSkKKyNpZiBPUyhXSU5ET1dTKQorICAgICwgbV9m
aWxlTWFwcGluZyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZU1hcHBpbmcsIG51bGxwdHIpKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTI1Niw2ICsyNjUsOSBAQCBpbmxpbmUgTWFwcGVkRmlsZURhdGEm
IE1hcHBlZEZpbGVEYXRhOjpvcGVyYXRvcj0oTWFwcGVkRmlsZURhdGEmJiBvdGhlcikKIHsKICAg
ICBtX2ZpbGVEYXRhID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVEYXRhLCBudWxscHRyKTsK
ICAgICBtX2ZpbGVTaXplID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVTaXplLCAwKTsKKyNp
ZiBPUyhXSU5ET1dTKQorICAgIG1fZmlsZU1hcHBpbmcgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
ZmlsZU1hcHBpbmcsIG51bGxwdHIpOworI2VuZGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggMzc2YTMyYzczNDNhLi40N2UyMWVi
YzdlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKQEAgLTM2Myw5ICszNjMs
MTIgQEAgU3RyaW5nIGNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeSgpCiAgICAgfSk7CiB9CiAKLWJv
b2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1ZmZlciwgc2l6ZV90KQorTWFwcGVkRmlsZURhdGE6
On5NYXBwZWRGaWxlRGF0YSgpCiB7Ci0gICAgcmV0dXJuIFVubWFwVmlld09mRmlsZShidWZmZXIp
OworICAgIGlmIChtX2ZpbGVEYXRhKQorICAgICAgICBVbm1hcFZpZXdPZkZpbGUobV9maWxlRGF0
YSk7CisgICAgaWYgKG1fZmlsZU1hcHBpbmcpCisgICAgICAgIENsb3NlSGFuZGxlKG1fZmlsZU1h
cHBpbmcpOwogfQogCiBib29sIE1hcHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSBoYW5kbGUsIEZpbGVPcGVuTW9kZSBvcGVuTW9kZSwgTWFwcGVkRmlsZU1vZGUp
CkBAIC0zOTksMTIgKzQwMiwxMSBAQCBib29sIE1hcHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIEZpbGVPcGVuTW9kZSBvcGVuTQogICAgICAgICBi
cmVhazsKICAgICB9CiAKLSAgICBhdXRvIG1hcHBpbmcgPSBDcmVhdGVGaWxlTWFwcGluZyhoYW5k
bGUsIG51bGxwdHIsIHBhZ2VQcm90ZWN0aW9uLCAwLCAwLCBudWxscHRyKTsKLSAgICBpZiAoIW1h
cHBpbmcpCisgICAgbV9maWxlTWFwcGluZyA9IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVs
bHB0ciwgcGFnZVByb3RlY3Rpb24sIDAsIDAsIG51bGxwdHIpOworICAgIGlmICghbV9maWxlTWFw
cGluZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9maWxlRGF0YSA9IE1hcFZpZXdP
ZkZpbGUobWFwcGluZywgZGVzaXJlZEFjY2VzcywgMCwgMCwgKnNpemUpOwotICAgIENsb3NlSGFu
ZGxlKG1hcHBpbmcpOworICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZGaWxlKG1fZmlsZU1hcHBp
bmcsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKICAgICBpZiAoIW1fZmlsZURhdGEpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX2ZpbGVTaXplID0gKnNpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA3NmEyZjJlMzUx
NTQuLjg2Zjc3MjBiODNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC05MDQsNyArOTA0LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
Q2FsbGJhY2s6OnRpbWVyRmlyZWQoKQogICAgIG1fcmVzb3VyY2UuZGlkQWRkQ2xpZW50KG1fY2xp
ZW50KTsKIH0KIAotI2lmIFVTRShGT1VOREFUSU9OKSB8fCBVU0UoU09VUCkKKyNpZiBFTkFCTEUo
U0hBUkVBQkxFX1JFU09VUkNFKQogCiB2b2lkIENhY2hlZFJlc291cmNlOjp0cnlSZXBsYWNlRW5j
b2RlZERhdGEoU2hhcmVkQnVmZmVyJiBuZXdCdWZmZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDMwZmYzMTAxMDAyMy4uOTdlNmFkOTRj
NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApA
QCAtMjgxLDcgKzI4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0
YSh1bnNpZ25lZCBsb25nIGxvbmcgLyogYnl0ZXNTZW50ICovLCB1bnNpZ25lZCBsb25nIGxvbmcg
LyogdG90YWxCeXRlc1RvQmVTZW50ICovKSB7IH0KIAotI2lmIFVTRShGT1VOREFUSU9OKSB8fCBV
U0UoU09VUCkKKyNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdHJ5UmVwbGFjZUVuY29kZWREYXRhKFNoYXJlZEJ1ZmZlciYpOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlRGF0YUN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVEYXRhQ3VybC5jcHAKaW5kZXggOGJlYTg4OTNhYmFhLi41YjA4YjA0ZDllZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RGF0YUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRGF0YUN1cmwuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRGF0YS5oIgogCisjaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCisKIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAK
QEAgLTEwNSw1ICsxMDcsMjAgQEAgRGF0YSBEYXRhOjphZG9wdE1hcChGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlRGF0YSYmIG1hcHBlZEZpbGUsIEZpbGVTeXN0ZW06OlBsYXRmb3IKICAgICByZXR1cm4g
eyBXVEZNb3ZlKG1hcHBlZEZpbGUpIH07CiB9CiAKKyNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09V
UkNFKSAmJiBPUyhXSU5ET1dTKQorUmVmUHRyPFNoYXJlZE1lbW9yeT4gRGF0YTo6dHJ5Q3JlYXRl
U2hhcmVkTWVtb3J5KCkgY29uc3QKK3sKKyAgICBpZiAoaXNOdWxsKCkgfHwgIWlzTWFwKCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSEFORExFIGhhbmRsZSA9IFdURjo6Z2V0PEZp
bGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhPigqbV9idWZmZXIpLmZpbGVNYXBwaW5nKCk7CisgICAg
SEFORExFIG5ld0hhbmRsZTsKKyAgICBpZiAoIUR1cGxpY2F0ZUhhbmRsZShHZXRDdXJyZW50UHJv
Y2VzcygpLCBoYW5kbGUsIEdldEN1cnJlbnRQcm9jZXNzKCksICZuZXdIYW5kbGUsIDAsIGZhbHNl
LCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IHJldHVybiBTaGFyZWRNZW1vcnk6OmFkb3B0KG5ld0hhbmRsZSwgbV9zaXplLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBO
ZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNXaW4uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZQppbmRl
eCAxZWNmZDIxZTQ0NzAuLmFlMmFiNGQxMDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09w
dGlvbnNXaW4uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKQEAgLTY2
LDYgKzY2LDcgQEAgaWYgKCR7V1RGX1BMQVRGT1JNX1dJTl9DQUlST30pCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiBQUklWQVRFIE9O
KQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MRUdBQ1lfRU5D
UllQVEVEX01FRElBIFBVQkxJQyBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCBQUklWQVRFIE9OKQorICAgIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgUFJJVkFU
RSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVVNFUl9N
RVNTQUdFX0hBTkRMRVJTIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wyIFBVQkxJQyBPTikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431829</attachid>
            <date>2021-06-20 20:00:37 -0700</date>
            <delta_ts>2021-06-21 13:24:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227011-20210621120036.patch</filename>
            <type>text/plain</type>
            <size>16933</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmMyZGE3MDM4ODliNGY5ZDY2ODVjYmJiYjc5OTdmOGVmZTU0NjJjLi5lZTE5ZTFjZTQ1NGVhYjdh
NDBkM2JjMTkzYjNhMmI4NWFhMjMzMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAyMS0wNi0xNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBSZWltcGxlbWVudCBKU0M6OkNhY2hlUGF5bG9hZCB3aXRob3V0
IEZpbGVTeXN0ZW06OnVubWFwVmlld09mRmlsZSBhbmQgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURh
dGE6OmxlYWtIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzAxNAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAg
ICAgICAgcjI0NzU0MiAoQnVnIDE5OTc1OSkgYWRkZWQgRmlsZVN5c3RlbTo6dW5tYXBWaWV3T2ZG
aWxlIGFuZAorICAgICAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YTo6bGVha0hhbmRsZSBm
b3IgSlNDOjpDYWNoZVBheWxvYWQgdG8KKyAgICAgICAgZ2V0IHRoZSBtYXBwZWQgYWRkcmVzcyBh
bmQgdG8gZnJlZSB0aGUgYWRkcmVzcy4KKworICAgICAgICBIb3dldmVyLCBCdWcgMjI3MDExIGlz
IGdvaW5nIHRvIGFkZCBhIGZpbGUgbWFwcGluZyBoYW5kbGUgdG8KKyAgICAgICAgRmlsZVN5c3Rl
bTo6TWFwcGVkRmlsZURhdGEgZm9yIFdpbmRvd3MgcG9ydCB0byBjcmVhdGUgYQorICAgICAgICBT
aGFyZWRNZW1vcnkgZnJvbSBhIE1hcHBlZEZpbGVEYXRhLiBEZXN0cnVjdGlvbiBvZiBNYXBwZWRG
aWxlRGF0YQorICAgICAgICBzaG91bGQgYmUgZG9uZSBvbmx5IGJ5IE1hcHBlZEZpbGVEYXRhIGR0
b3IuCisKKyAgICAgICAgKiBydW50aW1lL0NhY2hlUGF5bG9hZC5jcHA6CisgICAgICAgIChKU0M6
OkNhY2hlUGF5bG9hZDo6bWFrZU1hcHBlZFBheWxvYWQpOgorICAgICAgICAoSlNDOjpDYWNoZVBh
eWxvYWQ6Om1ha2VNYWxsb2NQYXlsb2FkKToKKyAgICAgICAgKEpTQzo6Q2FjaGVQYXlsb2FkOjpt
YWtlRW1wdHlQYXlsb2FkKToKKyAgICAgICAgKEpTQzo6Q2FjaGVQYXlsb2FkOjpDYWNoZVBheWxv
YWQpOgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6OmRhdGEgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZVBheWxvYWQ6OnNpemUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZVBheWxv
YWQ6On5DYWNoZVBheWxvYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6
Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhY2hlUGF5bG9hZDo6ZnJlZURh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmg6IFVzZSBWYXJp
YW50IGZvciBkYXRhLgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6OmRhdGEgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6OnNpemUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZCk6IERlbGV0ZWQuCisK
IDIwMjEtMDYtMTcgIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIG5ldyBwYXR0ZXJuIHRvIGluc3RydWN0aW9uIHNlbGVjdG9yIHRvIHV0aWxpemUg
VUJGWCBzdXBwb3J0ZWQgYnkgQVJNNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjJiYzBiMGYzNjhiNDczMGI4NWYwYzNiNjBj
OTRhMTFhODg4NjZkYS4uYzBhZjMyY2Y3ZTZjY2M1MGYxZTZjYTA4NjU2ZDk1MWVjZjQxNmZlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wNi0yMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9y
aS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luQ2Fpcm9dIFR1cm4gRU5BQkxFX1NIQVJF
QUJMRV9SRVNPVVJDRSBvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgYSBuZXcgbWVtYmVyIG1fZmlsZU1hcHBpbmcgdG8gTWFwcGVkRmlsZURh
dGEgdG8gc3RvcmUgYSBmaWxlCisgICAgICAgIG1hcHBpbmcgb2JqZWN0IGhhbmRsZSB0byBjcmVh
dGUgYSBTaGFyZWRNZW1vcnkgZnJvbSBhCisgICAgICAgIE1hcHBlZEZpbGVEYXRhIG9uIFdpbmRv
d3MuCisKKyAgICAgICAgQ29uZGl0aW9uZWQgb3V0IE1hcHBlZEZpbGVEYXRhOjpsZWFrSGFuZGxl
KCkgaWYgT1MoV0lORE9XUykuIEFuZCwKKyAgICAgICAgcmVtb3ZlZCB1bm1hcFZpZXdPZkZpbGUo
KS4gRGVzdHJ1Y3Rpb24gb2YgTWFwcGVkRmlsZURhdGEgc2hvdWxkIGJlCisgICAgICAgIGRvbmUg
Ynkgfk1hcHBlZEZpbGVEYXRhLgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6TWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0
YSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6bWFwRmls
ZUhhbmRsZSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjp1bm1hcFZpZXdPZkZpbGUp
OiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisgICAgICAgIChXVEY6OkZp
bGVTeXN0ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6ZmlsZU1hcHBpbmcgY29uc3QpOgorICAgICAg
ICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6TWFwcGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKToK
KyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6Ok1hcHBlZEZpbGVEYXRhOjpvcGVyYXRvcj0p
OgorICAgICAgICAqIHd0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAgIChXVEY6OkZp
bGVTeXN0ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6fk1hcHBlZEZpbGVEYXRhKToKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6Ok1hcHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxlKToKKyAg
ICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnVubWFwVmlld09mRmlsZSk6IERlbGV0ZWQuCisK
IDIwMjEtMDYtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBEaXNhYmxlIEpJVENhZ2Ugb24gbWFjT1MgdW50aWwgd2UgZXZhbHVhdGUgcGVyZm9y
bWFuY2UgdGhyb3VnaGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3MjYxMmIyNGNiMDExZDIwMWQ3YTU4ZTY3
MmNjMDZlMTdkZjBkOS4uZjU0MGIxNDEyMjVhN2RiNzIwZGRhNTdhZTlhMWE3ZGRlYzUyZTFiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTIwICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gVHVybiBFTkFC
TEVfU0hBUkVBQkxFX1JFU09VUkNFIG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjcwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisKIDIwMjEtMDYtMTcgIEFkaXR5
YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
NzcwNjcpOiBJbmNvcnJlY3QgdGV4dCBjb2xvciBmb3IgZGVmYXVsdC1idXR0b24gYXBwZWFyYW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAwNGQ5ZTY4YmFiNzY5YzI1NDZlN2Y2MzE5OWRjMmQ4NzQwYjZmMjc1Li43
YzcwZmY0NTVhMjI2NDRkNDUwOTZkM2U5Yjg1NDIwNTVkYjEwMDEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTA2LTIwICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gVHVybiBFTkFCTEVfU0hBUkVBQkxFX1JFU09V
UkNFIG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjcwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDdXJsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhOjp0cnlDcmVhdGVTaGFyZWRNZW1vcnkgY29uc3Qp
OiBBZGRlZC4KKwogMjAyMS0wNi0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZG9wdCBXS0hvdmVyR2VzdHVyZVJlY29nbml6ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCmluZGV4IDFhMzgzMmVi
ZjFmZjMyMzg0ZDVhNjQ0NGQ1ZjE2YzZiYWNhZWUyNDUuLjYxNjhmZWU5NjZjYjY1YzU2Y2Q2NjU1
NTY2NmNmNTRiZmRiNzI5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NhY2hlUGF5bG9hZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2FjaGVQYXlsb2FkLmNwcApAQCAtMzAsNDkgKzMwLDUyIEBAIG5hbWVzcGFjZSBKU0MgewogCiBD
YWNoZVBheWxvYWQgQ2FjaGVQYXlsb2FkOjptYWtlTWFwcGVkUGF5bG9hZChGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlRGF0YSYmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIENhY2hlUGF5bG9hZCh0cnVlLCBk
YXRhLmxlYWtIYW5kbGUoKSwgZGF0YS5zaXplKCkpOworICAgIHJldHVybiBDYWNoZVBheWxvYWQo
V1RGTW92ZShkYXRhKSk7CiB9CiAKIENhY2hlUGF5bG9hZCBDYWNoZVBheWxvYWQ6Om1ha2VNYWxs
b2NQYXlsb2FkKE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4mJiBkYXRhLCBzaXplX3Qgc2l6
ZSkKIHsKLSAgICByZXR1cm4gQ2FjaGVQYXlsb2FkKGZhbHNlLCBkYXRhLmxlYWtQdHIoKSwgc2l6
ZSk7CisgICAgcmV0dXJuIENhY2hlUGF5bG9hZChzdGQ6OnBhaXIgeyBXVEZNb3ZlKGRhdGEpLCBz
aXplIH0pOwogfQogCiBDYWNoZVBheWxvYWQgQ2FjaGVQYXlsb2FkOjptYWtlRW1wdHlQYXlsb2Fk
KCkKIHsKLSAgICByZXR1cm4gQ2FjaGVQYXlsb2FkKHRydWUsIG51bGxwdHIsIDApOworICAgIHJl
dHVybiBDYWNoZVBheWxvYWQoc3RkOjpwYWlyIHsgbnVsbHB0ciwgMCB9KTsKIH0KIAogQ2FjaGVQ
YXlsb2FkOjpDYWNoZVBheWxvYWQoQ2FjaGVQYXlsb2FkJiYgb3RoZXIpCiB7Ci0gICAgbV9tYXBw
ZWQgPSBvdGhlci5tX21hcHBlZDsKLSAgICBtX3NpemUgPSBvdGhlci5tX3NpemU7Ci0gICAgbV9k
YXRhID0gb3RoZXIubV9kYXRhOwotICAgIG90aGVyLm1fbWFwcGVkID0gZmFsc2U7Ci0gICAgb3Ro
ZXIubV9kYXRhID0gbnVsbHB0cjsKLSAgICBvdGhlci5tX3NpemUgPSAwOworICAgIG1fZGF0YSA9
IFdURk1vdmUob3RoZXIubV9kYXRhKTsKKyAgICBvdGhlci5tX2RhdGEgPSBzdGQ6OnBhaXIgeyBu
dWxscHRyLCAwIH07CiB9CiAKLUNhY2hlUGF5bG9hZDo6fkNhY2hlUGF5bG9hZCgpCitDYWNoZVBh
eWxvYWQ6OkNhY2hlUGF5bG9hZChWYXJpYW50PEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhLCBz
dGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90Pj4mJiBkYXRhKQor
ICAgIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpCiB7Ci0gICAgZnJlZURhdGEoKTsKIH0KIAotQ2Fj
aGVQYXlsb2FkJiBDYWNoZVBheWxvYWQ6Om9wZXJhdG9yPShDYWNoZVBheWxvYWQmJiBvdGhlcikK
K0NhY2hlUGF5bG9hZDo6fkNhY2hlUGF5bG9hZCgpID0gZGVmYXVsdDsKKworY29uc3QgdWludDhf
dCogQ2FjaGVQYXlsb2FkOjpkYXRhKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoJm90aGVyICE9IHRo
aXMpOwotICAgIGZyZWVEYXRhKCk7Ci0gICAgcmV0dXJuICpuZXcgKHRoaXMpIENhY2hlUGF5bG9h
ZChXVEZNb3ZlKG90aGVyKSk7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9kYXRhLAorICAg
ICAgICBbXShjb25zdCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSYgZGF0YSkgeworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhLmRhdGEoKSk7Cisg
ICAgICAgIH0sCisgICAgICAgIFtdKGNvbnN0IHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwg
Vk1NYWxsb2M+LCBzaXplX3Q+JiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5maXJz
dC5nZXQoKTsKKyAgICAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVQYXlsb2FkOjpmcmVlRGF0YSgp
CitzaXplX3QgQ2FjaGVQYXlsb2FkOjpzaXplKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZGF0YSkK
LSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX21hcHBlZCkgewotICAgICAgICBGaWxlU3lzdGVt
Ojp1bm1hcFZpZXdPZkZpbGUobV9kYXRhLCBtX3NpemUpOwotICAgIH0gZWxzZQotICAgICAgICBm
YXN0RnJlZShtX2RhdGEpOworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fZGF0YSwKKyAgICAg
ICAgW10oY29uc3QgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEmIGRhdGEpIHsKKyAgICAgICAg
ICAgIHJldHVybiBkYXRhLnNpemUoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10oY29uc3Qgc3Rk
OjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4mIGRhdGEpIHsKKyAg
ICAgICAgICAgIHJldHVybiBkYXRhLnNlY29uZDsKKyAgICAgICAgfSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2Fj
aGVQYXlsb2FkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQu
aAppbmRleCAxZGNhMTE3MjIyNWM5NTk1MmM1NTI5MWRjYzZiYWJjNzg5MWI4ZWJiLi5iZWY4ZDcw
NjUyMmFmNmFlMDI0OWU4NjVmZTMwMzk0NjFlNjA5NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlZNLmgiCiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTWFsbG9j
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAg
LTQxLDIyICs0MiwxMyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfkNhY2hlUGF5
bG9hZCgpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIENhY2hlUGF5bG9hZCYgb3BlcmF0b3I9KENh
Y2hlUGF5bG9hZCYmIG90aGVyKTsKIAotICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2RhdGE7IH0KLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6
ZTsgfQorICAgIEpTX0VYUE9SVF9QUklWQVRFIGNvbnN0IHVpbnQ4X3QqIGRhdGEoKSBjb25zdDsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3Qgc2l6ZSgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIENhY2hlUGF5bG9hZChib29sIG1hcHBlZCwgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUpCi0g
ICAgICAgIDogbV9tYXBwZWQobWFwcGVkKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgICAg
ICAsIG1fZGF0YShzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSkpCi0gICAgewotICAgIH0KLQot
ICAgIHZvaWQgZnJlZURhdGEoKTsKLQotICAgIGJvb2wgbV9tYXBwZWQ7Ci0gICAgc2l6ZV90IG1f
c2l6ZTsKLSAgICB1aW50OF90KiBtX2RhdGE7CisgICAgQ2FjaGVQYXlsb2FkKFZhcmlhbnQ8Rmls
ZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1N
YWxsb2M+LCBzaXplX3Q+PiYmKTsKKworICAgIFZhcmlhbnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmls
ZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXplX3Q+PiBt
X2RhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXgg
ODcxYTdhMWEwYWY2Y2UyYTY5OWFjODdmMTM5NGM2Nzc5ZDZiZjQ2MC4uZDcwZGNkZDYxODNmY2Vl
NDA0YzI2ZTk1MTVlMTEwNDU3OTRlZWU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmls
ZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTMxNywx
MyArMzE3LDYgQEAgYm9vbCBleGNsdWRlRnJvbUJhY2t1cChjb25zdCBTdHJpbmcmKQogCiAjZW5k
aWYKIAotTWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0YSgpCi17Ci0gICAgaWYgKCFtX2Zp
bGVEYXRhKQotICAgICAgICByZXR1cm47Ci0gICAgdW5tYXBWaWV3T2ZGaWxlKG1fZmlsZURhdGEs
IG1fZmlsZVNpemUpOwotfQotCiBNYXBwZWRGaWxlRGF0YTo6TWFwcGVkRmlsZURhdGEoY29uc3Qg
U3RyaW5nJiBmaWxlUGF0aCwgTWFwcGVkRmlsZU1vZGUgbWFwTW9kZSwgYm9vbCYgc3VjY2VzcykK
IHsKICAgICBhdXRvIGZkID0gb3BlbkZpbGUoZmlsZVBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVu
TW9kZTo6UmVhZCk7CkBAIC0zMzQsNiArMzI3LDEzIEBAIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRG
aWxlRGF0YShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBNYXBwZWRGaWxlTW9kZSBtYXBNb2RlLCBi
CiAKICNpZiBIQVZFKE1NQVApCiAKK01hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmlsZURhdGEoKQor
eworICAgIGlmICghbV9maWxlRGF0YSkKKyAgICAgICAgcmV0dXJuOworICAgIG11bm1hcChtX2Zp
bGVEYXRhLCBtX2ZpbGVTaXplKTsKK30KKwogYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhh
bmRsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3Blbk1vZGUsIE1h
cHBlZEZpbGVNb2RlIG1hcE1vZGUpCiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkp
CkBAIC0zODcsMTIgKzM4Nyw2IEBAIGJvb2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUo
UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wZW5NCiAgICAgbV9maWxl
U2l6ZSA9IHNpemU7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KLWJvb2wgdW5tYXBWaWV3T2ZGaWxl
KHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCi17Ci0gICAgcmV0dXJuICFtdW5tYXAoYnVmZmVy
LCBzaXplKTsKLX0KLQogI2VuZGlmCiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuQW5kTG9ja0Zp
bGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgb3Blbk1vZGUsIE9wdGlvblNldDxG
aWxlTG9ja01vZGU+IGxvY2tNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5
c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmluZGV4IGY3NTczYTg2NzNiNmIy
MTJlYTc2NzY0NjRlMGJiMzU3YTg4ZWUxOTkuLjNlODE1OTdlMTc1OGYxNjM3ZjA5ODlkMjg2OGZj
ZjAwMDZkMzIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTIxMCw4ICsyMTAsNiBAQCBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nIHJlYWxQYXRoKGNvbnN0IFN0cmluZyYpOwogV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYpOwog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgbWFrZVNhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoY29u
c3QgU3RyaW5nJik7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIHVubWFwVmlld09mRmlsZSh2
b2lkKiBidWZmZXIsIHNpemVfdCk7Ci0KIGNsYXNzIE1hcHBlZEZpbGVEYXRhIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTIyNywxMyArMjI1LDIxIEBAIHB1Ymxp
YzoKICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9maWxlRGF0YTsgfQog
ICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVTaXplOyB9CiAKKyNpZiAh
T1MoV0lORE9XUykKICAgICB2b2lkKiBsZWFrSGFuZGxlKCkgeyByZXR1cm4gc3RkOjpleGNoYW5n
ZShtX2ZpbGVEYXRhLCBudWxscHRyKTsgfQorI2VuZGlmCisjaWYgT1MoV0lORE9XUykKKyAgICBI
QU5ETEUgZmlsZU1hcHBpbmcoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVNYXBwaW5nOyB9CisjZW5k
aWYKIAogcHJpdmF0ZToKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBtYXBGaWxlSGFuZGxl
KFBsYXRmb3JtRmlsZUhhbmRsZSwgRmlsZU9wZW5Nb2RlLCBNYXBwZWRGaWxlTW9kZSk7CiAKICAg
ICB2b2lkKiBtX2ZpbGVEYXRhIHsgbnVsbHB0ciB9OwogICAgIHVuc2lnbmVkIG1fZmlsZVNpemUg
eyAwIH07CisjaWYgT1MoV0lORE9XUykKKyAgICBIQU5ETEUgbV9maWxlTWFwcGluZyB7IG51bGxw
dHIgfTsKKyNlbmRpZgogfTsKIAogaW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0
YShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBNYXBwZWRGaWxlTW9kZSBtYXBNb2RlLCBib29s
JiBzdWNjZXNzKQpAQCAtMjQ5LDYgKzI1NSw5IEBAIGlubGluZSBNYXBwZWRGaWxlRGF0YTo6TWFw
cGVkRmlsZURhdGEoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmlsZU9wZW5Nb2RlIG9wCiBp
bmxpbmUgTWFwcGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKE1hcHBlZEZpbGVEYXRhJiYgb3Ro
ZXIpCiAgICAgOiBtX2ZpbGVEYXRhKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlRGF0YSwgbnVs
bHB0cikpCiAgICAgLCBtX2ZpbGVTaXplKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlU2l6ZSwg
MCkpCisjaWYgT1MoV0lORE9XUykKKyAgICAsIG1fZmlsZU1hcHBpbmcoc3RkOjpleGNoYW5nZShv
dGhlci5tX2ZpbGVNYXBwaW5nLCBudWxscHRyKSkKKyNlbmRpZgogewogfQogCkBAIC0yNTYsNiAr
MjY1LDkgQEAgaW5saW5lIE1hcHBlZEZpbGVEYXRhJiBNYXBwZWRGaWxlRGF0YTo6b3BlcmF0b3I9
KE1hcHBlZEZpbGVEYXRhJiYgb3RoZXIpCiB7CiAgICAgbV9maWxlRGF0YSA9IHN0ZDo6ZXhjaGFu
Z2Uob3RoZXIubV9maWxlRGF0YSwgbnVsbHB0cik7CiAgICAgbV9maWxlU2l6ZSA9IHN0ZDo6ZXhj
aGFuZ2Uob3RoZXIubV9maWxlU2l6ZSwgMCk7CisjaWYgT1MoV0lORE9XUykKKyAgICBtX2ZpbGVN
YXBwaW5nID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2ZpbGVNYXBwaW5nLCBudWxscHRyKTsKKyNl
bmRpZgogICAgIHJldHVybiAqdGhpczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
d2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4u
Y3BwCmluZGV4IDM3NmEzMmM3MzQzYTA3OWI0OGEzOTA3MjNhYWQ3NjQ1Yjk2NGJhNWUuLjQ3ZTIx
ZWJjN2U0ZGE2MzRhNDE0OTgyNDg2NjkwYzIyOTQ4NjRjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmls
ZVN5c3RlbVdpbi5jcHAKQEAgLTM2Myw5ICszNjMsMTIgQEAgU3RyaW5nIGNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeSgpCiAgICAgfSk7CiB9CiAKLWJvb2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1
ZmZlciwgc2l6ZV90KQorTWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0YSgpCiB7Ci0gICAg
cmV0dXJuIFVubWFwVmlld09mRmlsZShidWZmZXIpOworICAgIGlmIChtX2ZpbGVEYXRhKQorICAg
ICAgICBVbm1hcFZpZXdPZkZpbGUobV9maWxlRGF0YSk7CisgICAgaWYgKG1fZmlsZU1hcHBpbmcp
CisgICAgICAgIENsb3NlSGFuZGxlKG1fZmlsZU1hcHBpbmcpOwogfQogCiBib29sIE1hcHBlZEZp
bGVEYXRhOjptYXBGaWxlSGFuZGxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIEZpbGVPcGVu
TW9kZSBvcGVuTW9kZSwgTWFwcGVkRmlsZU1vZGUpCkBAIC0zOTksMTIgKzQwMiwxMSBAQCBib29s
IE1hcHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUs
IEZpbGVPcGVuTW9kZSBvcGVuTQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBhdXRvIG1h
cHBpbmcgPSBDcmVhdGVGaWxlTWFwcGluZyhoYW5kbGUsIG51bGxwdHIsIHBhZ2VQcm90ZWN0aW9u
LCAwLCAwLCBudWxscHRyKTsKLSAgICBpZiAoIW1hcHBpbmcpCisgICAgbV9maWxlTWFwcGluZyA9
IENyZWF0ZUZpbGVNYXBwaW5nKGhhbmRsZSwgbnVsbHB0ciwgcGFnZVByb3RlY3Rpb24sIDAsIDAs
IG51bGxwdHIpOworICAgIGlmICghbV9maWxlTWFwcGluZykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgbV9maWxlRGF0YSA9IE1hcFZpZXdPZkZpbGUobWFwcGluZywgZGVzaXJlZEFjY2Vz
cywgMCwgMCwgKnNpemUpOwotICAgIENsb3NlSGFuZGxlKG1hcHBpbmcpOworICAgIG1fZmlsZURh
dGEgPSBNYXBWaWV3T2ZGaWxlKG1fZmlsZU1hcHBpbmcsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsICpz
aXplKTsKICAgICBpZiAoIW1fZmlsZURhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBt
X2ZpbGVTaXplID0gKnNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAppbmRleCA3NmEyZjJlMzUxNTRmZWJiMGE4MTZiOWMyMDVmOGViMGQyYzZm
NGFmLi44NmY3NzIwYjgzZWIwM2UxMThjZWVkNmYyMzQxOGI4YjI2NWRmNDI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTkwNCw3ICs5
MDQsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpDYWxsYmFjazo6dGltZXJGaXJlZCgpCiAgICAg
bV9yZXNvdXJjZS5kaWRBZGRDbGllbnQobV9jbGllbnQpOwogfQogCi0jaWYgVVNFKEZPVU5EQVRJ
T04pIHx8IFVTRShTT1VQKQorI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAKIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OnRyeVJlcGxhY2VFbmNvZGVkRGF0YShTaGFyZWRCdWZmZXImIG5ld0J1
ZmZlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
aW5kZXggMzBmZjMxMDEwMDIzY2IyMjQ2YWZiMTQ5NmQ3MGVkMWQ0YjVkN2EzNS4uOTdlNmFkOTRj
NDE3MTBlMzg1ZjFkYTJhMTM4MDBmYmUzOTE3YmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTI4MSw3ICsyODEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIC8qIGJ5dGVz
U2VudCAqLywgdW5zaWduZWQgbG9uZyBsb25nIC8qIHRvdGFsQnl0ZXNUb0JlU2VudCAqLykgeyB9
CiAKLSNpZiBVU0UoRk9VTkRBVElPTikgfHwgVVNFKFNPVVApCisjaWYgRU5BQkxFKFNIQVJFQUJM
RV9SRVNPVVJDRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRyeVJlcGxhY2VFbmNvZGVkRGF0
YShTaGFyZWRCdWZmZXImKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDdXJsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUN1cmwuY3BwCmluZGV4IDhi
ZWE4ODkzYWJhYTc4MTk3ZTY1ODU2ZjI0NTU1ZjdhZmRmNTc4MDUuLjViMDhiMDRkOWVlNjJmMjdh
YmZjZTVmYzViMmNlMTQ3ZGNmOGY1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUN1cmwuY3BwCkBAIC0yNiw2
ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRGF0
YS5oIgogCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
bmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKQEAgLTEwNSw1ICsxMDcsMjAgQEAgRGF0YSBEYXRh
OjphZG9wdE1hcChGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSYmIG1hcHBlZEZpbGUsIEZpbGVT
eXN0ZW06OlBsYXRmb3IKICAgICByZXR1cm4geyBXVEZNb3ZlKG1hcHBlZEZpbGUpIH07CiB9CiAK
KyNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKSAmJiBPUyhXSU5ET1dTKQorUmVmUHRyPFNo
YXJlZE1lbW9yeT4gRGF0YTo6dHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkgY29uc3QKK3sKKyAgICBp
ZiAoaXNOdWxsKCkgfHwgIWlzTWFwKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
SEFORExFIGhhbmRsZSA9IFdURjo6Z2V0PEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhPigqbV9i
dWZmZXIpLmZpbGVNYXBwaW5nKCk7CisgICAgSEFORExFIG5ld0hhbmRsZTsKKyAgICBpZiAoIUR1
cGxpY2F0ZUhhbmRsZShHZXRDdXJyZW50UHJvY2VzcygpLCBoYW5kbGUsIEdldEN1cnJlbnRQcm9j
ZXNzKCksICZuZXdIYW5kbGUsIDAsIGZhbHNlLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBTaGFyZWRNZW1vcnk6OmFkb3B0KG5l
d0hhbmRsZSwgbV9zaXplLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc1dpbi5jbWFrZQppbmRleCAxZWNmZDIxZTQ0NzAzYjJkNjFhZmY1NDk0NDE0
ZDMzODc4ZjBjZmNkLi5hZTJhYjRkMTAzNjdkYmY2YmMzOGY5YTAyNDZjYWIyNDg1YjZmYjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dpbi5jbWFrZQpAQCAtNjYsNiArNjYsNyBAQCBpZiAoJHtXVEZfUExBVEZPUk1f
V0lOX0NBSVJPfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
RklMVEVSU19MRVZFTF8yIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgUFVCTElDIE9GRikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNU
IFBSSVZBVEUgT04pCisgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1NIQVJFQUJMRV9SRVNPVVJDRSBQUklWQVRFIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMgUFJJVkFURSBPTikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wgUFVCTElDIE9O
KQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJHTDIgUFVC
TElDIE9OKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDA3MzNmYjky
YTU1ZGM0MWQzODYxZWJmNzcxMDQ4M2M1Y2U4MDhhZjAuLjUxMGU5NTg4NTI3MjhjZmE4Y2RmOWU4
YjdiOTMzZDc3ZDJhYmIxYWYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNi0yMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luQ2Fpcm9dIFR1cm4gRU5BQkxFX1NIQVJFQUJM
RV9SRVNPVVJDRSBvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3MDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZTogVHVybmVkIEVOQUJMRV9TSEFS
RUFCTEVfUkVTT1VSQ0Ugb24gZm9yIFdpbkNhaXJvIHBvcnQuCisKIDIwMjEtMDYtMTEgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLiBVcGRhdGUgT3B0aW9uc1dQRS5jbWFrZSBhbmQgTkVXUyBmb3IgdGhlIDIuMzMuMiByZWxl
YXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431901</attachid>
            <date>2021-06-21 13:25:09 -0700</date>
            <delta_ts>2021-06-21 14:42:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227011-20210622052508.patch</filename>
            <type>text/plain</type>
            <size>11348</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUzMDhhOGUwMDY2ZTZiZTU4MjZjNTY2
ZjM3YjY3NDFiMTQ3NDIwZjMuLmRkN2NjYmQ3NjI1NzVlZDY3NTk0OTlmNDdlNjJkMDIzMDliYThm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDYtMjEgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXSBUdXJuIEVOQUJMRV9T
SEFSRUFCTEVfUkVTT1VSQ0Ugb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgbmV3IG1lbWJlciBtX2ZpbGVNYXBwaW5nIHRvIE1hcHBlZEZp
bGVEYXRhIHRvIHN0b3JlIGEgZmlsZQorICAgICAgICBtYXBwaW5nIG9iamVjdCBoYW5kbGUgdG8g
Y3JlYXRlIGEgU2hhcmVkTWVtb3J5IGZyb20gYQorICAgICAgICBNYXBwZWRGaWxlRGF0YSBvbiBX
aW5kb3dzLgorCisgICAgICAgIENvbmRpdGlvbmVkIG91dCBNYXBwZWRGaWxlRGF0YTo6bGVha0hh
bmRsZSgpIGlmIE9TKFdJTkRPV1MpLiBBbmQsCisgICAgICAgIHJlbW92ZWQgdW5tYXBWaWV3T2ZG
aWxlKCkuIERlc3RydWN0aW9uIG9mIE1hcHBlZEZpbGVEYXRhIHNob3VsZCBiZQorICAgICAgICBk
b25lIGJ5IH5NYXBwZWRGaWxlRGF0YS4KKworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNwcDoK
KyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6Ok1hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmls
ZURhdGEpOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6TWFwcGVkRmlsZURhdGE6Om1h
cEZpbGVIYW5kbGUpOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6dW5tYXBWaWV3T2ZG
aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvRmlsZVN5c3RlbS5oOgorICAgICAgICAoV1RG
OjpGaWxlU3lzdGVtSW1wbDo6TWFwcGVkRmlsZURhdGE6OmZpbGVNYXBwaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6Ok1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0
YSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6b3BlcmF0
b3I9KToKKyAgICAgICAgKiB3dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAgICAoV1RG
OjpGaWxlU3lzdGVtSW1wbDo6TWFwcGVkRmlsZURhdGE6On5NYXBwZWRGaWxlRGF0YSk6CisgICAg
ICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZSk6
CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjp1bm1hcFZpZXdPZkZpbGUpOiBEZWxldGVk
LgorCiAyMDIxLTA2LTIxICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgbWFrZVVuaXF1ZSBjYW5ub3QgYmUgdXNlZCB0byBpbnN0YW50aWF0ZSBmdW5jdGlv
bi1sb2NhbCBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYzMzM2NmNmNGZlZDUwYzBlZWZhYzhjOGQ5
ZDE4ZTk4OTA2ZDRmMi4uYzVkZWI1MzE4N2UyYjE2NDFhMTMxMjY4YjQ5YTVhNzY4NDE0N2JiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTIxICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gVHVybiBFTkFC
TEVfU0hBUkVBQkxFX1JFU09VUkNFIG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjcwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisKIDIwMjEtMDYtMjEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDU1NPTSB0ZXN0IGZvciBzZXJpYWxp
emluZyBmb250LXZhcmlhbnQgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjBkZDNiY2YyNjlhODJiMWIyNjBm
NmU1ODc4ZWU2NzhmMzA3NTMxZC4uYTczNTMwMzdkODA3ODI3M2M5MzE3MTBkYTQ1NWI4Y2YyZGE4
OWE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNi0yMSAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luQ2Fpcm9dIFR1cm4g
RU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVE
YXRhQ3VybC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YTo6dHJ5Q3Jl
YXRlU2hhcmVkTWVtb3J5IGNvbnN0KTogQWRkZWQuCisKIDIwMjEtMDYtMjEgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCcmVhayByZWYgY3lj
bGUgYmV0d2VlbiBBUEk6OkhUVFBDb29raWVTdG9yZSBhbmQgV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg3MWE3YTFhMGFmNmNlMmE2OTlhYzg3ZjEzOTRj
Njc3OWQ2YmY0NjAuLmQ3MGRjZGQ2MTgzZmNlZTQwNGMyNmU5NTE1ZTExMDQ1Nzk0ZWVlNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC0zMTcsMTMgKzMxNyw2IEBAIGJvb2wgZXhjbHVkZUZyb21C
YWNrdXAoY29uc3QgU3RyaW5nJikKIAogI2VuZGlmCiAKLU1hcHBlZEZpbGVEYXRhOjp+TWFwcGVk
RmlsZURhdGEoKQotewotICAgIGlmICghbV9maWxlRGF0YSkKLSAgICAgICAgcmV0dXJuOwotICAg
IHVubWFwVmlld09mRmlsZShtX2ZpbGVEYXRhLCBtX2ZpbGVTaXplKTsKLX0KLQogTWFwcGVkRmls
ZURhdGE6Ok1hcHBlZEZpbGVEYXRhKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIE1hcHBlZEZpbGVN
b2RlIG1hcE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiB7CiAgICAgYXV0byBmZCA9IG9wZW5GaWxlKGZp
bGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWQpOwpAQCAtMzM0LDYgKzMyNywx
MyBAQCBNYXBwZWRGaWxlRGF0YTo6TWFwcGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0
aCwgTWFwcGVkRmlsZU1vZGUgbWFwTW9kZSwgYgogCiAjaWYgSEFWRShNTUFQKQogCitNYXBwZWRG
aWxlRGF0YTo6fk1hcHBlZEZpbGVEYXRhKCkKK3sKKyAgICBpZiAoIW1fZmlsZURhdGEpCisgICAg
ICAgIHJldHVybjsKKyAgICBtdW5tYXAobV9maWxlRGF0YSwgbV9maWxlU2l6ZSk7Cit9CisKIGJv
b2wgTWFwcGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSwgRmlsZU9wZW5Nb2RlIG9wZW5Nb2RlLCBNYXBwZWRGaWxlTW9kZSBtYXBNb2RlKQogewogICAg
IGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQpAQCAtMzg3LDEyICszODcsNiBAQCBib29sIE1h
cHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIEZp
bGVPcGVuTW9kZSBvcGVuTQogICAgIG1fZmlsZVNpemUgPSBzaXplOwogICAgIHJldHVybiB0cnVl
OwogfQotCi1ib29sIHVubWFwVmlld09mRmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKQot
ewotICAgIHJldHVybiAhbXVubWFwKGJ1ZmZlciwgc2l6ZSk7Ci19Ci0KICNlbmRpZgogCiBQbGF0
Zm9ybUZpbGVIYW5kbGUgb3BlbkFuZExvY2tGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9w
ZW5Nb2RlIG9wZW5Nb2RlLCBPcHRpb25TZXQ8RmlsZUxvY2tNb2RlPiBsb2NrTW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVT
eXN0ZW0uaAppbmRleCBmNzU3M2E4NjczYjZiMjEyZWE3Njc2NDY0ZTBiYjM1N2E4OGVlMTk5Li4z
ZTgxNTk3ZTE3NThmMTYzN2YwOTg5ZDI4NjhmY2YwMDA2ZDMyMWY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5o
CkBAIC0yMTAsOCArMjEwLDYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyByZWFsUGF0aChj
b25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzU2FmZVRvVXNlTWVtb3J5
TWFwRm9yUGF0aChjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VT
YWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYpOwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCB1bm1hcFZpZXdPZkZpbGUodm9pZCogYnVmZmVyLCBzaXplX3QpOwotCiBjbGFz
cyBNYXBwZWRGaWxlRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CkBAIC0yMjcsMTMgKzIyNSwyMSBAQCBwdWJsaWM6CiAgICAgY29uc3Qgdm9pZCogZGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fZmlsZURhdGE7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9maWxlU2l6ZTsgfQogCisjaWYgIU9TKFdJTkRPV1MpCiAgICAgdm9pZCogbGVha0hh
bmRsZSgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9maWxlRGF0YSwgbnVsbHB0cik7IH0KKyNl
bmRpZgorI2lmIE9TKFdJTkRPV1MpCisgICAgSEFORExFIGZpbGVNYXBwaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9maWxlTWFwcGluZzsgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIGJvb2wgbWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIEZpbGVPcGVu
TW9kZSwgTWFwcGVkRmlsZU1vZGUpOwogCiAgICAgdm9pZCogbV9maWxlRGF0YSB7IG51bGxwdHIg
fTsKICAgICB1bnNpZ25lZCBtX2ZpbGVTaXplIHsgMCB9OworI2lmIE9TKFdJTkRPV1MpCisgICAg
SEFORExFIG1fZmlsZU1hcHBpbmcgeyBudWxscHRyIH07CisjZW5kaWYKIH07CiAKIGlubGluZSBN
YXBwZWRGaWxlRGF0YTo6TWFwcGVkRmlsZURhdGEoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwg
TWFwcGVkRmlsZU1vZGUgbWFwTW9kZSwgYm9vbCYgc3VjY2VzcykKQEAgLTI0OSw2ICsyNTUsOSBA
QCBpbmxpbmUgTWFwcGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUsIEZpbGVPcGVuTW9kZSBvcAogaW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRG
aWxlRGF0YShNYXBwZWRGaWxlRGF0YSYmIG90aGVyKQogICAgIDogbV9maWxlRGF0YShzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1fZmlsZURhdGEsIG51bGxwdHIpKQogICAgICwgbV9maWxlU2l6ZShzdGQ6
OmV4Y2hhbmdlKG90aGVyLm1fZmlsZVNpemUsIDApKQorI2lmIE9TKFdJTkRPV1MpCisgICAgLCBt
X2ZpbGVNYXBwaW5nKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlTWFwcGluZywgbnVsbHB0cikp
CisjZW5kaWYKIHsKIH0KIApAQCAtMjU2LDYgKzI2NSw5IEBAIGlubGluZSBNYXBwZWRGaWxlRGF0
YSYgTWFwcGVkRmlsZURhdGE6Om9wZXJhdG9yPShNYXBwZWRGaWxlRGF0YSYmIG90aGVyKQogewog
ICAgIG1fZmlsZURhdGEgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZURhdGEsIG51bGxwdHIp
OwogICAgIG1fZmlsZVNpemUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZVNpemUsIDApOwor
I2lmIE9TKFdJTkRPV1MpCisgICAgbV9maWxlTWFwcGluZyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIu
bV9maWxlTWFwcGluZywgbnVsbHB0cik7CisjZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCAzNzZhMzJjNzM0M2EwNzliNDhh
MzkwNzIzYWFkNzY0NWI5NjRiYTVlLi40N2UyMWViYzdlNGRhNjM0YTQxNDk4MjQ4NjY5MGMyMjk0
ODY0Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zNjMsOSArMzYz
LDEyIEBAIFN0cmluZyBjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoKQogICAgIH0pOwogfQogCi1i
b29sIHVubWFwVmlld09mRmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCkKK01hcHBlZEZpbGVEYXRh
Ojp+TWFwcGVkRmlsZURhdGEoKQogewotICAgIHJldHVybiBVbm1hcFZpZXdPZkZpbGUoYnVmZmVy
KTsKKyAgICBpZiAobV9maWxlRGF0YSkKKyAgICAgICAgVW5tYXBWaWV3T2ZGaWxlKG1fZmlsZURh
dGEpOworICAgIGlmIChtX2ZpbGVNYXBwaW5nKQorICAgICAgICBDbG9zZUhhbmRsZShtX2ZpbGVN
YXBwaW5nKTsKIH0KIAogYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3Blbk1vZGUsIE1hcHBlZEZpbGVNb2Rl
KQpAQCAtMzk5LDEyICs0MDIsMTEgQEAgYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRs
ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3Blbk0KICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgYXV0byBtYXBwaW5nID0gQ3JlYXRlRmlsZU1hcHBpbmcoaGFu
ZGxlLCBudWxscHRyLCBwYWdlUHJvdGVjdGlvbiwgMCwgMCwgbnVsbHB0cik7Ci0gICAgaWYgKCFt
YXBwaW5nKQorICAgIG1fZmlsZU1hcHBpbmcgPSBDcmVhdGVGaWxlTWFwcGluZyhoYW5kbGUsIG51
bGxwdHIsIHBhZ2VQcm90ZWN0aW9uLCAwLCAwLCBudWxscHRyKTsKKyAgICBpZiAoIW1fZmlsZU1h
cHBpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3
T2ZGaWxlKG1hcHBpbmcsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKLSAgICBDbG9zZUhh
bmRsZShtYXBwaW5nKTsKKyAgICBtX2ZpbGVEYXRhID0gTWFwVmlld09mRmlsZShtX2ZpbGVNYXBw
aW5nLCBkZXNpcmVkQWNjZXNzLCAwLCAwLCAqc2l6ZSk7CiAgICAgaWYgKCFtX2ZpbGVEYXRhKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgbV9maWxlU2l6ZSA9ICpzaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggNzZhMmYyZTM1
MTU0ZmViYjBhODE2YjljMjA1ZjhlYjBkMmM2ZjRhZi4uODZmNzcyMGI4M2ViMDNlMTE4Y2VlZDZm
MjM0MThiOGIyNjVkZjQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC05MDQsNyArOTA0LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
Q2FsbGJhY2s6OnRpbWVyRmlyZWQoKQogICAgIG1fcmVzb3VyY2UuZGlkQWRkQ2xpZW50KG1fY2xp
ZW50KTsKIH0KIAotI2lmIFVTRShGT1VOREFUSU9OKSB8fCBVU0UoU09VUCkKKyNpZiBFTkFCTEUo
U0hBUkVBQkxFX1JFU09VUkNFKQogCiB2b2lkIENhY2hlZFJlc291cmNlOjp0cnlSZXBsYWNlRW5j
b2RlZERhdGEoU2hhcmVkQnVmZmVyJiBuZXdCdWZmZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDMwZmYzMTAxMDAyM2NiMjI0NmFmYjE0
OTZkNzBlZDFkNGI1ZDdhMzUuLjk3ZTZhZDk0YzQxNzEwZTM4NWYxZGEyYTEzODAwZmJlMzkxN2Jh
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBA
IC0yODEsNyArMjgxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRh
KHVuc2lnbmVkIGxvbmcgbG9uZyAvKiBieXRlc1NlbnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAv
KiB0b3RhbEJ5dGVzVG9CZVNlbnQgKi8pIHsgfQogCi0jaWYgVVNFKEZPVU5EQVRJT04pIHx8IFVT
RShTT1VQKQorI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB0cnlSZXBsYWNlRW5jb2RlZERhdGEoU2hhcmVkQnVmZmVyJik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVEYXRhQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZURhdGFDdXJsLmNwcAppbmRleCA4YmVhODg5M2FiYWE3ODE5N2U2NTg1NmYyNDU1NWY3
YWZkZjU3ODA1Li41YjA4YjA0ZDllZTYyZjI3YWJmY2U1ZmM1YjJjZTE0N2RjZjhmNTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURh
dGFDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZURhdGFDdXJsLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIKIAorI2luY2x1ZGUgIlNoYXJlZE1lbW9y
eS5oIgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogCkBA
IC0xMDUsNSArMTA3LDIwIEBAIERhdGEgRGF0YTo6YWRvcHRNYXAoRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGEmJiBtYXBwZWRGaWxlLCBGaWxlU3lzdGVtOjpQbGF0Zm9yCiAgICAgcmV0dXJuIHsg
V1RGTW92ZShtYXBwZWRGaWxlKSB9OwogfQogCisjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJD
RSkgJiYgT1MoV0lORE9XUykKK1JlZlB0cjxTaGFyZWRNZW1vcnk+IERhdGE6OnRyeUNyZWF0ZVNo
YXJlZE1lbW9yeSgpIGNvbnN0Cit7CisgICAgaWYgKGlzTnVsbCgpIHx8ICFpc01hcCgpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEhBTkRMRSBoYW5kbGUgPSBXVEY6OmdldDxGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YT4oKm1fYnVmZmVyKS5maWxlTWFwcGluZygpOworICAgIEhB
TkRMRSBuZXdIYW5kbGU7CisgICAgaWYgKCFEdXBsaWNhdGVIYW5kbGUoR2V0Q3VycmVudFByb2Nl
c3MoKSwgaGFuZGxlLCBHZXRDdXJyZW50UHJvY2VzcygpLCAmbmV3SGFuZGxlLCAwLCBmYWxzZSwg
RFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gU2hhcmVkTWVtb3J5OjphZG9wdChuZXdIYW5kbGUsIG1fc2l6ZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgTmV0
d29ya0NhY2hlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zV2luLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKaW5kZXgg
MWVjZmQyMWU0NDcwM2IyZDYxYWZmNTQ5NDQxNGQzMzg3OGYwY2ZjZC4uYWUyYWI0ZDEwMzY3ZGJm
NmJjMzhmOWEwMjQ2Y2FiMjQ4NWI2ZmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNXaW4uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKQEAgLTY2LDYg
KzY2LDcgQEAgaWYgKCR7V1RGX1BMQVRGT1JNX1dJTl9DQUlST30pCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiBQUklWQVRFIE9OKQog
ICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBIFBVQkxJQyBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCBQUklWQVRFIE9OKQorICAgIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgUFJJVkFURSBP
TikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVVNFUl9NRVNT
QUdFX0hBTkRMRVJTIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCR0wyIFBVQkxJQyBPTikKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCA0ZWFkMWM1MDVjNzk5ZDg0YmNlYWY3MDExZGIwMTM0NDhmYmJm
NmYxLi41M2ZkZDY5ZTE2OGE0ZGMzZjAwZTBhM2Q0MDI1NjgwN2I1ZGQ3MWY1IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDYtMjEg
IEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dp
bkNhaXJvXSBUdXJuIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0Ugb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzAxMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
aW4uY21ha2U6IFR1cm5lZCBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIG9uIGZvciBXaW5DYWly
byBwb3J0LgorCiAyMDIxLTA2LTE4ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIElnbm9yZSBjbGFuZ2QncyBkaXJlY3Rvcnkgd2l0aCBpbmRleCBm
aWxlcwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>