<?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>200278</bug_id>
          
          <creation_ts>2019-07-30 12:46:40 -0700</creation_ts>
          <short_desc>[JSC] Less contended MetaAllocator</short_desc>
          <delta_ts>2019-08-14 13:34:20 -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>New Bugs</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>
          
          
          <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>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</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>1557044</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-30 12:46:40 -0700</bug_when>
    <thetext>[JSC] Lock contention at MetaAllocator::currentStatistics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557045</commentid>
    <comment_count>1</comment_count>
      <attachid>375170</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-30 12:46:57 -0700</bug_when>
    <thetext>Created attachment 375170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557158</commentid>
    <comment_count>2</comment_count>
      <attachid>375199</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-30 17:53:26 -0700</bug_when>
    <thetext>Created attachment 375199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557160</commentid>
    <comment_count>3</comment_count>
      <attachid>375200</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-30 18:05:30 -0700</bug_when>
    <thetext>Created attachment 375200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557178</commentid>
    <comment_count>4</comment_count>
      <attachid>375204</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-30 20:01:45 -0700</bug_when>
    <thetext>Created attachment 375204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557400</commentid>
    <comment_count>5</comment_count>
      <attachid>375254</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-31 14:58:10 -0700</bug_when>
    <thetext>Created attachment 375254
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557409</commentid>
    <comment_count>6</comment_count>
      <attachid>375260</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-31 15:21:18 -0700</bug_when>
    <thetext>Created attachment 375260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557464</commentid>
    <comment_count>7</comment_count>
      <attachid>375260</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-31 17:43:30 -0700</bug_when>
    <thetext>Comment on attachment 375260
Patch

Attachment 375260 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12843816

New failing tests:
mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-baseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561164</commentid>
    <comment_count>8</comment_count>
      <attachid>375260</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-14 08:46:40 -0700</bug_when>
    <thetext>Comment on attachment 375260
Patch

Nice work.  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561268</commentid>
    <comment_count>9</comment_count>
      <attachid>375260</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-14 12:07:41 -0700</bug_when>
    <thetext>Comment on attachment 375260
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561313</commentid>
    <comment_count>10</comment_count>
      <attachid>375260</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-14 13:33:20 -0700</bug_when>
    <thetext>Comment on attachment 375260
Patch

Clearing flags on attachment: 375260

Committed r248687: &lt;https://trac.webkit.org/changeset/248687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561314</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-14 13:33:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561315</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-14 13:34:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54316510&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375170</attachid>
            <date>2019-07-30 12:46:57 -0700</date>
            <delta_ts>2019-07-30 17:53:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190730124656.patch</filename>
            <type>text/plain</type>
            <size>3861</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NWZkMzE4MWI4MjcxZWNjNjYxMjczZmNmYWEyNzdkYzU2MGI2NmMzLi4yZDdiNDE0NDJlMzllYzA5
OTllYzFjYTAyOTMyNWJmOGQxNzIyOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wNy0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExvY2sgY29udGVudGlvbiBhdCBNZXRhQWxsb2NhdG9yOjpjdXJy
ZW50U3RhdGlzdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OkZpeGVk
Vk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9y
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3Vy
ZSk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVs
dGlwbGllcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKToK
KwogMjAxOS0wNy0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtKU0NdIEluY3JlbWVudCBieXRlY29kZSBhZ2Ugb25seSB3aGVuIFNsb3RWaXNpdG9yIGlz
IGZpcnN0LXZpc2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcAppbmRleCBiMTFkZTVlMmMxMGEzNGFlOWFjY2I2NmRkODBkMjVmNzMxMjYw
YWM0Li40ZmNjNTdkMTIwN2U1NzJiZmQyNDU5ZTM4M2YxZjI4MmY3MzI3MWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAgLTIw
OCw2ICsyMDgsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJs
aWMgTWV0YUFsbG9jYXRvciB7CiAKICAgICAgICAgICAgIGFkZEZyZXNoRnJlZVNwYWNlKHJlc2Vy
dmF0aW9uQmFzZSwgcmVzZXJ2YXRpb25TaXplKTsKIAorICAgICAgICAgICAgLy8gQW5kIGFmdGVy
IHRoYXQsIHRoaXMgaXMgbmV2ZXIgY2hhbmdlZC4KKyAgICAgICAgICAgIEFTU0VSVChieXRlc1Jl
c2VydmVkKCkgPT0gcmVzZXJ2YXRpb25TaXplKTsKKwogICAgICAgICAgICAgdm9pZCogcmVzZXJ2
YXRpb25FbmQgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihyZXNlcnZhdGlvbkJhc2UpICsg
cmVzZXJ2YXRpb25TaXplOwogCiAgICAgICAgICAgICBtX21lbW9yeVN0YXJ0ID0gTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KHRhZ0NvZGVQdHI8RXhlY3V0YWJs
ZU1lbW9yeVB0clRhZz4ocmVzZXJ2YXRpb25CYXNlKSk7CkBAIC00MzEsMTkgKzQzNCwxNyBAQCBi
b29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKQogewogICAgIGlm
ICghYWxsb2NhdG9yKQogICAgICAgICByZXR1cm4gQmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgp
OwotICAgIE1ldGFBbGxvY2F0b3I6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcyA9IGFsbG9jYXRvci0+
Y3VycmVudFN0YXRpc3RpY3MoKTsKLSAgICByZXR1cm4gc3RhdGlzdGljcy5ieXRlc0FsbG9jYXRl
ZCA+IHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCAvIDI7CisgICAgcmV0dXJuIGFsbG9jYXRvci0+
Ynl0ZXNBbGxvY2F0ZWQoKSA+IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpIC8gMjsKIH0KIAog
ZG91YmxlIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihzaXpl
X3QgYWRkZWRNZW1vcnlVc2FnZSkKIHsKICAgICBpZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0
dXJuIEJhc2U6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihhZGRlZE1lbW9yeVVzYWdlKTsKLSAg
ICBNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBhbGxvY2F0b3ItPmN1cnJl
bnRTdGF0aXN0aWNzKCk7Ci0gICAgQVNTRVJUKHN0YXRpc3RpY3MuYnl0ZXNBbGxvY2F0ZWQgPD0g
c3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkKTsKLSAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBz
dGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkICsgYWRkZWRNZW1vcnlVc2FnZTsKKyAgICBBU1NFUlQo
YWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpIDw9IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgp
KTsKKyAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVk
KCkgKyBhZGRlZE1lbW9yeVVzYWdlOwogICAgIHNpemVfdCBieXRlc0F2YWlsYWJsZSA9IHN0YXRp
Y19jYXN0PHNpemVfdD4oCi0gICAgICAgIHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCAqICgxIC0g
ZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgICAgIGFsbG9jYXRvci0+
Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24p
KTsKICAgICBpZiAoYnl0ZXNBbGxvY2F0ZWQgPj0gYnl0ZXNBdmFpbGFibGUpCiAgICAgICAgIGJ5
dGVzQWxsb2NhdGVkID0gYnl0ZXNBdmFpbGFibGU7CiAgICAgZG91YmxlIHJlc3VsdCA9IDEuMDsK
QEAgLTQ3NSwxMCArNDc2LDkgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1
dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNpemVfdCBzaXplSW5CeXRlcywKIAogICAgIGlmIChl
ZmZvcnQgPT0gSklUQ29tcGlsYXRpb25DYW5GYWlsKSB7CiAgICAgICAgIC8vIERvbid0IGFsbG93
IGFsbG9jYXRpb25zIGlmIHdlIGFyZSBkb3duIHRvIHJlc2VydmUuCi0gICAgICAgIE1ldGFBbGxv
Y2F0b3I6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcyA9IGFsbG9jYXRvci0+Y3VycmVudFN0YXRpc3Rp
Y3MoKTsKLSAgICAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0gc3RhdGlzdGljcy5ieXRlc0Fs
bG9jYXRlZCArIHNpemVJbkJ5dGVzOworICAgICAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBh
bGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBzaXplSW5CeXRlczsKICAgICAgICAgc2l6ZV90
IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8c2l6ZV90PigKLSAgICAgICAgICAgIHN0YXRp
c3RpY3MuYnl0ZXNSZXNlcnZlZCAqICgxIC0gZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0
aW9uKSk7CisgICAgICAgICAgICBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhl
Y3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CiAgICAgICAgIGlmIChieXRlc0FsbG9j
YXRlZCA+IGJ5dGVzQXZhaWxhYmxlKSB7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6bG9nRXhl
Y3V0YWJsZUFsbG9jYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJBbGxvY2F0aW9u
IGZhaWxlZCBiZWNhdXNlIGJ5dGVzIGFsbG9jYXRlZCAiLCBieXRlc0FsbG9jYXRlZCwgICIgPiAi
LCBieXRlc0F2YWlsYWJsZSwgIiBieXRlcyBhdmFpbGFibGUuXG4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375199</attachid>
            <date>2019-07-30 17:53:26 -0700</date>
            <delta_ts>2019-07-30 18:05:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190730175325.patch</filename>
            <type>text/plain</type>
            <size>7490</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NWZkMzE4MWI4MjcxZWNjNjYxMjczZmNmYWEyNzdkYzU2MGI2NmMzLi5lYjI2NGRjYWVjNTQ5YmNm
MmY2NThlYjdlZjY1YzQ3M2FlZTEyMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wNy0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUpOgorICAgICAgICAoSlNDOjpFeGVj
dXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIpOgorICAgICAgICAoSlND
OjpFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisKIDIwMTktMDctMjkgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbmNyZW1lbnQgYnl0
ZWNvZGUgYWdlIG9ubHkgd2hlbiBTbG90VmlzaXRvciBpcyBmaXJzdC12aXNpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAzNmRk
NGIzYTFhZDYyOWQyZTQxOGVhZDM5YmNjNzg5MjEwMjYyMjg4Li5jMGMxMmJkNDJmZTEwODBjZTMw
Mjg2ZGVmOTAyOGE4M2IwOWZmZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA3LTMwICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gTGVzcyBj
b250ZW5kZWQgTWV0YUFsbG9jYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgIChXVEY6Ok1l
dGFBbGxvY2F0b3I6OmRlY3JlbWVudFBhZ2VPY2N1cGFuY3kpOgorICAgICAgICAqIHd0Zi9NZXRh
QWxsb2NhdG9yLmg6CisKIDIwMTktMDctMzAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFy
b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBDUkFTSF9XSVRIX0lORk8oKSBzbyB0aGF0IGl0
IGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdW51c2VkIHBhcmFtZXRlcnMgb24gbm9uIENsYW5nIC8g
TVNWQyBjb21waWxlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcAppbmRleCBiMTFkZTVlMmMxMGEzNGFlOWFjY2I2NmRkODBkMjVmNzMx
MjYwYWM0Li41NzNjOGRlNjczNjM4Y2NiOTE5MjRlZWJhOWZjZjZjOTNlZDJmMDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAg
LTIwOCw2ICsyMDgsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBw
dWJsaWMgTWV0YUFsbG9jYXRvciB7CiAKICAgICAgICAgICAgIGFkZEZyZXNoRnJlZVNwYWNlKHJl
c2VydmF0aW9uQmFzZSwgcmVzZXJ2YXRpb25TaXplKTsKIAorICAgICAgICAgICAgLy8gQW5kIGFm
dGVyIHRoYXQsIHRoaXMgaXMgbmV2ZXIgY2hhbmdlZC4KKyAgICAgICAgICAgIEFTU0VSVChieXRl
c1Jlc2VydmVkKCkgPT0gcmVzZXJ2YXRpb25TaXplKTsKKwogICAgICAgICAgICAgdm9pZCogcmVz
ZXJ2YXRpb25FbmQgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihyZXNlcnZhdGlvbkJhc2Up
ICsgcmVzZXJ2YXRpb25TaXplOwogCiAgICAgICAgICAgICBtX21lbW9yeVN0YXJ0ID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KHRhZ0NvZGVQdHI8RXhlY3V0
YWJsZU1lbW9yeVB0clRhZz4ocmVzZXJ2YXRpb25CYXNlKSk7CkBAIC0yMzcsMTEgKzI0MCwxMSBA
QCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9j
YXRvciB7CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCog
cGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwgdW5z
aWduZWQgY291bnQpIG92ZXJyaWRlCiAgICAgewogI2lmIFVTRShNQURWX0ZSRUVfRk9SX0pJVF9N
RU1PUlkpCiAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSBtYWR2
aXNlKHBhZ2UsIHBhZ2VTaXplKCksIE1BRFZfRlJFRSk7CisgICAgICAgICAgICBpbnQgcmVzdWx0
ID0gbWFkdmlzZShwYWdlLCBwYWdlU2l6ZSgpICogY291bnQsIE1BRFZfRlJFRSk7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBB
U1NFUlQocmVzdWx0ID09IC0xKTsKQEAgLTI1MSw3ICsyNTQsNyBAQCBjbGFzcyBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICNlbHNlCi0gICAgICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocGFn
ZSwgcGFnZVNpemUoKSk7CisgICAgICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocGFnZSwgcGFn
ZVNpemUoKSAqIGNvdW50KTsKICNlbmRpZgogICAgIH0KIApAQCAtNDMxLDE5ICs0MzQsMTcgQEAg
Ym9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKCkKIHsKICAgICBp
ZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIEJhc2U6OnVuZGVyTWVtb3J5UHJlc3N1cmUo
KTsKLSAgICBNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBhbGxvY2F0b3It
PmN1cnJlbnRTdGF0aXN0aWNzKCk7Ci0gICAgcmV0dXJuIHN0YXRpc3RpY3MuYnl0ZXNBbGxvY2F0
ZWQgPiBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgLyAyOworICAgIHJldHVybiBhbGxvY2F0b3It
PmJ5dGVzQWxsb2NhdGVkKCkgPiBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAvIDI7CiB9CiAK
IGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6
ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJl
dHVybiBCYXNlOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7Ci0g
ICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxsb2NhdG9yLT5jdXJy
ZW50U3RhdGlzdGljcygpOwotICAgIEFTU0VSVChzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkIDw9
IHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCk7Ci0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0g
c3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCArIGFkZGVkTWVtb3J5VXNhZ2U7CisgICAgQVNTRVJU
KGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA8PSBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQo
KSk7CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRl
ZCgpICsgYWRkZWRNZW1vcnlVc2FnZTsKICAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0
aWNfY2FzdDxzaXplX3Q+KAotICAgICAgICBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgKiAoMSAt
IGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOworICAgICAgICBhbGxvY2F0b3It
PmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9u
KSk7CiAgICAgaWYgKGJ5dGVzQWxsb2NhdGVkID49IGJ5dGVzQXZhaWxhYmxlKQogICAgICAgICBi
eXRlc0FsbG9jYXRlZCA9IGJ5dGVzQXZhaWxhYmxlOwogICAgIGRvdWJsZSByZXN1bHQgPSAxLjA7
CkBAIC00NzUsMTAgKzQ3Niw5IEBAIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVj
dXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMsCiAKICAgICBpZiAo
ZWZmb3J0ID09IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCkgewogICAgICAgICAvLyBEb24ndCBhbGxv
dyBhbGxvY2F0aW9ucyBpZiB3ZSBhcmUgZG93biB0byByZXNlcnZlLgotICAgICAgICBNZXRhQWxs
b2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBhbGxvY2F0b3ItPmN1cnJlbnRTdGF0aXN0
aWNzKCk7Ci0gICAgICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9IHN0YXRpc3RpY3MuYnl0ZXNB
bGxvY2F0ZWQgKyBzaXplSW5CeXRlczsKKyAgICAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0g
YWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgc2l6ZUluQnl0ZXM7CiAgICAgICAgIHNpemVf
dCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oCi0gICAgICAgICAgICBzdGF0
aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgKiAoMSAtIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFj
dGlvbikpOworICAgICAgICAgICAgYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4
ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOwogICAgICAgICBpZiAoYnl0ZXNBbGxv
Y2F0ZWQgPiBieXRlc0F2YWlsYWJsZSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0V4
ZWN1dGFibGVBbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsb2NhdGlv
biBmYWlsZWQgYmVjYXVzZSBieXRlcyBhbGxvY2F0ZWQgIiwgYnl0ZXNBbGxvY2F0ZWQsICAiID4g
IiwgYnl0ZXNBdmFpbGFibGUsICIgYnl0ZXMgYXZhaWxhYmxlLlxuIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxv
Y2F0b3IuY3BwCmluZGV4IGMzYjY5Mzc4MjhjNTdmNTViNjRmYmUzNDllNWU1Y2M3Yjc3OTZjOTQu
LjUwMjViZjdlOGYzZWQ4ODBhYmQ1NzU1MTBhZmZhNDU1NmQ1ZTZkZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFB
bGxvY2F0b3IuY3BwCkBAIC00MTMsNiArNDEzLDE2IEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6ZGVj
cmVtZW50UGFnZU9jY3VwYW5jeSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiB7
CiAgICAgdWludHB0cl90IGZpcnN0UGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihh
ZGRyZXNzKSA+PiBtX2xvZ1BhZ2VTaXplOwogICAgIHVpbnRwdHJfdCBsYXN0UGFnZSA9IChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcykgKyBzaXplSW5CeXRlcyAtIDEpID4+IG1f
bG9nUGFnZVNpemU7CisKKyAgICB1aW50cHRyX3QgY3VycmVudFBhZ2VTdGFydCA9IDA7CisgICAg
c2l6ZV90IGNvdW50ID0gMDsKKyAgICBhdXRvIGZsdXNoRnJlZVBhZ2VzID0gWyZdIHsKKyAgICAg
ICAgaWYgKCFjdXJyZW50UGFnZVN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBu
b3RpZnlQYWdlSXNGcmVlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN1cnJlbnRQYWdlU3RhcnQg
PDwgbV9sb2dQYWdlU2l6ZSksIGNvdW50KTsKKyAgICAgICAgY3VycmVudFBhZ2VTdGFydCA9IDA7
CisgICAgICAgIGNvdW50ID0gMDsKKyAgICB9OwogICAgIAogICAgIGZvciAodWludHB0cl90IHBh
Z2UgPSBmaXJzdFBhZ2U7IHBhZ2UgPD0gbGFzdFBhZ2U7ICsrcGFnZSkgewogICAgICAgICBIYXNo
TWFwPHVpbnRwdHJfdCwgc2l6ZV90Pjo6aXRlcmF0b3IgaXRlciA9IG1fcGFnZU9jY3VwYW5jeU1h
cC5maW5kKHBhZ2UpOwpAQCAtNDIwLDkgKzQzMCwxNCBAQCB2b2lkIE1ldGFBbGxvY2F0b3I6OmRl
Y3JlbWVudFBhZ2VPY2N1cGFuY3kodm9pZCogYWRkcmVzcywgc2l6ZV90IHNpemVJbkJ5dGVzKQog
ICAgICAgICBpZiAoIS0tKGl0ZXItPnZhbHVlKSkgewogICAgICAgICAgICAgbV9wYWdlT2NjdXBh
bmN5TWFwLnJlbW92ZShpdGVyKTsKICAgICAgICAgICAgIG1fYnl0ZXNDb21taXR0ZWQgLT0gbV9w
YWdlU2l6ZTsKLSAgICAgICAgICAgIG5vdGlmeVBhZ2VJc0ZyZWUocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4ocGFnZSA8PCBtX2xvZ1BhZ2VTaXplKSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIGlm
ICghY3VycmVudFBhZ2VTdGFydCkKKyAgICAgICAgICAgICAgICBjdXJyZW50UGFnZVN0YXJ0ID0g
cGFnZTsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Zmx1c2hGcmVlUGFnZXMoKTsKICAgICB9CisKKyAgICBmbHVzaEZyZWVQYWdlcygpOwogfQogCiBi
b29sIE1ldGFBbGxvY2F0b3I6OmlzSW5BbGxvY2F0ZWRNZW1vcnkoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImLCB2b2lkKiBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9j
YXRvci5oIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmluZGV4IGQ4OWE0NTA2ZjM0
ODNiNzU0ZjIxOTBhNDg0OWE0ZDdiMmVhM2QwYWEuLjViNTgyYjE3ZGQ5OGMzNjAxZTY4NDk0NjI2
ZWI2MmUxYmE3NTYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTExNiw3ICsxMTYsNyBA
QCBjbGFzcyBNZXRhQWxsb2NhdG9yIHsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZFBhZ2Uo
dm9pZCogcGFnZSkgPSAwOwogICAgIAogICAgIC8vIFVuY29tbWl0IGEgcGFnZS4KLSAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKiBwYWdlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwgdW5zaWduZWQpID0gMDsKICAgICAKICAg
ICAvLyBOT1RFOiBub25lIG9mIHRoZSBhYm92ZSBtZXRob2RzIGFyZSBjYWxsZWQgZHVyaW5nIGFs
bG9jYXRvcgogICAgIC8vIGRlc3RydWN0aW9uLCBpbiBwYXJ0IGJlY2F1c2UgYSBNZXRhQWxsb2Nh
dG9yIGNhbm5vdCBkaWUgc28gbG9uZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375200</attachid>
            <date>2019-07-30 18:05:30 -0700</date>
            <delta_ts>2019-07-30 20:01:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190730180530.patch</filename>
            <type>text/plain</type>
            <size>9699</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NWZkMzE4MWI4MjcxZWNjNjYxMjczZmNmYWEyNzdkYzU2MGI2NmMzLi5lYjI2NGRjYWVjNTQ5YmNm
MmY2NThlYjdlZjY1YzQ3M2FlZTEyMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wNy0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUpOgorICAgICAgICAoSlNDOjpFeGVj
dXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIpOgorICAgICAgICAoSlND
OjpFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisKIDIwMTktMDctMjkgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbmNyZW1lbnQgYnl0
ZWNvZGUgYWdlIG9ubHkgd2hlbiBTbG90VmlzaXRvciBpcyBmaXJzdC12aXNpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAzNmRk
NGIzYTFhZDYyOWQyZTQxOGVhZDM5YmNjNzg5MjEwMjYyMjg4Li5jMGMxMmJkNDJmZTEwODBjZTMw
Mjg2ZGVmOTAyOGE4M2IwOWZmZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA3LTMwICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gTGVzcyBj
b250ZW5kZWQgTWV0YUFsbG9jYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgIChXVEY6Ok1l
dGFBbGxvY2F0b3I6OmRlY3JlbWVudFBhZ2VPY2N1cGFuY3kpOgorICAgICAgICAqIHd0Zi9NZXRh
QWxsb2NhdG9yLmg6CisKIDIwMTktMDctMzAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFy
b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBDUkFTSF9XSVRIX0lORk8oKSBzbyB0aGF0IGl0
IGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdW51c2VkIHBhcmFtZXRlcnMgb24gbm9uIENsYW5nIC8g
TVNWQyBjb21waWxlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcAppbmRleCBiMTFkZTVlMmMxMGEzNGFlOWFjY2I2NmRkODBkMjVmNzMx
MjYwYWM0Li41NzNjOGRlNjczNjM4Y2NiOTE5MjRlZWJhOWZjZjZjOTNlZDJmMDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAg
LTIwOCw2ICsyMDgsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBw
dWJsaWMgTWV0YUFsbG9jYXRvciB7CiAKICAgICAgICAgICAgIGFkZEZyZXNoRnJlZVNwYWNlKHJl
c2VydmF0aW9uQmFzZSwgcmVzZXJ2YXRpb25TaXplKTsKIAorICAgICAgICAgICAgLy8gQW5kIGFm
dGVyIHRoYXQsIHRoaXMgaXMgbmV2ZXIgY2hhbmdlZC4KKyAgICAgICAgICAgIEFTU0VSVChieXRl
c1Jlc2VydmVkKCkgPT0gcmVzZXJ2YXRpb25TaXplKTsKKwogICAgICAgICAgICAgdm9pZCogcmVz
ZXJ2YXRpb25FbmQgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihyZXNlcnZhdGlvbkJhc2Up
ICsgcmVzZXJ2YXRpb25TaXplOwogCiAgICAgICAgICAgICBtX21lbW9yeVN0YXJ0ID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KHRhZ0NvZGVQdHI8RXhlY3V0
YWJsZU1lbW9yeVB0clRhZz4ocmVzZXJ2YXRpb25CYXNlKSk7CkBAIC0yMzcsMTEgKzI0MCwxMSBA
QCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9j
YXRvciB7CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCog
cGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwgdW5z
aWduZWQgY291bnQpIG92ZXJyaWRlCiAgICAgewogI2lmIFVTRShNQURWX0ZSRUVfRk9SX0pJVF9N
RU1PUlkpCiAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSBtYWR2
aXNlKHBhZ2UsIHBhZ2VTaXplKCksIE1BRFZfRlJFRSk7CisgICAgICAgICAgICBpbnQgcmVzdWx0
ID0gbWFkdmlzZShwYWdlLCBwYWdlU2l6ZSgpICogY291bnQsIE1BRFZfRlJFRSk7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBB
U1NFUlQocmVzdWx0ID09IC0xKTsKQEAgLTI1MSw3ICsyNTQsNyBAQCBjbGFzcyBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICNlbHNlCi0gICAgICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocGFn
ZSwgcGFnZVNpemUoKSk7CisgICAgICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocGFnZSwgcGFn
ZVNpemUoKSAqIGNvdW50KTsKICNlbmRpZgogICAgIH0KIApAQCAtNDMxLDE5ICs0MzQsMTcgQEAg
Ym9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKCkKIHsKICAgICBp
ZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIEJhc2U6OnVuZGVyTWVtb3J5UHJlc3N1cmUo
KTsKLSAgICBNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBhbGxvY2F0b3It
PmN1cnJlbnRTdGF0aXN0aWNzKCk7Ci0gICAgcmV0dXJuIHN0YXRpc3RpY3MuYnl0ZXNBbGxvY2F0
ZWQgPiBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgLyAyOworICAgIHJldHVybiBhbGxvY2F0b3It
PmJ5dGVzQWxsb2NhdGVkKCkgPiBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAvIDI7CiB9CiAK
IGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6
ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJl
dHVybiBCYXNlOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7Ci0g
ICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxsb2NhdG9yLT5jdXJy
ZW50U3RhdGlzdGljcygpOwotICAgIEFTU0VSVChzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkIDw9
IHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCk7Ci0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0g
c3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCArIGFkZGVkTWVtb3J5VXNhZ2U7CisgICAgQVNTRVJU
KGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA8PSBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQo
KSk7CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRl
ZCgpICsgYWRkZWRNZW1vcnlVc2FnZTsKICAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0
aWNfY2FzdDxzaXplX3Q+KAotICAgICAgICBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgKiAoMSAt
IGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOworICAgICAgICBhbGxvY2F0b3It
PmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9u
KSk7CiAgICAgaWYgKGJ5dGVzQWxsb2NhdGVkID49IGJ5dGVzQXZhaWxhYmxlKQogICAgICAgICBi
eXRlc0FsbG9jYXRlZCA9IGJ5dGVzQXZhaWxhYmxlOwogICAgIGRvdWJsZSByZXN1bHQgPSAxLjA7
CkBAIC00NzUsMTAgKzQ3Niw5IEBAIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVj
dXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMsCiAKICAgICBpZiAo
ZWZmb3J0ID09IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCkgewogICAgICAgICAvLyBEb24ndCBhbGxv
dyBhbGxvY2F0aW9ucyBpZiB3ZSBhcmUgZG93biB0byByZXNlcnZlLgotICAgICAgICBNZXRhQWxs
b2NhdG9yOjpTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSBhbGxvY2F0b3ItPmN1cnJlbnRTdGF0aXN0
aWNzKCk7Ci0gICAgICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9IHN0YXRpc3RpY3MuYnl0ZXNB
bGxvY2F0ZWQgKyBzaXplSW5CeXRlczsKKyAgICAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0g
YWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgc2l6ZUluQnl0ZXM7CiAgICAgICAgIHNpemVf
dCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oCi0gICAgICAgICAgICBzdGF0
aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQgKiAoMSAtIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFj
dGlvbikpOworICAgICAgICAgICAgYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4
ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOwogICAgICAgICBpZiAoYnl0ZXNBbGxv
Y2F0ZWQgPiBieXRlc0F2YWlsYWJsZSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0V4
ZWN1dGFibGVBbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsb2NhdGlv
biBmYWlsZWQgYmVjYXVzZSBieXRlcyBhbGxvY2F0ZWQgIiwgYnl0ZXNBbGxvY2F0ZWQsICAiID4g
IiwgYnl0ZXNBdmFpbGFibGUsICIgYnl0ZXMgYXZhaWxhYmxlLlxuIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxv
Y2F0b3IuY3BwCmluZGV4IGMzYjY5Mzc4MjhjNTdmNTViNjRmYmUzNDllNWU1Y2M3Yjc3OTZjOTQu
LjUwMjViZjdlOGYzZWQ4ODBhYmQ1NzU1MTBhZmZhNDU1NmQ1ZTZkZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFB
bGxvY2F0b3IuY3BwCkBAIC00MTMsNiArNDEzLDE2IEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6ZGVj
cmVtZW50UGFnZU9jY3VwYW5jeSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiB7
CiAgICAgdWludHB0cl90IGZpcnN0UGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihh
ZGRyZXNzKSA+PiBtX2xvZ1BhZ2VTaXplOwogICAgIHVpbnRwdHJfdCBsYXN0UGFnZSA9IChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcykgKyBzaXplSW5CeXRlcyAtIDEpID4+IG1f
bG9nUGFnZVNpemU7CisKKyAgICB1aW50cHRyX3QgY3VycmVudFBhZ2VTdGFydCA9IDA7CisgICAg
c2l6ZV90IGNvdW50ID0gMDsKKyAgICBhdXRvIGZsdXNoRnJlZVBhZ2VzID0gWyZdIHsKKyAgICAg
ICAgaWYgKCFjdXJyZW50UGFnZVN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBu
b3RpZnlQYWdlSXNGcmVlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN1cnJlbnRQYWdlU3RhcnQg
PDwgbV9sb2dQYWdlU2l6ZSksIGNvdW50KTsKKyAgICAgICAgY3VycmVudFBhZ2VTdGFydCA9IDA7
CisgICAgICAgIGNvdW50ID0gMDsKKyAgICB9OwogICAgIAogICAgIGZvciAodWludHB0cl90IHBh
Z2UgPSBmaXJzdFBhZ2U7IHBhZ2UgPD0gbGFzdFBhZ2U7ICsrcGFnZSkgewogICAgICAgICBIYXNo
TWFwPHVpbnRwdHJfdCwgc2l6ZV90Pjo6aXRlcmF0b3IgaXRlciA9IG1fcGFnZU9jY3VwYW5jeU1h
cC5maW5kKHBhZ2UpOwpAQCAtNDIwLDkgKzQzMCwxNCBAQCB2b2lkIE1ldGFBbGxvY2F0b3I6OmRl
Y3JlbWVudFBhZ2VPY2N1cGFuY3kodm9pZCogYWRkcmVzcywgc2l6ZV90IHNpemVJbkJ5dGVzKQog
ICAgICAgICBpZiAoIS0tKGl0ZXItPnZhbHVlKSkgewogICAgICAgICAgICAgbV9wYWdlT2NjdXBh
bmN5TWFwLnJlbW92ZShpdGVyKTsKICAgICAgICAgICAgIG1fYnl0ZXNDb21taXR0ZWQgLT0gbV9w
YWdlU2l6ZTsKLSAgICAgICAgICAgIG5vdGlmeVBhZ2VJc0ZyZWUocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4ocGFnZSA8PCBtX2xvZ1BhZ2VTaXplKSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIGlm
ICghY3VycmVudFBhZ2VTdGFydCkKKyAgICAgICAgICAgICAgICBjdXJyZW50UGFnZVN0YXJ0ID0g
cGFnZTsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Zmx1c2hGcmVlUGFnZXMoKTsKICAgICB9CisKKyAgICBmbHVzaEZyZWVQYWdlcygpOwogfQogCiBi
b29sIE1ldGFBbGxvY2F0b3I6OmlzSW5BbGxvY2F0ZWRNZW1vcnkoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImLCB2b2lkKiBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9j
YXRvci5oIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmluZGV4IGQ4OWE0NTA2ZjM0
ODNiNzU0ZjIxOTBhNDg0OWE0ZDdiMmVhM2QwYWEuLjViNTgyYjE3ZGQ5OGMzNjAxZTY4NDk0NjI2
ZWI2MmUxYmE3NTYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTExNiw3ICsxMTYsNyBA
QCBjbGFzcyBNZXRhQWxsb2NhdG9yIHsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZFBhZ2Uo
dm9pZCogcGFnZSkgPSAwOwogICAgIAogICAgIC8vIFVuY29tbWl0IGEgcGFnZS4KLSAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKiBwYWdlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwgdW5zaWduZWQpID0gMDsKICAgICAKICAg
ICAvLyBOT1RFOiBub25lIG9mIHRoZSBhYm92ZSBtZXRob2RzIGFyZSBjYWxsZWQgZHVyaW5nIGFs
bG9jYXRvcgogICAgIC8vIGRlc3RydWN0aW9uLCBpbiBwYXJ0IGJlY2F1c2UgYSBNZXRhQWxsb2Nh
dG9yIGNhbm5vdCBkaWUgc28gbG9uZwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGYwZjc1ZjNhYmI3MTBhOGZlMTg2ZjUxNmZkY2M5OTc2NTM1MTEz
MzEuLjQxZmNmNGE4NGMwMzkwMTdhYmY1Nzk2YjQzZGU5Njg1MDA1YjE5OWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOS0wNy0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0
YUFsbG9jYXRvci5jcHA6CisKIDIwMTktMDctMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlIGZvciA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMjAwMjE1PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBlZjAxYjNhMDU1ZjdjNjQyZDU1NWQ3ODY3MDEx
ZDJhZTk4ODIxNWM4Li40ZTA1OTRkMWY4MzQxZmFhZDZiZWVjMjZkZjI5ZTllYjU0N2U5YmIxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcApA
QCAtMTE0LDE0ICsxMTQsMTYgQEAgY2xhc3MgTWV0YUFsbG9jYXRvclRlc3Q6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsKICAgICAgICAgICAgIG1fcGFyZW50LT5wYWdlU3RhdGUocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KHBhZ2UpIC8gcGFnZVNpemUoKSkgPSB0cnVlOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKiBwYWdl
KQorICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKiBwYWdlLCB1bnNp
Z25lZCBjb3VudCkKICAgICAgICAgewogICAgICAgICAgICAgLy8gdGhlIHBhZ2Ugc2hvdWxkIGJl
IGZyZWUgb2Ygb2JqZWN0cyBhdCB0aGlzIHBvaW50LCBidXQgaXQgc2hvdWxkIHN0aWxsCiAgICAg
ICAgICAgICAvLyBiZSBtYXBwZWQuCi0gICAgICAgICAgICBFWFBFQ1RfVFJVRShtX3BhcmVudC0+
cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkp
KTsKLSAgICAgICAgICAgIGZvciAodWludHB0cl90IGFkZHJlc3MgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ocGFnZSk7IGFkZHJlc3MgPCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
cGFnZSkgKyBwYWdlU2l6ZSgpOyArK2FkZHJlc3MpCisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShtX3Bh
cmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VT
aXplKCkgKyBpKSk7CisgICAgICAgICAgICBmb3IgKHVpbnRwdHJfdCBhZGRyZXNzID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpOyBhZGRyZXNzIDwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHBhZ2UpICsgcGFnZVNpemUoKSAqIGNvdW50OyArK2FkZHJlc3MpCiAgICAgICAg
ICAgICAgICAgRVhQRUNUX1RSVUUoIW1fcGFyZW50LT5ieXRlU3RhdGUocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oYWRkcmVzcykpKTsKLSAgICAgICAgICAgIG1fcGFyZW50LT5wYWdlU3RhdGUocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpIC8gcGFnZVNpemUoKSkgPSBmYWxzZTsKKyAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAg
ICAgICAgIG1fcGFyZW50LT5wYWdlU3RhdGUocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBh
Z2UpIC8gcGFnZVNpemUoKSArIGkpID0gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
cHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375204</attachid>
            <date>2019-07-30 20:01:45 -0700</date>
            <delta_ts>2019-07-31 14:58:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190730200144.patch</filename>
            <type>text/plain</type>
            <size>11215</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODRiNTYzMDNkNjJkZjQ0ZWY3YzQyOTNmMzM1ZGNhMjk3ZDNmZTEyLi42NjZlZmU1M2UwZjA0MDJl
MWNkZTRmYjRiYTU3ZTYyMGFiNzlhZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNy0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1l
bW9yeVByZXNzdXJlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6
YWxsb2NhdGUpOgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6
OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5U3RhcnQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeUVuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6
aXNKSVRQQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFs
bG9jYXRvcjo6aW5pdGlhbGl6ZVNlcGFyYXRlZFdYSGVhcHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6OmppdFdyaXRlVGh1bmtHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I6OmdlbmVyaWNXcml0ZVRvSklUUmVnaW9uKTogRGVsZXRlZC4KKwogMjAxOS0wNy0zMCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEVtaXQgd3Jp
dGUgYmFycmllciBhZnRlciBzdG9yaW5nIGluc3RlYWQgb2YgYmVmb3JlIHN0b3JpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
ZjNhOTBjNjVlMjBlOTYxZDA5ZWJlMmM5MjM4MDgzYTY0NGNiMWQ1Ny4uZGZjMjFkMzkzZjFkNTg4
MTI1NzQ2MWNlZmJlMGM4ZGEwMDQ4ODlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0z
MCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIExl
c3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAoV1RG
OjpNZXRhQWxsb2NhdG9yOjppbmNyZW1lbnRQYWdlT2NjdXBhbmN5KToKKyAgICAgICAgKFdURjo6
TWV0YUFsbG9jYXRvcjo6ZGVjcmVtZW50UGFnZU9jY3VwYW5jeSk6CisgICAgICAgICogd3RmL01l
dGFBbGxvY2F0b3IuaDoKKwogMjAxOS0wNy0zMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI0MTI4OCk6IFRleHQgb24gWWFo
b28gSmFwYW4gbW9iaWxlIGxvb2tzIHRvbyBib2xkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAppbmRleCBiMTFkZTVlMmMxMGEzNGFlOWFj
Y2I2NmRkODBkMjVmNzMxMjYwYWM0Li45MzY4ZmM2NWM3NDRjYWMyZGM0NjBlMDVmMGI4ZmY1ZDUz
NDdhYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6
OnNldEpJVEVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLWNsYXNzIEZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvciA6IHB1YmxpYyBNZXRhQWxsb2NhdG9yIHsKK2NsYXNzIEZp
eGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCA6IHB1YmxpYyBNZXRhQWxsb2NhdG9y
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IoKQpAQCAtMjA4LDYgKzIwOCw5IEBAIGNsYXNzIEZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvciA6IHB1YmxpYyBNZXRhQWxsb2NhdG9yIHsKIAogICAgICAg
ICAgICAgYWRkRnJlc2hGcmVlU3BhY2UocmVzZXJ2YXRpb25CYXNlLCByZXNlcnZhdGlvblNpemUp
OwogCisgICAgICAgICAgICAvLyBBbmQgYWZ0ZXIgdGhhdCwgdGhpcyBpcyBuZXZlciBjaGFuZ2Vk
LgorICAgICAgICAgICAgQVNTRVJUKGJ5dGVzUmVzZXJ2ZWQoKSA9PSByZXNlcnZhdGlvblNpemUp
OworCiAgICAgICAgICAgICB2b2lkKiByZXNlcnZhdGlvbkVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDhfdCo+KHJlc2VydmF0aW9uQmFzZSkgKyByZXNlcnZhdGlvblNpemU7CiAKICAgICAgICAg
ICAgIG1fbWVtb3J5U3RhcnQgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8RXhlY3V0YWJsZU1lbW9y
eVB0clRhZz4odGFnQ29kZVB0cjxFeGVjdXRhYmxlTWVtb3J5UHRyVGFnPihyZXNlcnZhdGlvbkJh
c2UpKTsKQEAgLTIzNywxMSArMjQwLDExIEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFs
bG9jYXRvciA6IHB1YmxpYyBNZXRhQWxsb2NhdG9yIHsKICNlbmRpZgogICAgIH0KIAotICAgIHZv
aWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKiBwYWdlKSBvdmVycmlkZQorICAgIHZvaWQgbm90aWZ5
UGFnZUlzRnJlZSh2b2lkKiBwYWdlLCB1bnNpZ25lZCBjb3VudCkgb3ZlcnJpZGUKICAgICB7CiAj
aWYgVVNFKE1BRFZfRlJFRV9GT1JfSklUX01FTU9SWSkKICAgICAgICAgZm9yICg7OykgewotICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IG1hZHZpc2UocGFnZSwgcGFnZVNpemUoKSwgTUFEVl9GUkVF
KTsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBtYWR2aXNlKHBhZ2UsIHBhZ2VTaXplKCkgKiBj
b3VudCwgTUFEVl9GUkVFKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQgPT0gLTEpOwpAQCAtMjUxLDcg
KzI1NCw3IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciA6IHB1YmxpYyBN
ZXRhQWxsb2NhdG9yIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAg
bV9yZXNlcnZhdGlvbi5kZWNvbW1pdChwYWdlLCBwYWdlU2l6ZSgpKTsKKyAgICAgICAgbV9yZXNl
cnZhdGlvbi5kZWNvbW1pdChwYWdlLCBwYWdlU2l6ZSgpICogY291bnQpOwogI2VuZGlmCiAgICAg
fQogCkBAIC00MzEsMTkgKzQzNCwxNyBAQCBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVy
TWVtb3J5UHJlc3N1cmUoKQogewogICAgIGlmICghYWxsb2NhdG9yKQogICAgICAgICByZXR1cm4g
QmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpOwotICAgIE1ldGFBbGxvY2F0b3I6OlN0YXRpc3Rp
Y3Mgc3RhdGlzdGljcyA9IGFsbG9jYXRvci0+Y3VycmVudFN0YXRpc3RpY3MoKTsKLSAgICByZXR1
cm4gc3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCA+IHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCAv
IDI7CisgICAgcmV0dXJuIGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA+IGFsbG9jYXRvci0+
Ynl0ZXNSZXNlcnZlZCgpIC8gMjsKIH0KIAogZG91YmxlIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1l
bW9yeVByZXNzdXJlTXVsdGlwbGllcihzaXplX3QgYWRkZWRNZW1vcnlVc2FnZSkKIHsKICAgICBp
ZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIEJhc2U6Om1lbW9yeVByZXNzdXJlTXVsdGlw
bGllcihhZGRlZE1lbW9yeVVzYWdlKTsKLSAgICBNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIHN0
YXRpc3RpY3MgPSBhbGxvY2F0b3ItPmN1cnJlbnRTdGF0aXN0aWNzKCk7Ci0gICAgQVNTRVJUKHN0
YXRpc3RpY3MuYnl0ZXNBbGxvY2F0ZWQgPD0gc3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkKTsKLSAg
ICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkICsgYWRk
ZWRNZW1vcnlVc2FnZTsKKyAgICBBU1NFUlQoYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpIDw9
IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpKTsKKyAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQg
PSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1lbW9yeVVzYWdlOwogICAgIHNp
emVfdCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oCi0gICAgICAgIHN0YXRp
c3RpY3MuYnl0ZXNSZXNlcnZlZCAqICgxIC0gZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0
aW9uKSk7CisgICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVjdXRh
YmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKICAgICBpZiAoYnl0ZXNBbGxvY2F0ZWQgPj0g
Ynl0ZXNBdmFpbGFibGUpCiAgICAgICAgIGJ5dGVzQWxsb2NhdGVkID0gYnl0ZXNBdmFpbGFibGU7
CiAgICAgZG91YmxlIHJlc3VsdCA9IDEuMDsKQEAgLTQ3NSwxMCArNDc2LDkgQEAgUmVmUHRyPEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNpemVf
dCBzaXplSW5CeXRlcywKIAogICAgIGlmIChlZmZvcnQgPT0gSklUQ29tcGlsYXRpb25DYW5GYWls
KSB7CiAgICAgICAgIC8vIERvbid0IGFsbG93IGFsbG9jYXRpb25zIGlmIHdlIGFyZSBkb3duIHRv
IHJlc2VydmUuCi0gICAgICAgIE1ldGFBbGxvY2F0b3I6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcyA9
IGFsbG9jYXRvci0+Y3VycmVudFN0YXRpc3RpY3MoKTsKLSAgICAgICAgc2l6ZV90IGJ5dGVzQWxs
b2NhdGVkID0gc3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCArIHNpemVJbkJ5dGVzOworICAgICAg
ICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBz
aXplSW5CeXRlczsKICAgICAgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8
c2l6ZV90PigKLSAgICAgICAgICAgIHN0YXRpc3RpY3MuYnl0ZXNSZXNlcnZlZCAqICgxIC0gZXhl
Y3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgICAgICAgICBhbGxvY2F0b3It
PmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9u
KSk7CiAgICAgICAgIGlmIChieXRlc0FsbG9jYXRlZCA+IGJ5dGVzQXZhaWxhYmxlKSB7CiAgICAg
ICAgICAgICBpZiAoT3B0aW9uczo6bG9nRXhlY3V0YWJsZUFsbG9jYXRpb24oKSkKICAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJBbGxvY2F0aW9uIGZhaWxlZCBiZWNhdXNlIGJ5dGVzIGFsbG9jYXRl
ZCAiLCBieXRlc0FsbG9jYXRlZCwgICIgPiAiLCBieXRlc0F2YWlsYWJsZSwgIiBieXRlcyBhdmFp
bGFibGUuXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3Bw
IGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAKaW5kZXggYzNiNjkzNzgyOGM1N2Y1
NWI2NGZiZTM0OWU1ZTVjYzdiNzc5NmM5NC4uODZlZWExMmUwNDNhOTg3MTIzNzM3ZGU5ZmZkYzUz
ZWM1MTYxMDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAKQEAgLTM5OSwxMyArMzk5LDEy
IEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6aW5jcmVtZW50UGFnZU9jY3VwYW5jeSh2b2lkKiBhZGRy
ZXNzLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAgdWludHB0cl90IGxhc3RQYWdlID0gKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKSArIHNpemVJbkJ5dGVzIC0gMSkgPj4gbV9s
b2dQYWdlU2l6ZTsKICAgICAKICAgICBmb3IgKHVpbnRwdHJfdCBwYWdlID0gZmlyc3RQYWdlOyBw
YWdlIDw9IGxhc3RQYWdlOyArK3BhZ2UpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50cHRyX3QsIHNp
emVfdD46Oml0ZXJhdG9yIGl0ZXIgPSBtX3BhZ2VPY2N1cGFuY3lNYXAuZmluZChwYWdlKTsKLSAg
ICAgICAgaWYgKGl0ZXIgPT0gbV9wYWdlT2NjdXBhbmN5TWFwLmVuZCgpKSB7Ci0gICAgICAgICAg
ICBtX3BhZ2VPY2N1cGFuY3lNYXAuYWRkKHBhZ2UsIDEpOworICAgICAgICBhdXRvIHJlc3VsdCA9
IG1fcGFnZU9jY3VwYW5jeU1hcC5hZGQocGFnZSwgMSk7CisgICAgICAgIGlmIChyZXN1bHQuaXNO
ZXdFbnRyeSkgewogICAgICAgICAgICAgbV9ieXRlc0NvbW1pdHRlZCArPSBtX3BhZ2VTaXplOwog
ICAgICAgICAgICAgbm90aWZ5TmVlZFBhZ2UocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocGFnZSA8
PCBtX2xvZ1BhZ2VTaXplKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaXRlci0+dmFs
dWUrKzsKKyAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUrKzsKICAgICB9CiB9CiAK
QEAgLTQxMyw2ICs0MTIsMTYgQEAgdm9pZCBNZXRhQWxsb2NhdG9yOjpkZWNyZW1lbnRQYWdlT2Nj
dXBhbmN5KHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplSW5CeXRlcykKIHsKICAgICB1aW50cHRy
X3QgZmlyc3RQYWdlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpID4+IG1f
bG9nUGFnZVNpemU7CiAgICAgdWludHB0cl90IGxhc3RQYWdlID0gKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihhZGRyZXNzKSArIHNpemVJbkJ5dGVzIC0gMSkgPj4gbV9sb2dQYWdlU2l6ZTsK
KworICAgIHVpbnRwdHJfdCBjdXJyZW50UGFnZVN0YXJ0ID0gMDsKKyAgICBzaXplX3QgY291bnQg
PSAwOworICAgIGF1dG8gZmx1c2hGcmVlUGFnZXMgPSBbJl0geworICAgICAgICBpZiAoIWN1cnJl
bnRQYWdlU3RhcnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5vdGlmeVBhZ2VJc0Zy
ZWUocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY3VycmVudFBhZ2VTdGFydCA8PCBtX2xvZ1BhZ2VT
aXplKSwgY291bnQpOworICAgICAgICBjdXJyZW50UGFnZVN0YXJ0ID0gMDsKKyAgICAgICAgY291
bnQgPSAwOworICAgIH07CiAgICAgCiAgICAgZm9yICh1aW50cHRyX3QgcGFnZSA9IGZpcnN0UGFn
ZTsgcGFnZSA8PSBsYXN0UGFnZTsgKytwYWdlKSB7CiAgICAgICAgIEhhc2hNYXA8dWludHB0cl90
LCBzaXplX3Q+OjppdGVyYXRvciBpdGVyID0gbV9wYWdlT2NjdXBhbmN5TWFwLmZpbmQocGFnZSk7
CkBAIC00MjAsOSArNDI5LDE0IEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6ZGVjcmVtZW50UGFnZU9j
Y3VwYW5jeSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAgICAgIGlmICgh
LS0oaXRlci0+dmFsdWUpKSB7CiAgICAgICAgICAgICBtX3BhZ2VPY2N1cGFuY3lNYXAucmVtb3Zl
KGl0ZXIpOwogICAgICAgICAgICAgbV9ieXRlc0NvbW1pdHRlZCAtPSBtX3BhZ2VTaXplOwotICAg
ICAgICAgICAgbm90aWZ5UGFnZUlzRnJlZShyZWludGVycHJldF9jYXN0PHZvaWQqPihwYWdlIDw8
IG1fbG9nUGFnZVNpemUpKTsKLSAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjdXJyZW50UGFn
ZVN0YXJ0KQorICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlU3RhcnQgPSBwYWdlOworICAgICAg
ICAgICAgKytjb3VudDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmbHVzaEZyZWVQYWdl
cygpOwogICAgIH0KKworICAgIGZsdXNoRnJlZVBhZ2VzKCk7CiB9CiAKIGJvb2wgTWV0YUFsbG9j
YXRvcjo6aXNJbkFsbG9jYXRlZE1lbW9yeShjb25zdCBBYnN0cmFjdExvY2tlciYsIHZvaWQqIGFk
ZHJlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKaW5kZXggZDg5YTQ1MDZmMzQ4M2I3NTRmMjE5MGE0
ODQ5YTRkN2IyZWEzZDBhYS4uNWI1ODJiMTdkZDk4YzM2MDFlNjg0OTQ2MjZlYjYyZTFiYTc1NjFi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaApAQCAtMTE2LDcgKzExNiw3IEBAIGNsYXNzIE1ldGFB
bGxvY2F0b3IgewogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZWVkUGFnZSh2b2lkKiBwYWdlKSA9
IDA7CiAgICAgCiAgICAgLy8gVW5jb21taXQgYSBwYWdlLgotICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFn
ZUlzRnJlZSh2b2lkKiBwYWdlLCB1bnNpZ25lZCkgPSAwOwogICAgIAogICAgIC8vIE5PVEU6IG5v
bmUgb2YgdGhlIGFib3ZlIG1ldGhvZHMgYXJlIGNhbGxlZCBkdXJpbmcgYWxsb2NhdG9yCiAgICAg
Ly8gZGVzdHJ1Y3Rpb24sIGluIHBhcnQgYmVjYXVzZSBhIE1ldGFBbGxvY2F0b3IgY2Fubm90IGRp
ZSBzbyBsb25nCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggNWQ2Yjk3NTYxMWZjY2ZlMTE2ZDBmZjgyYjhjNDZmMWEzZDc5NDYzOC4uYmJiNmE5N2Y5
ZTVkZjNkMGZjYmVlZmI4M2IxYWNlMzk0OWJjMjAwYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA3LTMwICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gTGVzcyBj
b250ZW5kZWQgTWV0YUFsbG9jYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNw
cDoKKwogMjAxOS0wNy0zMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRHVtcFJlbmRlclRyZWUuYXBwOiBBZGQgQ0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJp
bmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0
b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAK
aW5kZXggZWYwMWIzYTA1NWY3YzY0MmQ1NTVkNzg2NzAxMWQyYWU5ODgyMTVjOC4uNGUwNTk0ZDFm
ODM0MWZhYWQ2YmVlYzI2ZGYyOWU5ZWI1NDdlOWJiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKQEAgLTExNCwxNCArMTE0LDE2IEBAIGNs
YXNzIE1ldGFBbGxvY2F0b3JUZXN0OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgICAgICAg
ICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAv
IHBhZ2VTaXplKCkpID0gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSkKKyAgICAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwgdW5zaWduZWQgY291bnQpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIC8vIHRoZSBwYWdlIHNob3VsZCBiZSBmcmVlIG9mIG9iamVjdHMgYXQgdGhp
cyBwb2ludCwgYnV0IGl0IHNob3VsZCBzdGlsbAogICAgICAgICAgICAgLy8gYmUgbWFwcGVkLgot
ICAgICAgICAgICAgRVhQRUNUX1RSVUUobV9wYXJlbnQtPnBhZ2VTdGF0ZShyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpKSk7Ci0gICAgICAgICAgICBmb3IgKHVp
bnRwdHJfdCBhZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpOyBhZGRy
ZXNzIDwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpICsgcGFnZVNpemUoKTsgKyth
ZGRyZXNzKQorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyArK2kp
CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUobV9wYXJlbnQtPnBhZ2VTdGF0ZShyZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkpOworICAgICAgICAg
ICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihw
YWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSArIHBhZ2VT
aXplKCkgKiBjb3VudDsgKythZGRyZXNzKQogICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFt
X3BhcmVudC0+Ynl0ZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGFkZHJlc3MpKSk7Ci0g
ICAgICAgICAgICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihwYWdlKSAvIHBhZ2VTaXplKCkpID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBtX3BhcmVudC0+cGFnZVN0
YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkgKyBpKSA9
IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375254</attachid>
            <date>2019-07-31 14:58:10 -0700</date>
            <delta_ts>2019-07-31 15:21:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190731145810.patch</filename>
            <type>text/plain</type>
            <size>13313</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODRiNTYzMDNkNjJkZjQ0ZWY3YzQyOTNmMzM1ZGNhMjk3ZDNmZTEyLi42YWI5YTJjMDFiMTI0NGNk
ODA2OTdiMWVkODMzYzY2ZTJmYzhhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1l
bW9yeVByZXNzdXJlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6
YWxsb2NhdGUpOgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6
OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5U3RhcnQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeUVuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6
aXNKSVRQQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFs
bG9jYXRvcjo6aW5pdGlhbGl6ZVNlcGFyYXRlZFdYSGVhcHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6OmppdFdyaXRlVGh1bmtHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I6OmdlbmVyaWNXcml0ZVRvSklUUmVnaW9uKTogRGVsZXRlZC4KKwogMjAxOS0wNy0zMCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEVtaXQgd3Jp
dGUgYmFycmllciBhZnRlciBzdG9yaW5nIGluc3RlYWQgb2YgYmVmb3JlIHN0b3JpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
Yzc4NjA1ODQ5NzI1MTk1MmFmNjlkNmIxZTc5ODg3NmE0YTM1NWM1Ni4uZDE2OGVmYTg4YTU2YjI0
ZmVmOWRmZmYyYTUyNjhmNGVmZWRjNGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0z
MSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIExl
c3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAoV1RG
OjpNZXRhQWxsb2NhdG9yOjppbmNyZW1lbnRQYWdlT2NjdXBhbmN5KToKKyAgICAgICAgKFdURjo6
TWV0YUFsbG9jYXRvcjo6ZGVjcmVtZW50UGFnZU9jY3VwYW5jeSk6CisgICAgICAgICogd3RmL01l
dGFBbGxvY2F0b3IuaDoKKwogMjAxOS0wNy0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnNXaXRoTGFuZ3Vh
Z2VBbmRPcHRpb24gaWYgYXZhaWxhYmxlIGluc3RlYWQgb2YgQ1RGb250Q3JlYXRlRm9yQ2hhcmFj
dGVyc1dpdGhMYW5ndWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5jcHAKaW5kZXggYjExZGU1ZTJjMTBhMzRhZTlhY2NiNjZkZDgwZDI1Zjcz
MTI2MGFjNC4uODg2YTY3NjJlYmUwODQ1N2UwZDA5NzQ5NjllZDA5MmM2OWNiN2VjNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBA
IC0xNTQsNyArMTU0LDcgQEAgdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpzZXRKSVRFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCi1jbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVB
bGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CitjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1
dGFibGVBbGxvY2F0b3IgZmluYWwgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxs
b2NhdG9yKCkKQEAgLTIwOCw2ICsyMDgsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVB
bGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAKICAgICAgICAgICAgIGFkZEZyZXNo
RnJlZVNwYWNlKHJlc2VydmF0aW9uQmFzZSwgcmVzZXJ2YXRpb25TaXplKTsKIAorICAgICAgICAg
ICAgLy8gQW5kIGFmdGVyIHRoYXQsIHRoaXMgaXMgbmV2ZXIgY2hhbmdlZC4KKyAgICAgICAgICAg
IEFTU0VSVChieXRlc1Jlc2VydmVkKCkgPT0gcmVzZXJ2YXRpb25TaXplKTsKKwogICAgICAgICAg
ICAgdm9pZCogcmVzZXJ2YXRpb25FbmQgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihyZXNl
cnZhdGlvbkJhc2UpICsgcmVzZXJ2YXRpb25TaXplOwogCiAgICAgICAgICAgICBtX21lbW9yeVN0
YXJ0ID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KHRhZ0Nv
ZGVQdHI8RXhlY3V0YWJsZU1lbW9yeVB0clRhZz4ocmVzZXJ2YXRpb25CYXNlKSk7CkBAIC0yMjgs
MjAgKzIzMSwyMSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJs
aWMgTWV0YUFsbG9jYXRvciB7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IHZvaWQgbm90aWZ5TmVlZFBhZ2Uodm9pZCogcGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlm
eU5lZWRQYWdlKHZvaWQqIHBhZ2UsIHNpemVfdCBjb3VudCkgb3ZlcnJpZGUKICAgICB7CiAjaWYg
VVNFKE1BRFZfRlJFRV9GT1JfSklUX01FTU9SWSkKICAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OworICAgICAgICBVTlVTRURfUEFSQU0oY291bnQpOwogI2Vsc2UKLSAgICAgICAgbV9yZXNlcnZh
dGlvbi5jb21taXQocGFnZSwgcGFnZVNpemUoKSk7CisgICAgICAgIG1fcmVzZXJ2YXRpb24uY29t
bWl0KHBhZ2UsIHBhZ2VTaXplKCkgKiBjb3VudCk7CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lk
IG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVBh
Z2VJc0ZyZWUodm9pZCogcGFnZSwgc2l6ZV90IGNvdW50KSBvdmVycmlkZQogICAgIHsKICNpZiBV
U0UoTUFEVl9GUkVFX0ZPUl9KSVRfTUVNT1JZKQogICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAg
ICAgICBpbnQgcmVzdWx0ID0gbWFkdmlzZShwYWdlLCBwYWdlU2l6ZSgpLCBNQURWX0ZSRUUpOwor
ICAgICAgICAgICAgaW50IHJlc3VsdCA9IG1hZHZpc2UocGFnZSwgcGFnZVNpemUoKSAqIGNvdW50
LCBNQURWX0ZSRUUpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSAtMSk7CkBAIC0yNTEsNyArMjU1
LDcgQEAgY2xhc3MgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIDogcHVibGljIE1ldGFB
bGxvY2F0b3IgewogICAgICAgICAgICAgfQogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jl
c2VydmF0aW9uLmRlY29tbWl0KHBhZ2UsIHBhZ2VTaXplKCkpOworICAgICAgICBtX3Jlc2VydmF0
aW9uLmRlY29tbWl0KHBhZ2UsIHBhZ2VTaXplKCkgKiBjb3VudCk7CiAjZW5kaWYKICAgICB9CiAK
QEAgLTQzMSwxOSArNDM1LDE3IEBAIGJvb2wgRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1v
cnlQcmVzc3VyZSgpCiB7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiBCYXNl
Ojp1bmRlck1lbW9yeVByZXNzdXJlKCk7Ci0gICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBz
dGF0aXN0aWNzID0gYWxsb2NhdG9yLT5jdXJyZW50U3RhdGlzdGljcygpOwotICAgIHJldHVybiBz
dGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkID4gc3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkIC8gMjsK
KyAgICByZXR1cm4gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpID4gYWxsb2NhdG9yLT5ieXRl
c1Jlc2VydmVkKCkgLyAyOwogfQogCiBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVzYWdlKQogewogICAgIGlmICgh
YWxsb2NhdG9yKQogICAgICAgICByZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVy
KGFkZGVkTWVtb3J5VXNhZ2UpOwotICAgIE1ldGFBbGxvY2F0b3I6OlN0YXRpc3RpY3Mgc3RhdGlz
dGljcyA9IGFsbG9jYXRvci0+Y3VycmVudFN0YXRpc3RpY3MoKTsKLSAgICBBU1NFUlQoc3RhdGlz
dGljcy5ieXRlc0FsbG9jYXRlZCA8PSBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQpOwotICAgIHNp
emVfdCBieXRlc0FsbG9jYXRlZCA9IHN0YXRpc3RpY3MuYnl0ZXNBbGxvY2F0ZWQgKyBhZGRlZE1l
bW9yeVVzYWdlOworICAgIEFTU0VSVChhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgPD0gYWxs
b2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkpOworICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9IGFs
bG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIGFkZGVkTWVtb3J5VXNhZ2U7CiAgICAgc2l6ZV90
IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8c2l6ZV90PigKLSAgICAgICAgc3RhdGlzdGlj
cy5ieXRlc1Jlc2VydmVkICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24p
KTsKKyAgICAgICAgYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4ZWN1dGFibGVQ
b29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBieXRl
c0F2YWlsYWJsZSkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0F2YWlsYWJsZTsKICAg
ICBkb3VibGUgcmVzdWx0ID0gMS4wOwpAQCAtNDc1LDEwICs0NzcsOSBAQCBSZWZQdHI8RXhlY3V0
YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoc2l6ZV90IHNp
emVJbkJ5dGVzLAogCiAgICAgaWYgKGVmZm9ydCA9PSBKSVRDb21waWxhdGlvbkNhbkZhaWwpIHsK
ICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgYWxsb2NhdGlvbnMgaWYgd2UgYXJlIGRvd24gdG8gcmVz
ZXJ2ZS4KLSAgICAgICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxs
b2NhdG9yLT5jdXJyZW50U3RhdGlzdGljcygpOwotICAgICAgICBzaXplX3QgYnl0ZXNBbGxvY2F0
ZWQgPSBzdGF0aXN0aWNzLmJ5dGVzQWxsb2NhdGVkICsgc2l6ZUluQnl0ZXM7CisgICAgICAgIHNp
emVfdCBieXRlc0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIHNpemVJ
bkJ5dGVzOwogICAgICAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KAotICAgICAgICAgICAgc3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkICogKDEgLSBleGVjdXRh
YmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICAgICAgICAgIGFsbG9jYXRvci0+Ynl0
ZXNSZXNlcnZlZCgpICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsK
ICAgICAgICAgaWYgKGJ5dGVzQWxsb2NhdGVkID4gYnl0ZXNBdmFpbGFibGUpIHsKICAgICAgICAg
ICAgIGlmIChPcHRpb25zOjpsb2dFeGVjdXRhYmxlQWxsb2NhdGlvbigpKQogICAgICAgICAgICAg
ICAgIGRhdGFMb2coIkFsbG9jYXRpb24gZmFpbGVkIGJlY2F1c2UgYnl0ZXMgYWxsb2NhdGVkICIs
IGJ5dGVzQWxsb2NhdGVkLCAgIiA+ICIsIGJ5dGVzQXZhaWxhYmxlLCAiIGJ5dGVzIGF2YWlsYWJs
ZS5cbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBjM2I2OTM3ODI4YzU3ZjU1YjY0
ZmJlMzQ5ZTVlNWNjN2I3Nzk2Yzk0Li4xMWYzY2JjNjQ3OGM1NTY0YjAxYmQ1N2UxYmMxMTQyZTQ1
YjQ4OTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMzk3LDIyICszOTcsNDYgQEAg
dm9pZCBNZXRhQWxsb2NhdG9yOjppbmNyZW1lbnRQYWdlT2NjdXBhbmN5KHZvaWQqIGFkZHJlc3Ms
IHNpemVfdCBzaXplSW5CeXRlcykKIHsKICAgICB1aW50cHRyX3QgZmlyc3RQYWdlID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpID4+IG1fbG9nUGFnZVNpemU7CiAgICAgdWlu
dHB0cl90IGxhc3RQYWdlID0gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKSAr
IHNpemVJbkJ5dGVzIC0gMSkgPj4gbV9sb2dQYWdlU2l6ZTsKKworICAgIHVpbnRwdHJfdCBjdXJy
ZW50UGFnZVN0YXJ0ID0gMDsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIGF1dG8gZmx1c2hO
ZWVkUGFnZXMgPSBbJl0geworICAgICAgICBpZiAoIWN1cnJlbnRQYWdlU3RhcnQpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG5vdGlmeU5lZWRQYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KGN1cnJlbnRQYWdlU3RhcnQgPDwgbV9sb2dQYWdlU2l6ZSksIGNvdW50KTsKKyAgICAgICAg
Y3VycmVudFBhZ2VTdGFydCA9IDA7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICB9OwogICAgIAog
ICAgIGZvciAodWludHB0cl90IHBhZ2UgPSBmaXJzdFBhZ2U7IHBhZ2UgPD0gbGFzdFBhZ2U7ICsr
cGFnZSkgewotICAgICAgICBIYXNoTWFwPHVpbnRwdHJfdCwgc2l6ZV90Pjo6aXRlcmF0b3IgaXRl
ciA9IG1fcGFnZU9jY3VwYW5jeU1hcC5maW5kKHBhZ2UpOwotICAgICAgICBpZiAoaXRlciA9PSBt
X3BhZ2VPY2N1cGFuY3lNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIG1fcGFnZU9jY3VwYW5jeU1h
cC5hZGQocGFnZSwgMSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9wYWdlT2NjdXBhbmN5TWFw
LmFkZChwYWdlLCAxKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAgICAg
ICAgICBtX2J5dGVzQ29tbWl0dGVkICs9IG1fcGFnZVNpemU7Ci0gICAgICAgICAgICBub3RpZnlO
ZWVkUGFnZShyZWludGVycHJldF9jYXN0PHZvaWQqPihwYWdlIDw8IG1fbG9nUGFnZVNpemUpKTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBpdGVyLT52YWx1ZSsrOworICAgICAgICAgICAg
aWYgKCFjdXJyZW50UGFnZVN0YXJ0KQorICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlU3RhcnQg
PSBwYWdlOworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUrKzsKKyAgICAgICAgICAgIGZsdXNoTmVlZFBhZ2Vz
KCk7CisgICAgICAgIH0KICAgICB9CisgICAgZmx1c2hOZWVkUGFnZXMoKTsKIH0KIAogdm9pZCBN
ZXRhQWxsb2NhdG9yOjpkZWNyZW1lbnRQYWdlT2NjdXBhbmN5KHZvaWQqIGFkZHJlc3MsIHNpemVf
dCBzaXplSW5CeXRlcykKIHsKICAgICB1aW50cHRyX3QgZmlyc3RQYWdlID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpID4+IG1fbG9nUGFnZVNpemU7CiAgICAgdWludHB0cl90
IGxhc3RQYWdlID0gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKSArIHNpemVJ
bkJ5dGVzIC0gMSkgPj4gbV9sb2dQYWdlU2l6ZTsKKworICAgIHVpbnRwdHJfdCBjdXJyZW50UGFn
ZVN0YXJ0ID0gMDsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIGF1dG8gZmx1c2hGcmVlUGFn
ZXMgPSBbJl0geworICAgICAgICBpZiAoIWN1cnJlbnRQYWdlU3RhcnQpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG5vdGlmeVBhZ2VJc0ZyZWUocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
Y3VycmVudFBhZ2VTdGFydCA8PCBtX2xvZ1BhZ2VTaXplKSwgY291bnQpOworICAgICAgICBjdXJy
ZW50UGFnZVN0YXJ0ID0gMDsKKyAgICAgICAgY291bnQgPSAwOworICAgIH07CiAgICAgCiAgICAg
Zm9yICh1aW50cHRyX3QgcGFnZSA9IGZpcnN0UGFnZTsgcGFnZSA8PSBsYXN0UGFnZTsgKytwYWdl
KSB7CiAgICAgICAgIEhhc2hNYXA8dWludHB0cl90LCBzaXplX3Q+OjppdGVyYXRvciBpdGVyID0g
bV9wYWdlT2NjdXBhbmN5TWFwLmZpbmQocGFnZSk7CkBAIC00MjAsOSArNDQ0LDEzIEBAIHZvaWQg
TWV0YUFsbG9jYXRvcjo6ZGVjcmVtZW50UGFnZU9jY3VwYW5jeSh2b2lkKiBhZGRyZXNzLCBzaXpl
X3Qgc2l6ZUluQnl0ZXMpCiAgICAgICAgIGlmICghLS0oaXRlci0+dmFsdWUpKSB7CiAgICAgICAg
ICAgICBtX3BhZ2VPY2N1cGFuY3lNYXAucmVtb3ZlKGl0ZXIpOwogICAgICAgICAgICAgbV9ieXRl
c0NvbW1pdHRlZCAtPSBtX3BhZ2VTaXplOwotICAgICAgICAgICAgbm90aWZ5UGFnZUlzRnJlZShy
ZWludGVycHJldF9jYXN0PHZvaWQqPihwYWdlIDw8IG1fbG9nUGFnZVNpemUpKTsKLSAgICAgICAg
fQorICAgICAgICAgICAgaWYgKCFjdXJyZW50UGFnZVN0YXJ0KQorICAgICAgICAgICAgICAgIGN1
cnJlbnRQYWdlU3RhcnQgPSBwYWdlOworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBmbHVzaEZyZWVQYWdlcygpOwogICAgIH0KKyAgICBmbHVzaEZyZWVQ
YWdlcygpOwogfQogCiBib29sIE1ldGFBbGxvY2F0b3I6OmlzSW5BbGxvY2F0ZWRNZW1vcnkoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCB2b2lkKiBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWV0YUFsbG9jYXRvci5oIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmlu
ZGV4IGQ4OWE0NTA2ZjM0ODNiNzU0ZjIxOTBhNDg0OWE0ZDdiMmVhM2QwYWEuLjM4YjVkYzYwYjBk
ODBmMjBmNWE4NTNhYzIyMGJkZGQyNDBiYThhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAg
LTExMywxMCArMTEzLDEwIEBAIGNsYXNzIE1ldGFBbGxvY2F0b3IgewogICAgIHZpcnR1YWwgRnJl
ZVNwYWNlUHRyIGFsbG9jYXRlTmV3U3BhY2Uoc2l6ZV90JiBudW1QYWdlcykgPSAwOwogCiAgICAg
Ly8gQ29tbWl0IGEgcGFnZS4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZFBhZ2Uodm9pZCog
cGFnZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZWVkUGFnZSh2b2lkKiBwYWdlLCBz
aXplX3QpID0gMDsKICAgICAKICAgICAvLyBVbmNvbW1pdCBhIHBhZ2UuCi0gICAgdmlydHVhbCB2
b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UsIHNpemVfdCkgPSAwOwogICAgIAogICAgIC8vIE5P
VEU6IG5vbmUgb2YgdGhlIGFib3ZlIG1ldGhvZHMgYXJlIGNhbGxlZCBkdXJpbmcgYWxsb2NhdG9y
CiAgICAgLy8gZGVzdHJ1Y3Rpb24sIGluIHBhcnQgYmVjYXVzZSBhIE1ldGFBbGxvY2F0b3IgY2Fu
bm90IGRpZSBzbyBsb25nCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZmRiMzc2MjVkNzk0YTE3MjM2ZjkzMWM4MzhjZTJkOTQ3NDc2OTljYS4uMmEy
MDljZjRlNjE2Zjc4YmJmMWQ0OTliMDE2ZDFlNmNlNGQ3NjFiMyAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA3
LTMxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10g
TGVzcyBjb250ZW5kZWQgTWV0YUFsbG9jYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2Nh
dG9yLmNwcDoKKwogMjAxOS0wNy0zMSAgTG/Dr2MgWWh1ZWwgIDxsb2ljLnlodWVsQHNvZnRhdGhv
bWUuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gRml4IGd0a2RvYyBidWlsZCB3aXRoICJidWls
ZC13ZWJraXQgLS0zMi1iaXQiIG9uIDY0LWJpdCBob3N0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBlZjAxYjNhMDU1ZjdjNjQyZDU1
NWQ3ODY3MDExZDJhZTk4ODIxNWM4Li4yMzJmNWUzZDExNzg2YTM5OTQzZjQ1ODQzM2IyOTJjMDQ5
MjZlYjNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxs
b2NhdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2Nh
dG9yLmNwcApAQCAtMTA1LDIzICsxMDUsMjcgQEAgY2xhc3MgTWV0YUFsbG9jYXRvclRlc3Q6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU5lZWRQYWdlKHZvaWQqIHBhZ2UpCisgICAgICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlOZWVkUGFnZSh2b2lkKiBwYWdlLCBzaXplX3QgY291bnQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIC8vIHRoZSBwYWdlIHNob3VsZCBiZSBib3RoIGZyZWUgYW5k
IHVubWFwcGVkLgotICAgICAgICAgICAgRVhQRUNUX1RSVUUoIW1fcGFyZW50LT5wYWdlU3RhdGUo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpIC8gcGFnZVNpemUoKSkpOwotICAgICAg
ICAgICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihwYWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSArIHBh
Z2VTaXplKCk7ICsrYWRkcmVzcykKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghbV9wYXJlbnQtPnBhZ2VT
dGF0ZShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkp
OworICAgICAgICAgICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihwYWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihw
YWdlKSArIHBhZ2VTaXplKCkgKiBjb3VudDsgKythZGRyZXNzKQogICAgICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKCFtX3BhcmVudC0+Ynl0ZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGFk
ZHJlc3MpKSk7Ci0gICAgICAgICAgICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkpID0gdHJ1ZTsKKyAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBtX3BhcmVu
dC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXpl
KCkgKyBpKSA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UpCisgICAgICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UsIHNpemVfdCBjb3VudCkKICAgICAgICAgewogICAgICAg
ICAgICAgLy8gdGhlIHBhZ2Ugc2hvdWxkIGJlIGZyZWUgb2Ygb2JqZWN0cyBhdCB0aGlzIHBvaW50
LCBidXQgaXQgc2hvdWxkIHN0aWxsCiAgICAgICAgICAgICAvLyBiZSBtYXBwZWQuCi0gICAgICAg
ICAgICBFWFBFQ1RfVFJVRShtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkpKTsKLSAgICAgICAgICAgIGZvciAodWludHB0cl90
IGFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSk7IGFkZHJlc3MgPCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgKyBwYWdlU2l6ZSgpOyArK2FkZHJlc3Mp
CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAg
ICAgICAgICAgRVhQRUNUX1RSVUUobV9wYXJlbnQtPnBhZ2VTdGF0ZShyZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkpOworICAgICAgICAgICAgZm9yICh1
aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKTsgYWRk
cmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSArIHBhZ2VTaXplKCkgKiBj
b3VudDsgKythZGRyZXNzKQogICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFtX3BhcmVudC0+
Ynl0ZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGFkZHJlc3MpKSk7Ci0gICAgICAgICAg
ICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAv
IHBhZ2VTaXplKCkpID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvdW50OyArK2kpCisgICAgICAgICAgICAgICAgbV9wYXJlbnQtPnBhZ2VTdGF0ZShyZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkgPSBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375260</attachid>
            <date>2019-07-31 15:21:18 -0700</date>
            <delta_ts>2019-08-14 13:33:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200278-20190731152117.patch</filename>
            <type>text/plain</type>
            <size>14465</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODRiNTYzMDNkNjJkZjQ0ZWY3YzQyOTNmMzM1ZGNhMjk3ZDNmZTEyLi45MjU1N2E5NGI3MjIyYmZh
YzZiMDc0YWUxYjA3ZDE3ODRjYTc3NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVuZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm9maWxlciByZXN1
bHQgb2YgSmV0U3RyZWFtMi9ib21iLXdvcmtlcnMgc2hvd3MgdGhhdCB3ZSBhcmUgaGF2aW5nIGNv
bnRlbnRpb24gdW5kZXIgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MuCisgICAgICAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVBy
ZXNzdXJlTXVsdGlwbGllciwgYW5kIGl0IGlzIGNhbGxlZCBmcm9tIEV4ZWN1dGFibGVDb3VudGVy
J3MgdGhyZXNob2xkCisgICAgICAgIGNhbGN1bGF0aW9uLiBCdXQgTWV0YUFsbG9jYXRvcjo6Y3Vy
cmVudFN0YXRpc3RpY3MgdGFrZXMgYSBnbG9iYWwgbG9jayBpbnNpZGUgTWV0YUFsbG9jYXRvciBh
bmQgY2F1c2VzIGNvbnRlbnRpb24uIEhvd2V2ZXIsCisgICAgICAgIHdlIGRvIG5vdCBuZWVkIHRv
IGhhdmUgYSBsb2NrIGFjdHVhbGx5OiBjbGllbnRzIG9mIE1ldGFBbGxvY2F0b3I6OmN1cnJlbnRT
dGF0aXN0aWNzIHR5cGljYWxseSB1c2UgYnl0ZXNSZXNlcnZlZCBhbmQgYnl0ZXNBbGxvY2F0ZWQK
KyAgICAgICAgaW5mb3JtYXRpb24uIEhvd2V2ZXIsIHNpbmNlIG91ciBleGVjdXRhYmxlIGFsbG9j
YXRvciBpcyBmaXhlZC1zaXplZCwgYnl0ZXNSZXNlcnZlZCBpcyBhbHdheXMgdGhlIGZpeGVkIHNp
emUuIFNvIGp1c3QgcmVhZGluZyBieXRlc0FsbG9jYXRlZAorICAgICAgICByYWNpbHkgaXMgZW5v
dWdoLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gcmVkdWNlIHRoZSBjb250ZW50
aW9uIGJ5IHRoZSBmb2xsb3dpbmcgdHdvIHRoaW5ncy4KKworICAgICAgICAxLiBSZWFkIGJ5dGVz
QWxsb2NhdGVkIHJhY2lseSBpbnN0ZWFkIG9mIGNhbGxpbmcgTWV0YUFsbG9jYXRvcjo6Y3VycmVu
dFN0YXRpc3RpY3MuIFRoZW4gRXhlY3V0YWJsZUNvdW50ZXIgZG9lcyBub3QgbmVlZCB0byB0YWtl
IGEgbG9jay4KKyAgICAgICAgMi4gcGFnZSBsaWZldGltZSBtYW5hZ2VtZW50IEFQSXMgb2YgTWV0
YUFsbG9jYXRvciBzaG91bGQgdGFrZSBhIHNlY29uZCBgY291bnRgIHBhcmFtZXRlciB0byBiYXRj
aCB0aGUgc3lzdGVtIGNhbGxzLgorCisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNz
dXJlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVN
dWx0aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUp
OgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6OkZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5U3RhcnQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeUVuZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6aXNKSVRQQyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6
aW5pdGlhbGl6ZVNlcGFyYXRlZFdYSGVhcHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGaXhl
ZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6OmppdFdyaXRlVGh1bmtHZW5lcmF0b3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdlbmVy
aWNXcml0ZVRvSklUUmVnaW9uKTogRGVsZXRlZC4KKwogMjAxOS0wNy0zMCAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEVtaXQgd3JpdGUgYmFycmll
ciBhZnRlciBzdG9yaW5nIGluc3RlYWQgb2YgYmVmb3JlIHN0b3JpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYzc4NjA1ODQ5
NzI1MTk1MmFmNjlkNmIxZTc5ODg3NmE0YTM1NWM1Ni4uZDE2OGVmYTg4YTU2YjI0ZmVmOWRmZmYy
YTUyNjhmNGVmZWRjNGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0zMSAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIExlc3MgY29udGVu
ZGVkIE1ldGFBbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDI3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAoV1RGOjpNZXRhQWxs
b2NhdG9yOjppbmNyZW1lbnRQYWdlT2NjdXBhbmN5KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9j
YXRvcjo6ZGVjcmVtZW50UGFnZU9jY3VwYW5jeSk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0
b3IuaDoKKwogMjAxOS0wNy0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2VBbmRPcHRp
b24gaWYgYXZhaWxhYmxlIGluc3RlYWQgb2YgQ1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVyc1dpdGhM
YW5ndWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKaW5kZXggYjExZGU1ZTJjMTBhMzRhZTlhY2NiNjZkZDgwZDI1ZjczMTI2MGFjNC4u
MzZkN2NjY2Y0Y2M2NWE1YTMyMjVkM2NlYTIzMmU3MmIwNzA0Y2YxNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0xNTQsNyAr
MTU0LDcgQEAgdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpzZXRKSVRFbmFibGVkKGJvb2wgZW5h
YmxlZCkKICNlbmRpZgogfQogCi1jbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3Ig
OiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CitjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxv
Y2F0b3IgZmluYWwgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yKCkK
QEAgLTIwOCw2ICsyMDgsOCBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3Ig
OiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAKICAgICAgICAgICAgIGFkZEZyZXNoRnJlZVNwYWNl
KHJlc2VydmF0aW9uQmFzZSwgcmVzZXJ2YXRpb25TaXplKTsKIAorICAgICAgICAgICAgQVNTRVJU
KGJ5dGVzUmVzZXJ2ZWQoKSA9PSByZXNlcnZhdGlvblNpemUpOyAvLyBTaW5jZSBvdXIgZXhlY3V0
YWJsZSBtZW1vcnkgaXMgZml4ZWQtc2l6ZWQsIGJ5dGVzUmVzZXJ2ZWQgaXMgbmV2ZXIgY2hhbmdl
ZCBhZnRlciBpbml0aWFsaXphdGlvbi4KKwogICAgICAgICAgICAgdm9pZCogcmVzZXJ2YXRpb25F
bmQgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihyZXNlcnZhdGlvbkJhc2UpICsgcmVzZXJ2
YXRpb25TaXplOwogCiAgICAgICAgICAgICBtX21lbW9yeVN0YXJ0ID0gTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KHRhZ0NvZGVQdHI8RXhlY3V0YWJsZU1lbW9y
eVB0clRhZz4ocmVzZXJ2YXRpb25CYXNlKSk7CkBAIC0yMjgsMjAgKzIzMCwyMSBAQCBjbGFzcyBG
aXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgOiBwdWJsaWMgTWV0YUFsbG9jYXRvciB7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHZvaWQgbm90aWZ5TmVlZFBhZ2Uo
dm9pZCogcGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeU5lZWRQYWdlKHZvaWQqIHBhZ2Us
IHNpemVfdCBjb3VudCkgb3ZlcnJpZGUKICAgICB7CiAjaWYgVVNFKE1BRFZfRlJFRV9GT1JfSklU
X01FTU9SWSkKICAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgICAgICBVTlVTRURfUEFS
QU0oY291bnQpOwogI2Vsc2UKLSAgICAgICAgbV9yZXNlcnZhdGlvbi5jb21taXQocGFnZSwgcGFn
ZVNpemUoKSk7CisgICAgICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KHBhZ2UsIHBhZ2VTaXplKCkg
KiBjb3VudCk7CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9p
ZCogcGFnZSkgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSwg
c2l6ZV90IGNvdW50KSBvdmVycmlkZQogICAgIHsKICNpZiBVU0UoTUFEVl9GUkVFX0ZPUl9KSVRf
TUVNT1JZKQogICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gbWFk
dmlzZShwYWdlLCBwYWdlU2l6ZSgpLCBNQURWX0ZSRUUpOworICAgICAgICAgICAgaW50IHJlc3Vs
dCA9IG1hZHZpc2UocGFnZSwgcGFnZVNpemUoKSAqIGNvdW50LCBNQURWX0ZSRUUpOwogICAgICAg
ICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
QVNTRVJUKHJlc3VsdCA9PSAtMSk7CkBAIC0yNTEsNyArMjU0LDcgQEAgY2xhc3MgRml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yIDogcHVibGljIE1ldGFBbGxvY2F0b3IgewogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHBh
Z2UsIHBhZ2VTaXplKCkpOworICAgICAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHBhZ2UsIHBh
Z2VTaXplKCkgKiBjb3VudCk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTQzMSwxOSArNDM0LDE3IEBA
IGJvb2wgRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiB7CiAgICAg
aWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiBCYXNlOjp1bmRlck1lbW9yeVByZXNzdXJl
KCk7Ci0gICAgTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxsb2NhdG9y
LT5jdXJyZW50U3RhdGlzdGljcygpOwotICAgIHJldHVybiBzdGF0aXN0aWNzLmJ5dGVzQWxsb2Nh
dGVkID4gc3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkIC8gMjsKKyAgICByZXR1cm4gYWxsb2NhdG9y
LT5ieXRlc0FsbG9jYXRlZCgpID4gYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgLyAyOwogfQog
CiBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNp
emVfdCBhZGRlZE1lbW9yeVVzYWdlKQogewogICAgIGlmICghYWxsb2NhdG9yKQogICAgICAgICBy
ZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKGFkZGVkTWVtb3J5VXNhZ2UpOwot
ICAgIE1ldGFBbGxvY2F0b3I6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcyA9IGFsbG9jYXRvci0+Y3Vy
cmVudFN0YXRpc3RpY3MoKTsKLSAgICBBU1NFUlQoc3RhdGlzdGljcy5ieXRlc0FsbG9jYXRlZCA8
PSBzdGF0aXN0aWNzLmJ5dGVzUmVzZXJ2ZWQpOwotICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9
IHN0YXRpc3RpY3MuYnl0ZXNBbGxvY2F0ZWQgKyBhZGRlZE1lbW9yeVVzYWdlOworICAgIEFTU0VS
VChhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgPD0gYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVk
KCkpOworICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0
ZWQoKSArIGFkZGVkTWVtb3J5VXNhZ2U7CiAgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3Rh
dGljX2Nhc3Q8c2l6ZV90PigKLSAgICAgICAgc3RhdGlzdGljcy5ieXRlc1Jlc2VydmVkICogKDEg
LSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICAgICAgYWxsb2NhdG9y
LT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlv
bikpOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBieXRlc0F2YWlsYWJsZSkKICAgICAgICAg
Ynl0ZXNBbGxvY2F0ZWQgPSBieXRlc0F2YWlsYWJsZTsKICAgICBkb3VibGUgcmVzdWx0ID0gMS4w
OwpAQCAtNDc1LDEwICs0NzYsOSBAQCBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzLAogCiAgICAgaWYg
KGVmZm9ydCA9PSBKSVRDb21waWxhdGlvbkNhbkZhaWwpIHsKICAgICAgICAgLy8gRG9uJ3QgYWxs
b3cgYWxsb2NhdGlvbnMgaWYgd2UgYXJlIGRvd24gdG8gcmVzZXJ2ZS4KLSAgICAgICAgTWV0YUFs
bG9jYXRvcjo6U3RhdGlzdGljcyBzdGF0aXN0aWNzID0gYWxsb2NhdG9yLT5jdXJyZW50U3RhdGlz
dGljcygpOwotICAgICAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBzdGF0aXN0aWNzLmJ5dGVz
QWxsb2NhdGVkICsgc2l6ZUluQnl0ZXM7CisgICAgICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9
IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIHNpemVJbkJ5dGVzOwogICAgICAgICBzaXpl
X3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KAotICAgICAgICAgICAgc3Rh
dGlzdGljcy5ieXRlc1Jlc2VydmVkICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJh
Y3Rpb24pKTsKKyAgICAgICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBl
eGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKICAgICAgICAgaWYgKGJ5dGVzQWxs
b2NhdGVkID4gYnl0ZXNBdmFpbGFibGUpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjpsb2dF
eGVjdXRhYmxlQWxsb2NhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbG9jYXRp
b24gZmFpbGVkIGJlY2F1c2UgYnl0ZXMgYWxsb2NhdGVkICIsIGJ5dGVzQWxsb2NhdGVkLCAgIiA+
ICIsIGJ5dGVzQXZhaWxhYmxlLCAiIGJ5dGVzIGF2YWlsYWJsZS5cbiIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxs
b2NhdG9yLmNwcAppbmRleCBjM2I2OTM3ODI4YzU3ZjU1YjY0ZmJlMzQ5ZTVlNWNjN2I3Nzk2Yzk0
Li4xMWYzY2JjNjQ3OGM1NTY0YjAxYmQ1N2UxYmMxMTQyZTQ1YjQ4OTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmNwcApAQCAtMzk3LDIyICszOTcsNDYgQEAgdm9pZCBNZXRhQWxsb2NhdG9yOjpp
bmNyZW1lbnRQYWdlT2NjdXBhbmN5KHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplSW5CeXRlcykK
IHsKICAgICB1aW50cHRyX3QgZmlyc3RQYWdlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGFkZHJlc3MpID4+IG1fbG9nUGFnZVNpemU7CiAgICAgdWludHB0cl90IGxhc3RQYWdlID0gKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKSArIHNpemVJbkJ5dGVzIC0gMSkgPj4g
bV9sb2dQYWdlU2l6ZTsKKworICAgIHVpbnRwdHJfdCBjdXJyZW50UGFnZVN0YXJ0ID0gMDsKKyAg
ICBzaXplX3QgY291bnQgPSAwOworICAgIGF1dG8gZmx1c2hOZWVkUGFnZXMgPSBbJl0geworICAg
ICAgICBpZiAoIWN1cnJlbnRQYWdlU3RhcnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IG5vdGlmeU5lZWRQYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN1cnJlbnRQYWdlU3RhcnQg
PDwgbV9sb2dQYWdlU2l6ZSksIGNvdW50KTsKKyAgICAgICAgY3VycmVudFBhZ2VTdGFydCA9IDA7
CisgICAgICAgIGNvdW50ID0gMDsKKyAgICB9OwogICAgIAogICAgIGZvciAodWludHB0cl90IHBh
Z2UgPSBmaXJzdFBhZ2U7IHBhZ2UgPD0gbGFzdFBhZ2U7ICsrcGFnZSkgewotICAgICAgICBIYXNo
TWFwPHVpbnRwdHJfdCwgc2l6ZV90Pjo6aXRlcmF0b3IgaXRlciA9IG1fcGFnZU9jY3VwYW5jeU1h
cC5maW5kKHBhZ2UpOwotICAgICAgICBpZiAoaXRlciA9PSBtX3BhZ2VPY2N1cGFuY3lNYXAuZW5k
KCkpIHsKLSAgICAgICAgICAgIG1fcGFnZU9jY3VwYW5jeU1hcC5hZGQocGFnZSwgMSk7CisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gbV9wYWdlT2NjdXBhbmN5TWFwLmFkZChwYWdlLCAxKTsKKyAgICAg
ICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICBtX2J5dGVzQ29tbWl0dGVk
ICs9IG1fcGFnZVNpemU7Ci0gICAgICAgICAgICBub3RpZnlOZWVkUGFnZShyZWludGVycHJldF9j
YXN0PHZvaWQqPihwYWdlIDw8IG1fbG9nUGFnZVNpemUpKTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBpdGVyLT52YWx1ZSsrOworICAgICAgICAgICAgaWYgKCFjdXJyZW50UGFnZVN0YXJ0
KQorICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlU3RhcnQgPSBwYWdlOworICAgICAgICAgICAg
Kytjb3VudDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUrKzsKKyAgICAgICAgICAgIGZsdXNoTmVlZFBhZ2VzKCk7CisgICAgICAgIH0KICAgICB9
CisgICAgZmx1c2hOZWVkUGFnZXMoKTsKIH0KIAogdm9pZCBNZXRhQWxsb2NhdG9yOjpkZWNyZW1l
bnRQYWdlT2NjdXBhbmN5KHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplSW5CeXRlcykKIHsKICAg
ICB1aW50cHRyX3QgZmlyc3RQYWdlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGFkZHJl
c3MpID4+IG1fbG9nUGFnZVNpemU7CiAgICAgdWludHB0cl90IGxhc3RQYWdlID0gKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKSArIHNpemVJbkJ5dGVzIC0gMSkgPj4gbV9sb2dQ
YWdlU2l6ZTsKKworICAgIHVpbnRwdHJfdCBjdXJyZW50UGFnZVN0YXJ0ID0gMDsKKyAgICBzaXpl
X3QgY291bnQgPSAwOworICAgIGF1dG8gZmx1c2hGcmVlUGFnZXMgPSBbJl0geworICAgICAgICBp
ZiAoIWN1cnJlbnRQYWdlU3RhcnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5vdGlm
eVBhZ2VJc0ZyZWUocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY3VycmVudFBhZ2VTdGFydCA8PCBt
X2xvZ1BhZ2VTaXplKSwgY291bnQpOworICAgICAgICBjdXJyZW50UGFnZVN0YXJ0ID0gMDsKKyAg
ICAgICAgY291bnQgPSAwOworICAgIH07CiAgICAgCiAgICAgZm9yICh1aW50cHRyX3QgcGFnZSA9
IGZpcnN0UGFnZTsgcGFnZSA8PSBsYXN0UGFnZTsgKytwYWdlKSB7CiAgICAgICAgIEhhc2hNYXA8
dWludHB0cl90LCBzaXplX3Q+OjppdGVyYXRvciBpdGVyID0gbV9wYWdlT2NjdXBhbmN5TWFwLmZp
bmQocGFnZSk7CkBAIC00MjAsOSArNDQ0LDEzIEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6ZGVjcmVt
ZW50UGFnZU9jY3VwYW5jeSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAg
ICAgIGlmICghLS0oaXRlci0+dmFsdWUpKSB7CiAgICAgICAgICAgICBtX3BhZ2VPY2N1cGFuY3lN
YXAucmVtb3ZlKGl0ZXIpOwogICAgICAgICAgICAgbV9ieXRlc0NvbW1pdHRlZCAtPSBtX3BhZ2VT
aXplOwotICAgICAgICAgICAgbm90aWZ5UGFnZUlzRnJlZShyZWludGVycHJldF9jYXN0PHZvaWQq
PihwYWdlIDw8IG1fbG9nUGFnZVNpemUpKTsKLSAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFj
dXJyZW50UGFnZVN0YXJ0KQorICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlU3RhcnQgPSBwYWdl
OworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmbHVz
aEZyZWVQYWdlcygpOwogICAgIH0KKyAgICBmbHVzaEZyZWVQYWdlcygpOwogfQogCiBib29sIE1l
dGFBbGxvY2F0b3I6OmlzSW5BbGxvY2F0ZWRNZW1vcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCB2
b2lkKiBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5o
IGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmluZGV4IGQ4OWE0NTA2ZjM0ODNiNzU0
ZjIxOTBhNDg0OWE0ZDdiMmVhM2QwYWEuLjM4YjVkYzYwYjBkODBmMjBmNWE4NTNhYzIyMGJkZGQy
NDBiYThhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTExMywxMCArMTEzLDEwIEBAIGNs
YXNzIE1ldGFBbGxvY2F0b3IgewogICAgIHZpcnR1YWwgRnJlZVNwYWNlUHRyIGFsbG9jYXRlTmV3
U3BhY2Uoc2l6ZV90JiBudW1QYWdlcykgPSAwOwogCiAgICAgLy8gQ29tbWl0IGEgcGFnZS4KLSAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZFBhZ2Uodm9pZCogcGFnZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlOZWVkUGFnZSh2b2lkKiBwYWdlLCBzaXplX3QpID0gMDsKICAgICAKICAg
ICAvLyBVbmNvbW1pdCBhIHBhZ2UuCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUo
dm9pZCogcGFnZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQq
IHBhZ2UsIHNpemVfdCkgPSAwOwogICAgIAogICAgIC8vIE5PVEU6IG5vbmUgb2YgdGhlIGFib3Zl
IG1ldGhvZHMgYXJlIGNhbGxlZCBkdXJpbmcgYWxsb2NhdG9yCiAgICAgLy8gZGVzdHJ1Y3Rpb24s
IGluIHBhcnQgYmVjYXVzZSBhIE1ldGFBbGxvY2F0b3IgY2Fubm90IGRpZSBzbyBsb25nCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmRiMzc2MjVk
Nzk0YTE3MjM2ZjkzMWM4MzhjZTJkOTQ3NDc2OTljYS4uNTk0NjllYTRmZDJiN2YxMjE1N2MwN2Q3
NDM2ZWM5ZDVlMWFkZDFiNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA3LTMxICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gTGVzcyBjb250ZW5kZWQgTWV0YUFs
bG9jYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRoZSBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9NZXRhQWxsb2NhdG9yLmNwcDoKKwogMjAxOS0wNy0zMSAgTG/Dr2MgWWh1ZWwgIDxsb2ljLnlo
dWVsQHNvZnRhdGhvbWUuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gRml4IGd0a2RvYyBidWls
ZCB3aXRoICJidWlsZC13ZWJraXQgLS0zMi1iaXQiIG9uIDY0LWJpdCBob3N0cwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBlZjAxYjNh
MDU1ZjdjNjQyZDU1NWQ3ODY3MDExZDJhZTk4ODIxNWM4Li4yMzJmNWUzZDExNzg2YTM5OTQzZjQ1
ODQzM2IyOTJjMDQ5MjZlYjNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMTA1LDIzICsxMDUsMjcgQEAgY2xhc3MgTWV0YUFsbG9j
YXRvclRlc3Q6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU5lZWRQYWdlKHZvaWQqIHBh
Z2UpCisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZWVkUGFnZSh2b2lkKiBwYWdlLCBzaXpl
X3QgY291bnQpCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIHRoZSBwYWdlIHNob3VsZCBiZSBi
b3RoIGZyZWUgYW5kIHVubWFwcGVkLgotICAgICAgICAgICAgRVhQRUNUX1RSVUUoIW1fcGFyZW50
LT5wYWdlU3RhdGUocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBhZ2UpIC8gcGFnZVNpemUo
KSkpOwotICAgICAgICAgICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihwYWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihwYWdlKSArIHBhZ2VTaXplKCk7ICsrYWRkcmVzcykKKyAgICAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghbV9w
YXJlbnQtPnBhZ2VTdGF0ZShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdl
U2l6ZSgpICsgaSkpOworICAgICAgICAgICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihwYWdlKSArIHBhZ2VTaXplKCkgKiBjb3VudDsgKythZGRyZXNzKQogICAgICAg
ICAgICAgICAgIEVYUEVDVF9UUlVFKCFtX3BhcmVudC0+Ynl0ZVN0YXRlKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KGFkZHJlc3MpKSk7Ci0gICAgICAgICAgICBtX3BhcmVudC0+cGFnZVN0YXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkpID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAg
ICAgICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdl
KSAvIHBhZ2VTaXplKCkgKyBpKSA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UpCisgICAgICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UsIHNpemVfdCBjb3VudCkKICAgICAg
ICAgewogICAgICAgICAgICAgLy8gdGhlIHBhZ2Ugc2hvdWxkIGJlIGZyZWUgb2Ygb2JqZWN0cyBh
dCB0aGlzIHBvaW50LCBidXQgaXQgc2hvdWxkIHN0aWxsCiAgICAgICAgICAgICAvLyBiZSBtYXBw
ZWQuCi0gICAgICAgICAgICBFWFBFQ1RfVFJVRShtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSAvIHBhZ2VTaXplKCkpKTsKLSAgICAgICAgICAgIGZv
ciAodWludHB0cl90IGFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSk7
IGFkZHJlc3MgPCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgKyBwYWdlU2l6ZSgp
OyArK2FkZHJlc3MpCisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyAr
K2kpCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUobV9wYXJlbnQtPnBhZ2VTdGF0ZShyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkpOworICAgICAg
ICAgICAgZm9yICh1aW50cHRyX3QgYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihwYWdlKTsgYWRkcmVzcyA8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwYWdlKSArIHBh
Z2VTaXplKCkgKiBjb3VudDsgKythZGRyZXNzKQogICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVF
KCFtX3BhcmVudC0+Ynl0ZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGFkZHJlc3MpKSk7
Ci0gICAgICAgICAgICBtX3BhcmVudC0+cGFnZVN0YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihwYWdlKSAvIHBhZ2VTaXplKCkpID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgICAgICAgICAgbV9wYXJlbnQtPnBhZ2VT
dGF0ZShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGFnZSkgLyBwYWdlU2l6ZSgpICsgaSkg
PSBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>