<?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>207673</bug_id>
          
          <creation_ts>2020-02-12 17:55:31 -0800</creation_ts>
          <short_desc>[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately</short_desc>
          <delta_ts>2020-02-12 18:38:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</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>1618341</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 17:55:31 -0800</bug_when>
    <thetext>[JSC] Compact JITCodeMap by stroing BytecodeIndex and CodeLocation separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618345</commentid>
    <comment_count>1</comment_count>
      <attachid>390603</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:01:56 -0800</bug_when>
    <thetext>Created attachment 390603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618347</commentid>
    <comment_count>2</comment_count>
      <attachid>390603</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-12 18:05:34 -0800</bug_when>
    <thetext>Comment on attachment 390603
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        [JSC] Compact JITCodeMap by stroing BytecodeIndex and CodeLocation separately

/stroing/strong/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618348</commentid>
    <comment_count>3</comment_count>
      <attachid>390605</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:05:57 -0800</bug_when>
    <thetext>Created attachment 390605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618349</commentid>
    <comment_count>4</comment_count>
      <attachid>390603</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:06:35 -0800</bug_when>
    <thetext>Comment on attachment 390603
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:3
&gt;&gt; +        [JSC] Compact JITCodeMap by stroing BytecodeIndex and CodeLocation separately
&gt; 
&gt; /stroing/strong/

Thanks, fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618350</commentid>
    <comment_count>5</comment_count>
      <attachid>390606</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:08:29 -0800</bug_when>
    <thetext>Created attachment 390606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618362</commentid>
    <comment_count>6</comment_count>
      <attachid>390606</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-12 18:28:17 -0800</bug_when>
    <thetext>Comment on attachment 390606
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618363</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:30:12 -0800</bug_when>
    <thetext>Committed r256498: &lt;https://trac.webkit.org/changeset/256498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618364</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-12 18:31:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/59410018&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618365</commentid>
    <comment_count>9</comment_count>
      <attachid>390606</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-12 18:31:45 -0800</bug_when>
    <thetext>Comment on attachment 390606
Patch

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

&gt; Source/JavaScriptCore/jit/JITCodeMap.h:46
&gt; +        m_pointer = MallocPtr&lt;uint8_t&gt;::malloc(sizeof(CodeLocationLabel&lt;JSEntryPtrTag&gt;) * m_size + sizeof(BytecodeIndex) * m_size);

Don&apos;t we need to insure some alignment minimum here ? (I would say alignof(CodeLocationLabel&lt;JSEntryPtrTag&gt;)

&gt; Source/JavaScriptCore/jit/JITCodeMap.h:56
&gt; +        return codeLocations()[index - indexes()];

I&apos;m confused about this line. Can you explain why it is not just codeLocations()[index] ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618366</commentid>
    <comment_count>10</comment_count>
      <attachid>390606</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 18:38:35 -0800</bug_when>
    <thetext>Comment on attachment 390606
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/JITCodeMap.h:46
&gt;&gt; +        m_pointer = MallocPtr&lt;uint8_t&gt;::malloc(sizeof(CodeLocationLabel&lt;JSEntryPtrTag&gt;) * m_size + sizeof(BytecodeIndex) * m_size);
&gt; 
&gt; Don&apos;t we need to insure some alignment minimum here ? (I would say alignof(CodeLocationLabel&lt;JSEntryPtrTag&gt;)

MallocPtr is just calling malloc. So we can assume usual alignment requirement for malloc here.

&gt;&gt; Source/JavaScriptCore/jit/JITCodeMap.h:56
&gt;&gt; +        return codeLocations()[index - indexes()];
&gt; 
&gt; I&apos;m confused about this line. Can you explain why it is not just codeLocations()[index] ?

index is `BytecodeIndex*` pointing the found entry (or nullptr). `index - indexes()` can calculate the offset.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390603</attachid>
            <date>2020-02-12 18:01:56 -0800</date>
            <delta_ts>2020-02-12 18:05:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207673-20200212180155.patch</filename>
            <type>text/plain</type>
            <size>7839</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NDQ3NzVhOGJkOGUxZDRjNDk3YmFjOWU5NWIwZGU4NzE3YTA3MDA3Li42ZWI1MjZiN2IzNTdhZTll
YTE3ZmNhODExOGUzYTE3MTE5Nzg3YWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMC0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENvbXBhY3QgSklUQ29kZU1hcCBieSBzdHJvaW5nIEJ5dGVjb2Rl
SW5kZXggYW5kIENvZGVMb2NhdGlvbiBzZXBhcmF0ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBCeXRlY29kZUluZGV4IGlzIDQgYnl0ZXMs
IENvZGVMb2NhdGlvbiBpcyA4IGJ5dGVzLiBTbyB0aGUgdHVwbGUgb2YgdGhlbSAiSklUQ29kZU1h
cDo6RW50cnkiCisgICAgICAgIGJlY29tZXMgMTYgYnl0ZXMgYmVjYXVzZSBpdCBhZGRzIDQgYnl0
ZXMgcGFkZGluZy4gV2Ugc2hvdWxkIHN0b3JlIEJ5dGVjb2RlSW5kZXggYW5kIENvZGVMb2NhdGlv
biBzZXBhcmF0ZWx5CisgICAgICAgIHRvIGF2b2lkIHRoaXMgcGFkZGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgSklUQ29kZU1hcEJ1aWxkZXIuIFdlIHVzZSB0aGlzIHRvIGJ1
aWxkIEpJVENvZGVNYXAgZGF0YSBzdHJ1Y3R1cmUgYXMgYSBpbW11dGFibGUgZmluYWwgcmVzdWx0
LgorCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6Cisg
ICAgICAgICogaml0L0pJVENvZGVNYXAuaDoKKyAgICAgICAgKEpTQzo6SklUQ29kZU1hcDo6SklU
Q29kZU1hcCk6CisgICAgICAgIChKU0M6OkpJVENvZGVNYXA6OmZpbmQgY29uc3QpOgorICAgICAg
ICAoSlNDOjpKSVRDb2RlTWFwOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
SklUQ29kZU1hcDo6Y29kZUxvY2F0aW9ucyBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVENvZGVN
YXA6OmluZGV4ZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpKSVRDb2RlTWFwQnVpbGRlcjo6YXBw
ZW5kKToKKyAgICAgICAgKEpTQzo6SklUQ29kZU1hcEJ1aWxkZXI6OmZpbmFsaXplKToKKyAgICAg
ICAgKEpTQzo6SklUQ29kZU1hcDo6RW50cnk6OkVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SklUQ29kZU1hcDo6RW50cnk6OmJ5dGVjb2RlSW5kZXggY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKSVRDb2RlTWFwOjpFbnRyeTo6Y29kZUxvY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SklUQ29kZU1hcDo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SklUQ29kZU1hcDo6ZmluaXNoKTogRGVsZXRlZC4KKwogMjAyMC0wMi0xMiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQ1NTX0RFVklDRV9B
REFQVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IGZjZjMzYjJmZWQ5YWQ2Yjg0N2RhYTQwNTM4NGM1Y2MzMGVkNmZmNmMu
Ljk4NTE2MmI0ODY5M2MzYTY0YzRkNTVmZTc3NWIyMzNlODNlMTRmM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDItMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBDb21wYWN0IEpJVENvZGVNYXAgYnkgc3Ryb2luZyBCeXRlY29kZUluZGV4
IGFuZCBDb2RlTG9jYXRpb24gc2VwYXJhdGVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFsbG9jUHRyLmg6CisKIDIwMjAtMDItMTIgIFJ5
YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA2ODcx
MWNlNWRkNzMwNWQ5NmMxZjAxNmZiMjI3YzZiYjVmYWEzOGRiLi4wOTFjNGY3ODJhMDc4NGZjNDUy
NWVkMjA3OTY5Y2QxYjc4NzQ0ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC05
MTIsMTMgKzkxMiwxNCBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OmxpbmsoKQogICAgICAgICAg
ICAgcGF0Y2hCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KGNvbXBp
bGF0aW9uSW5mby5ob3RQYXRoT3RoZXIpKTsKICAgICB9CiAKLSAgICBKSVRDb2RlTWFwIGppdENv
ZGVNYXA7Ci0gICAgZm9yICh1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IDA7IGJ5dGVjb2RlT2Zm
c2V0IDwgbV9sYWJlbHMuc2l6ZSgpOyArK2J5dGVjb2RlT2Zmc2V0KSB7Ci0gICAgICAgIGlmICht
X2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQoKSkKLSAgICAgICAgICAgIGppdENvZGVNYXAu
YXBwZW5kKEJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVPZmZzZXQpLCBwYXRjaEJ1ZmZlci5sb2NhdGlv
bk9mPEpTRW50cnlQdHJUYWc+KG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOworICAgIHsKKyAg
ICAgICAgSklUQ29kZU1hcEJ1aWxkZXIgaml0Q29kZU1hcEJ1aWxkZXI7CisgICAgICAgIGZvciAo
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNp
emUoKTsgKytieXRlY29kZU9mZnNldCkgeworICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVj
b2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAgICAgIGppdENvZGVNYXBCdWlsZGVyLmFw
cGVuZChCeXRlY29kZUluZGV4KGJ5dGVjb2RlT2Zmc2V0KSwgcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZjxKU0VudHJ5UHRyVGFnPihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsKKyAgICAgICAgfQor
ICAgICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwQnVpbGRlci5maW5h
bGl6ZSgpKTsKICAgICB9Ci0gICAgaml0Q29kZU1hcC5maW5pc2goKTsKLSAgICBtX2NvZGVCbG9j
ay0+c2V0SklUQ29kZU1hcChXVEZNb3ZlKGppdENvZGVNYXApKTsKIAogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjayA9IHBhdGNoQnVmZmVyLmxv
Y2F0aW9uT2Y8SlNFbnRyeVB0clRhZz4obV9hcml0eUNoZWNrKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvZGVNYXAuaAppbmRleCBlMDc1NzI0ZjlkZmU4YmQ0OTVjMjEzZDRjNWYxYjIx
ZjVlMWJjNDY3Li5jYWUzMzBlZTdlODZkNTA3MTI4M2FhMjVjZGY1Y2FlNTY4YWQ4Y2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGVNYXAuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGVNYXAuaApAQCAtMzQsNDcgKzM0LDYyIEBACiBu
YW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSklUQ29kZU1hcCB7Ci1wcml2YXRlOgotICAgIHN0cnVj
dCBFbnRyeSB7Ci0gICAgICAgIEVudHJ5KCkgeyB9CitwdWJsaWM6CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGVfdjxCeXRlY29kZUluZGV4Pik7CisgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGVfdjxDb2RlTG9jYXRp
b25MYWJlbDxKU0VudHJ5UHRyVGFnPj4pOworICAgIEpJVENvZGVNYXAoKSA9IGRlZmF1bHQ7Cisg
ICAgSklUQ29kZU1hcChWZWN0b3I8Qnl0ZWNvZGVJbmRleD4mJiBpbmRleGVzLCBWZWN0b3I8Q29k
ZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4+JiYgY29kZUxvY2F0aW9ucykKKyAgICAgICAg
OiBtX3NpemUoaW5kZXhlcy5zaXplKCkpCisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXhlcy5z
aXplKCkgPT0gY29kZUxvY2F0aW9ucy5zaXplKCkpOworICAgICAgICBtX3BvaW50ZXIgPSBNYWxs
b2NQdHI8dWludDhfdD46Om1hbGxvYyhzaXplb2YoQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0
clRhZz4pICogbV9zaXplICsgc2l6ZW9mKEJ5dGVjb2RlSW5kZXgpICogbV9zaXplKTsKKyAgICAg
ICAgc3RkOjpjb3B5KGNvZGVMb2NhdGlvbnMuYmVnaW4oKSwgY29kZUxvY2F0aW9ucy5lbmQoKSwg
dGhpcy0+Y29kZUxvY2F0aW9ucygpKTsKKyAgICAgICAgc3RkOjpjb3B5KGluZGV4ZXMuYmVnaW4o
KSwgaW5kZXhlcy5lbmQoKSwgdGhpcy0+aW5kZXhlcygpKTsKKyAgICB9CisKKyAgICBDb2RlTG9j
YXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBmaW5kKEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRl
eCkgY29uc3QKKyAgICB7CisgICAgICAgIGF1dG8qIGluZGV4ID0gYmluYXJ5U2VhcmNoPEJ5dGVj
b2RlSW5kZXgsIEJ5dGVjb2RlSW5kZXg+KGluZGV4ZXMoKSwgbV9zaXplLCBieXRlY29kZUluZGV4
LCBbXSAoQnl0ZWNvZGVJbmRleCogaW5kZXgpIHsgcmV0dXJuICppbmRleDsgfSk7CisgICAgICAg
IGlmICghaW5kZXgpCisgICAgICAgICAgICByZXR1cm4gQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRy
eVB0clRhZz4oKTsKKyAgICAgICAgcmV0dXJuIGNvZGVMb2NhdGlvbnMoKVtpbmRleCAtIGluZGV4
ZXMoKV07CisgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQogCi0gICAgICAgIEVudHJ5KEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRl
eCwgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gY29kZUxvY2F0aW9uKQotICAgICAg
ICAgICAgOiBtX2J5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKLSAgICAgICAgICAgICwgbV9j
b2RlTG9jYXRpb24oY29kZUxvY2F0aW9uKQotICAgICAgICB7IH0KK3ByaXZhdGU6CisgICAgQ29k
ZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4qIGNvZGVMb2NhdGlvbnMoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5
UHRyVGFnPio+KG1fcG9pbnRlci5nZXQoKSk7CisgICAgfQogCi0gICAgICAgIGlubGluZSBCeXRl
Y29kZUluZGV4IGJ5dGVjb2RlSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlSW5kZXg7
IH0KLSAgICAgICAgaW5saW5lIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGNvZGVM
b2NhdGlvbigpIHsgcmV0dXJuIG1fY29kZUxvY2F0aW9uOyB9CisgICAgQnl0ZWNvZGVJbmRleCog
aW5kZXhlcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEJ5dGVj
b2RlSW5kZXgqPihtX3BvaW50ZXIuZ2V0KCkgKyBzaXplb2YoQ29kZUxvY2F0aW9uTGFiZWw8SlNF
bnRyeVB0clRhZz4pICogbV9zaXplKTsKKyAgICB9CiAKLSAgICBwcml2YXRlOgotICAgICAgICBC
eXRlY29kZUluZGV4IG1fYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8
SlNFbnRyeVB0clRhZz4gbV9jb2RlTG9jYXRpb247Ci0gICAgfTsKKyAgICBNYWxsb2NQdHI8dWlu
dDhfdD4gbV9wb2ludGVyOworICAgIHVuc2lnbmVkIG1fc2l6ZSB7IDAgfTsKK307CiAKK2NsYXNz
IEpJVENvZGVNYXBCdWlsZGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKSVRDb2RlTWFw
QnVpbGRlcik7CiBwdWJsaWM6CisgICAgSklUQ29kZU1hcEJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAg
ICAgdm9pZCBhcHBlbmQoQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25M
YWJlbDxKU0VudHJ5UHRyVGFnPiBjb2RlTG9jYXRpb24pCiAgICAgewotICAgICAgICBtX2VudHJp
ZXMuYXBwZW5kKHsgYnl0ZWNvZGVJbmRleCwgY29kZUxvY2F0aW9uIH0pOworICAgICAgICBtX2lu
ZGV4ZXMuYXBwZW5kKGJ5dGVjb2RlSW5kZXgpOworICAgICAgICBtX2NvZGVMb2NhdGlvbnMuYXBw
ZW5kKGNvZGVMb2NhdGlvbik7CiAgICAgfQogCi0gICAgdm9pZCBmaW5pc2goKSB7IG1fZW50cmll
cy5zaHJpbmtUb0ZpdCgpOyB9Ci0KLSAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFn
PiBmaW5kKEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCkgY29uc3QKKyAgICBKSVRDb2RlTWFw
IGZpbmFsaXplKCkKICAgICB7Ci0gICAgICAgIGF1dG8qIGVudHJ5ID0KLSAgICAgICAgICAgIGJp
bmFyeVNlYXJjaDxFbnRyeSwgQnl0ZWNvZGVJbmRleD4obV9lbnRyaWVzLAotICAgICAgICAgICAg
ICAgIG1fZW50cmllcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIFtdIChFbnRyeSogZW50cnkpIHsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LT5ieXRlY29kZUluZGV4KCk7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIGlmICghZW50cnkpCi0gICAgICAgICAgICByZXR1cm4g
Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oKTsKLSAgICAgICAgcmV0dXJuIGVudHJ5
LT5jb2RlTG9jYXRpb24oKTsKKyAgICAgICAgcmV0dXJuIEpJVENvZGVNYXAoV1RGTW92ZShtX2lu
ZGV4ZXMpLCBXVEZNb3ZlKG1fY29kZUxvY2F0aW9ucykpOwogICAgIH0KIAotICAgIGV4cGxpY2l0
IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2VudHJpZXMuc2l6ZSgpOyB9Ci0KIHBy
aXZhdGU6Ci0gICAgVmVjdG9yPEVudHJ5PiBtX2VudHJpZXM7CisgICAgVmVjdG9yPEJ5dGVjb2Rl
SW5kZXg+IG1faW5kZXhlczsKKyAgICBWZWN0b3I8Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0
clRhZz4+IG1fY29kZUxvY2F0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQ
dHIuaAppbmRleCBmMWJiZTIzMzZhNDk4OTJlYWQ2YTkxYzNjNDQ1NzFjNWM3NWQ4MzBmLi4yY2Jk
ODYxZWZkZWMwNjEwNzc5YjhjNGU0ZGQ0NzEyY2M4YWU3ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9NYWxsb2NQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAvLyBNYWxsb2NQdHIgaXMgYSBzbWFy
dCBwb2ludGVyIGNsYXNzIHRoYXQgY2FsbHMgZmFzdEZyZWUgaW4gaXRzIGRlc3RydWN0b3IuCiAv
LyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciBwb2ludGVycyB3aGVyZSB0aGUgQysrIGxp
ZmV0aW1lIHNlbWFudGljcwpAQCAtMzQsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdURiB7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIE1hbGxvYyA9IEZhc3RNYWxsb2M+IGNsYXNzIE1h
bGxvY1B0ciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFsbG9jUHRyKTsKIHB1YmxpYzoK
ICAgICBNYWxsb2NQdHIoKSA9IGRlZmF1bHQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390605</attachid>
            <date>2020-02-12 18:05:57 -0800</date>
            <delta_ts>2020-02-12 18:08:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207673-20200212180557.patch</filename>
            <type>text/plain</type>
            <size>8035</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NDQ3NzVhOGJkOGUxZDRjNDk3YmFjOWU5NWIwZGU4NzE3YTA3MDA3Li4zMzlmZjM3YjMzNDUzNTA0
YjZhNzc5MDU0NWNlOWJlYWMzMzMyMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMC0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENvbXBhY3QgSklUQ29kZU1hcCBieSBzdHJvbmcgQnl0ZWNvZGVJ
bmRleCBhbmQgQ29kZUxvY2F0aW9uIHNlcGFyYXRlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzY3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIEJ5dGVjb2RlSW5kZXggaXMgNCBieXRlcywg
Q29kZUxvY2F0aW9uIGlzIDggYnl0ZXMuIFNvIHRoZSB0dXBsZSBvZiB0aGVtICJKSVRDb2RlTWFw
OjpFbnRyeSIKKyAgICAgICAgYmVjb21lcyAxNiBieXRlcyBiZWNhdXNlIGl0IGFkZHMgNCBieXRl
cyBwYWRkaW5nLiBXZSBzaG91bGQgc3RvcmUgQnl0ZWNvZGVJbmRleCBhbmQgQ29kZUxvY2F0aW9u
IHNlcGFyYXRlbHkKKyAgICAgICAgdG8gYXZvaWQgdGhpcyBwYWRkaW5nLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW50cm9kdWNlcyBKSVRDb2RlTWFwQnVpbGRlci4gV2UgdXNlIHRoaXMgdG8gYnVp
bGQgSklUQ29kZU1hcCBkYXRhIHN0cnVjdHVyZSBhcyBhIGltbXV0YWJsZSBmaW5hbCByZXN1bHQu
CisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpsaW5rKToKKyAg
ICAgICAgKiBqaXQvSklUQ29kZU1hcC5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlTWFwOjpKSVRD
b2RlTWFwKToKKyAgICAgICAgKEpTQzo6SklUQ29kZU1hcDo6ZmluZCBjb25zdCk6CisgICAgICAg
IChKU0M6OkpJVENvZGVNYXA6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoSlNDOjpK
SVRDb2RlTWFwOjpjb2RlTG9jYXRpb25zIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SklUQ29kZU1h
cDo6aW5kZXhlcyBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVENvZGVNYXBCdWlsZGVyOjphcHBl
bmQpOgorICAgICAgICAoSlNDOjpKSVRDb2RlTWFwQnVpbGRlcjo6ZmluYWxpemUpOgorICAgICAg
ICAoSlNDOjpKSVRDb2RlTWFwOjpFbnRyeTo6RW50cnkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKSVRDb2RlTWFwOjpFbnRyeTo6Ynl0ZWNvZGVJbmRleCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkpJVENvZGVNYXA6OkVudHJ5Ojpjb2RlTG9jYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKSVRDb2RlTWFwOjphcHBlbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpK
SVRDb2RlTWFwOjpmaW5pc2gpOiBEZWxldGVkLgorCiAyMDIwLTAyLTEyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBDU1NfREVWSUNFX0FE
QVBUQVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggZmNmMzNiMmZlZDlhZDZiODQ3ZGFhNDA1Mzg0YzVjYzMwZWQ2ZmY2Yy4u
MWFlZjUyMWExNTIxODNhYzFmZGE0NTE2YmRiZjMyODM1YmM3ODA2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIENvbXBhY3QgSklUQ29kZU1hcCBieSBzdHJvbmcgQnl0ZWNvZGVJbmRleCBh
bmQgQ29kZUxvY2F0aW9uIHNlcGFyYXRlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzY3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL01hbGxvY1B0ci5oOgorCiAyMDIwLTAyLTEyICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyNTYwMTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggNjg3MTFj
ZTVkZDczMDVkOTZjMWYwMTZmYjIyN2M2YmI1ZmFhMzhkYi4uMDkxYzRmNzgyYTA3ODRmYzQ1MjVl
ZDIwNzk2OWNkMWI3ODc0NGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtOTEy
LDEzICs5MTIsMTQgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpsaW5rKCkKICAgICAgICAgICAg
IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0ludGVybmFsUHRyVGFnPihjb21waWxh
dGlvbkluZm8uaG90UGF0aE90aGVyKSk7CiAgICAgfQogCi0gICAgSklUQ29kZU1hcCBqaXRDb2Rl
TWFwOwotICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNl
dCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9mZnNldCkgewotICAgICAgICBpZiAobV9s
YWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlzU2V0KCkpCi0gICAgICAgICAgICBqaXRDb2RlTWFwLmFw
cGVuZChCeXRlY29kZUluZGV4KGJ5dGVjb2RlT2Zmc2V0KSwgcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZjxKU0VudHJ5UHRyVGFnPihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsKKyAgICB7CisgICAg
ICAgIEpJVENvZGVNYXBCdWlsZGVyIGppdENvZGVNYXBCdWlsZGVyOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXpl
KCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAgICAgICAgICAgIGlmIChtX2xhYmVsc1tieXRlY29k
ZU9mZnNldF0uaXNTZXQoKSkKKyAgICAgICAgICAgICAgICBqaXRDb2RlTWFwQnVpbGRlci5hcHBl
bmQoQnl0ZWNvZGVJbmRleChieXRlY29kZU9mZnNldCksIHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Y8
SlNFbnRyeVB0clRhZz4obV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdKSk7CisgICAgICAgIH0KKyAg
ICAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGVNYXAoaml0Q29kZU1hcEJ1aWxkZXIuZmluYWxp
emUoKSk7CiAgICAgfQotICAgIGppdENvZGVNYXAuZmluaXNoKCk7Ci0gICAgbV9jb2RlQmxvY2st
PnNldEpJVENvZGVNYXAoV1RGTW92ZShqaXRDb2RlTWFwKSk7CiAKICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2sgPSBwYXRjaEJ1ZmZlci5sb2Nh
dGlvbk9mPEpTRW50cnlQdHJUYWc+KG1fYXJpdHlDaGVjayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZU1hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDb2RlTWFwLmgKaW5kZXggZTA3NTcyNGY5ZGZlOGJkNDk1YzIxM2Q0YzVmMWIyMWY1
ZTFiYzQ2Ny4uMTVjODI4YWNjODZiOTA2NjMyMzdkZmQ1OTZmNGFhZTIzODVhMzhmMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlTWFwLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlTWFwLmgKQEAgLTM0LDQ3ICszNCw2MyBAQAogbmFt
ZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpJVENvZGVNYXAgewotcHJpdmF0ZToKLSAgICBzdHJ1Y3Qg
RW50cnkgewotICAgICAgICBFbnRyeSgpIHsgfQorcHVibGljOgorICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlX3Y8Qnl0ZWNvZGVJbmRleD4pOworICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlX3Y8Q29kZUxvY2F0aW9u
TGFiZWw8SlNFbnRyeVB0clRhZz4+KTsKKyAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQ29kZUxv
Y2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4pID49IGFsaWdub2YoQnl0ZWNvZGVJbmRleCksICJQ
dXR0aW5nIENvZGVMb2NhdGlvbkxhYmVsIHZlY3RvciBmaXJzdCBzaW5jZSB3ZSBjYW4gYXZvaWQg
YWxpZ25tZW50IGNvbnNpZGVyYXRpb24gb2YgQnl0ZWNvZGVJbmRleCB2ZWN0b3IiKTsKKyAgICBK
SVRDb2RlTWFwKCkgPSBkZWZhdWx0OworICAgIEpJVENvZGVNYXAoVmVjdG9yPEJ5dGVjb2RlSW5k
ZXg+JiYgaW5kZXhlcywgVmVjdG9yPENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+PiYm
IGNvZGVMb2NhdGlvbnMpCisgICAgICAgIDogbV9zaXplKGluZGV4ZXMuc2l6ZSgpKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGluZGV4ZXMuc2l6ZSgpID09IGNvZGVMb2NhdGlvbnMuc2l6ZSgpKTsK
KyAgICAgICAgbV9wb2ludGVyID0gTWFsbG9jUHRyPHVpbnQ4X3Q+OjptYWxsb2Moc2l6ZW9mKENv
ZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KSAqIG1fc2l6ZSArIHNpemVvZihCeXRlY29k
ZUluZGV4KSAqIG1fc2l6ZSk7CisgICAgICAgIHN0ZDo6Y29weShjb2RlTG9jYXRpb25zLmJlZ2lu
KCksIGNvZGVMb2NhdGlvbnMuZW5kKCksIHRoaXMtPmNvZGVMb2NhdGlvbnMoKSk7CisgICAgICAg
IHN0ZDo6Y29weShpbmRleGVzLmJlZ2luKCksIGluZGV4ZXMuZW5kKCksIHRoaXMtPmluZGV4ZXMo
KSk7CisgICAgfQorCisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gZmluZChC
eXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICBhdXRvKiBp
bmRleCA9IGJpbmFyeVNlYXJjaDxCeXRlY29kZUluZGV4LCBCeXRlY29kZUluZGV4PihpbmRleGVz
KCksIG1fc2l6ZSwgYnl0ZWNvZGVJbmRleCwgW10gKEJ5dGVjb2RlSW5kZXgqIGluZGV4KSB7IHJl
dHVybiAqaW5kZXg7IH0pOworICAgICAgICBpZiAoIWluZGV4KQorICAgICAgICAgICAgcmV0dXJu
IENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KCk7CisgICAgICAgIHJldHVybiBjb2Rl
TG9jYXRpb25zKClbaW5kZXggLSBpbmRleGVzKCldOworICAgIH0KKworICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgICAgICBFbnRyeShC
eXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJU
YWc+IGNvZGVMb2NhdGlvbikKLSAgICAgICAgICAgIDogbV9ieXRlY29kZUluZGV4KGJ5dGVjb2Rl
SW5kZXgpCi0gICAgICAgICAgICAsIG1fY29kZUxvY2F0aW9uKGNvZGVMb2NhdGlvbikKLSAgICAg
ICAgeyB9Citwcml2YXRlOgorICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KiBj
b2RlTG9jYXRpb25zKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4qPihtX3BvaW50ZXIuZ2V0KCkpOworICAg
IH0KIAotICAgICAgICBpbmxpbmUgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4KCkgY29uc3Qg
eyByZXR1cm4gbV9ieXRlY29kZUluZGV4OyB9Ci0gICAgICAgIGlubGluZSBDb2RlTG9jYXRpb25M
YWJlbDxKU0VudHJ5UHRyVGFnPiBjb2RlTG9jYXRpb24oKSB7IHJldHVybiBtX2NvZGVMb2NhdGlv
bjsgfQorICAgIEJ5dGVjb2RlSW5kZXgqIGluZGV4ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxCeXRlY29kZUluZGV4Kj4obV9wb2ludGVyLmdldCgpICsgc2l6
ZW9mKENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KSAqIG1fc2l6ZSk7CisgICAgfQog
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgQnl0ZWNvZGVJbmRleCBtX2J5dGVjb2RlSW5kZXg7Ci0g
ICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IG1fY29kZUxvY2F0aW9uOwot
ICAgIH07CisgICAgTWFsbG9jUHRyPHVpbnQ4X3Q+IG1fcG9pbnRlcjsKKyAgICB1bnNpZ25lZCBt
X3NpemUgeyAwIH07Cit9OwogCitjbGFzcyBKSVRDb2RlTWFwQnVpbGRlciB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSklUQ29kZU1hcEJ1aWxkZXIpOwogcHVibGljOgorICAgIEpJVENvZGVN
YXBCdWlsZGVyKCkgPSBkZWZhdWx0OwogICAgIHZvaWQgYXBwZW5kKEJ5dGVjb2RlSW5kZXggYnl0
ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gY29kZUxvY2F0aW9u
KQogICAgIHsKLSAgICAgICAgbV9lbnRyaWVzLmFwcGVuZCh7IGJ5dGVjb2RlSW5kZXgsIGNvZGVM
b2NhdGlvbiB9KTsKKyAgICAgICAgbV9pbmRleGVzLmFwcGVuZChieXRlY29kZUluZGV4KTsKKyAg
ICAgICAgbV9jb2RlTG9jYXRpb25zLmFwcGVuZChjb2RlTG9jYXRpb24pOwogICAgIH0KIAotICAg
IHZvaWQgZmluaXNoKCkgeyBtX2VudHJpZXMuc2hyaW5rVG9GaXQoKTsgfQotCi0gICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gZmluZChCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5k
ZXgpIGNvbnN0CisgICAgSklUQ29kZU1hcCBmaW5hbGl6ZSgpCiAgICAgewotICAgICAgICBhdXRv
KiBlbnRyeSA9Ci0gICAgICAgICAgICBiaW5hcnlTZWFyY2g8RW50cnksIEJ5dGVjb2RlSW5kZXg+
KG1fZW50cmllcywKLSAgICAgICAgICAgICAgICBtX2VudHJpZXMuc2l6ZSgpLCBieXRlY29kZUlu
ZGV4LCBbXSAoRW50cnkqIGVudHJ5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRy
eS0+Ynl0ZWNvZGVJbmRleCgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICBpZiAoIWVu
dHJ5KQotICAgICAgICAgICAgcmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+
KCk7Ci0gICAgICAgIHJldHVybiBlbnRyeS0+Y29kZUxvY2F0aW9uKCk7CisgICAgICAgIHJldHVy
biBKSVRDb2RlTWFwKFdURk1vdmUobV9pbmRleGVzKSwgV1RGTW92ZShtX2NvZGVMb2NhdGlvbnMp
KTsKICAgICB9CiAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4g
bV9lbnRyaWVzLnNpemUoKTsgfQotCiBwcml2YXRlOgotICAgIFZlY3RvcjxFbnRyeT4gbV9lbnRy
aWVzOworICAgIFZlY3RvcjxCeXRlY29kZUluZGV4PiBtX2luZGV4ZXM7CisgICAgVmVjdG9yPENv
ZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+PiBtX2NvZGVMb2NhdGlvbnM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5o
IGIvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmgKaW5kZXggZjFiYmUyMzM2YTQ5ODkyZWFkNmE5
MWMzYzQ0NTcxYzVjNzVkODMwZi4uMmNiZDg2MWVmZGVjMDYxMDc3OWI4YzRlNGRkNDcxMmNjOGFl
N2Q5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmgKKysrIGIvU291cmNl
L1dURi93dGYvTWFsbG9jUHRyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IAogLy8gTWFsbG9jUHRyIGlzIGEgc21hcnQgcG9pbnRlciBjbGFzcyB0aGF0IGNhbGxzIGZhc3RG
cmVlIGluIGl0cyBkZXN0cnVjdG9yLgogLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3Ig
cG9pbnRlcnMgd2hlcmUgdGhlIEMrKyBsaWZldGltZSBzZW1hbnRpY3MKQEAgLTM0LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNYWxs
b2MgPSBGYXN0TWFsbG9jPiBjbGFzcyBNYWxsb2NQdHIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1hbGxvY1B0cik7CiBwdWJsaWM6CiAgICAgTWFsbG9jUHRyKCkgPSBkZWZhdWx0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390606</attachid>
            <date>2020-02-12 18:08:29 -0800</date>
            <delta_ts>2020-02-12 18:32:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207673-20200212180828.patch</filename>
            <type>text/plain</type>
            <size>8037</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NDQ3NzVhOGJkOGUxZDRjNDk3YmFjOWU5NWIwZGU4NzE3YTA3MDA3Li4xNzVmMWNkNDFjNGNkZDg2
MTE4MjRjNjVjOWExZjFlZTUxZGRmZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMC0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENvbXBhY3QgSklUQ29kZU1hcCBieSBzdG9yaW5nIEJ5dGVjb2Rl
SW5kZXggYW5kIENvZGVMb2NhdGlvbiBzZXBhcmF0ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBCeXRlY29kZUluZGV4IGlzIDQgYnl0ZXMs
IENvZGVMb2NhdGlvbiBpcyA4IGJ5dGVzLiBTbyB0aGUgdHVwbGUgb2YgdGhlbSAiSklUQ29kZU1h
cDo6RW50cnkiCisgICAgICAgIGJlY29tZXMgMTYgYnl0ZXMgYmVjYXVzZSBpdCBhZGRzIDQgYnl0
ZXMgcGFkZGluZy4gV2Ugc2hvdWxkIHN0b3JlIEJ5dGVjb2RlSW5kZXggYW5kIENvZGVMb2NhdGlv
biBzZXBhcmF0ZWx5CisgICAgICAgIHRvIGF2b2lkIHRoaXMgcGFkZGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgSklUQ29kZU1hcEJ1aWxkZXIuIFdlIHVzZSB0aGlzIHRvIGJ1
aWxkIEpJVENvZGVNYXAgZGF0YSBzdHJ1Y3R1cmUgYXMgYSBpbW11dGFibGUgZmluYWwgcmVzdWx0
LgorCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6bGluayk6Cisg
ICAgICAgICogaml0L0pJVENvZGVNYXAuaDoKKyAgICAgICAgKEpTQzo6SklUQ29kZU1hcDo6SklU
Q29kZU1hcCk6CisgICAgICAgIChKU0M6OkpJVENvZGVNYXA6OmZpbmQgY29uc3QpOgorICAgICAg
ICAoSlNDOjpKSVRDb2RlTWFwOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
SklUQ29kZU1hcDo6Y29kZUxvY2F0aW9ucyBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVENvZGVN
YXA6OmluZGV4ZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpKSVRDb2RlTWFwQnVpbGRlcjo6YXBw
ZW5kKToKKyAgICAgICAgKEpTQzo6SklUQ29kZU1hcEJ1aWxkZXI6OmZpbmFsaXplKToKKyAgICAg
ICAgKEpTQzo6SklUQ29kZU1hcDo6RW50cnk6OkVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SklUQ29kZU1hcDo6RW50cnk6OmJ5dGVjb2RlSW5kZXggY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKSVRDb2RlTWFwOjpFbnRyeTo6Y29kZUxvY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SklUQ29kZU1hcDo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SklUQ29kZU1hcDo6ZmluaXNoKTogRGVsZXRlZC4KKwogMjAyMC0wMi0xMiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQ1NTX0RFVklDRV9B
REFQVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IGZjZjMzYjJmZWQ5YWQ2Yjg0N2RhYTQwNTM4NGM1Y2MzMGVkNmZmNmMu
LmVkZjQ0ZTk1YmYxYTQxZjM5YTc2ZDAyMGExYTU3M2NmZGIwMDU2NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDItMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBDb21wYWN0IEpJVENvZGVNYXAgYnkgc3RvcmluZyBCeXRlY29kZUluZGV4
IGFuZCBDb2RlTG9jYXRpb24gc2VwYXJhdGVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFsbG9jUHRyLmg6CisKIDIwMjAtMDItMTIgIFJ5
YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA2ODcx
MWNlNWRkNzMwNWQ5NmMxZjAxNmZiMjI3YzZiYjVmYWEzOGRiLi4wOTFjNGY3ODJhMDc4NGZjNDUy
NWVkMjA3OTY5Y2QxYjc4NzQ0ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC05
MTIsMTMgKzkxMiwxNCBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OmxpbmsoKQogICAgICAgICAg
ICAgcGF0Y2hCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KGNvbXBp
bGF0aW9uSW5mby5ob3RQYXRoT3RoZXIpKTsKICAgICB9CiAKLSAgICBKSVRDb2RlTWFwIGppdENv
ZGVNYXA7Ci0gICAgZm9yICh1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IDA7IGJ5dGVjb2RlT2Zm
c2V0IDwgbV9sYWJlbHMuc2l6ZSgpOyArK2J5dGVjb2RlT2Zmc2V0KSB7Ci0gICAgICAgIGlmICht
X2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQoKSkKLSAgICAgICAgICAgIGppdENvZGVNYXAu
YXBwZW5kKEJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVPZmZzZXQpLCBwYXRjaEJ1ZmZlci5sb2NhdGlv
bk9mPEpTRW50cnlQdHJUYWc+KG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOworICAgIHsKKyAg
ICAgICAgSklUQ29kZU1hcEJ1aWxkZXIgaml0Q29kZU1hcEJ1aWxkZXI7CisgICAgICAgIGZvciAo
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNp
emUoKTsgKytieXRlY29kZU9mZnNldCkgeworICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVj
b2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAgICAgIGppdENvZGVNYXBCdWlsZGVyLmFw
cGVuZChCeXRlY29kZUluZGV4KGJ5dGVjb2RlT2Zmc2V0KSwgcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZjxKU0VudHJ5UHRyVGFnPihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsKKyAgICAgICAgfQor
ICAgICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwQnVpbGRlci5maW5h
bGl6ZSgpKTsKICAgICB9Ci0gICAgaml0Q29kZU1hcC5maW5pc2goKTsKLSAgICBtX2NvZGVCbG9j
ay0+c2V0SklUQ29kZU1hcChXVEZNb3ZlKGppdENvZGVNYXApKTsKIAogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjayA9IHBhdGNoQnVmZmVyLmxv
Y2F0aW9uT2Y8SlNFbnRyeVB0clRhZz4obV9hcml0eUNoZWNrKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvZGVNYXAuaAppbmRleCBlMDc1NzI0ZjlkZmU4YmQ0OTVjMjEzZDRjNWYxYjIx
ZjVlMWJjNDY3Li4xNWM4MjhhY2M4NmI5MDY2MzIzN2RmZDU5NmY0YWFlMjM4NWEzOGYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGVNYXAuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGVNYXAuaApAQCAtMzQsNDcgKzM0LDYzIEBACiBu
YW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSklUQ29kZU1hcCB7Ci1wcml2YXRlOgotICAgIHN0cnVj
dCBFbnRyeSB7Ci0gICAgICAgIEVudHJ5KCkgeyB9CitwdWJsaWM6CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGVfdjxCeXRlY29kZUluZGV4Pik7CisgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGVfdjxDb2RlTG9jYXRp
b25MYWJlbDxKU0VudHJ5UHRyVGFnPj4pOworICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihDb2Rl
TG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPikgPj0gYWxpZ25vZihCeXRlY29kZUluZGV4KSwg
IlB1dHRpbmcgQ29kZUxvY2F0aW9uTGFiZWwgdmVjdG9yIGZpcnN0IHNpbmNlIHdlIGNhbiBhdm9p
ZCBhbGlnbm1lbnQgY29uc2lkZXJhdGlvbiBvZiBCeXRlY29kZUluZGV4IHZlY3RvciIpOworICAg
IEpJVENvZGVNYXAoKSA9IGRlZmF1bHQ7CisgICAgSklUQ29kZU1hcChWZWN0b3I8Qnl0ZWNvZGVJ
bmRleD4mJiBpbmRleGVzLCBWZWN0b3I8Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4+
JiYgY29kZUxvY2F0aW9ucykKKyAgICAgICAgOiBtX3NpemUoaW5kZXhlcy5zaXplKCkpCisgICAg
eworICAgICAgICBBU1NFUlQoaW5kZXhlcy5zaXplKCkgPT0gY29kZUxvY2F0aW9ucy5zaXplKCkp
OworICAgICAgICBtX3BvaW50ZXIgPSBNYWxsb2NQdHI8dWludDhfdD46Om1hbGxvYyhzaXplb2Yo
Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4pICogbV9zaXplICsgc2l6ZW9mKEJ5dGVj
b2RlSW5kZXgpICogbV9zaXplKTsKKyAgICAgICAgc3RkOjpjb3B5KGNvZGVMb2NhdGlvbnMuYmVn
aW4oKSwgY29kZUxvY2F0aW9ucy5lbmQoKSwgdGhpcy0+Y29kZUxvY2F0aW9ucygpKTsKKyAgICAg
ICAgc3RkOjpjb3B5KGluZGV4ZXMuYmVnaW4oKSwgaW5kZXhlcy5lbmQoKSwgdGhpcy0+aW5kZXhl
cygpKTsKKyAgICB9CisKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBmaW5k
KEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIGF1dG8q
IGluZGV4ID0gYmluYXJ5U2VhcmNoPEJ5dGVjb2RlSW5kZXgsIEJ5dGVjb2RlSW5kZXg+KGluZGV4
ZXMoKSwgbV9zaXplLCBieXRlY29kZUluZGV4LCBbXSAoQnl0ZWNvZGVJbmRleCogaW5kZXgpIHsg
cmV0dXJuICppbmRleDsgfSk7CisgICAgICAgIGlmICghaW5kZXgpCisgICAgICAgICAgICByZXR1
cm4gQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oKTsKKyAgICAgICAgcmV0dXJuIGNv
ZGVMb2NhdGlvbnMoKVtpbmRleCAtIGluZGV4ZXMoKV07CisgICAgfQorCisgICAgZXhwbGljaXQg
b3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCi0gICAgICAgIEVudHJ5
KEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0
clRhZz4gY29kZUxvY2F0aW9uKQotICAgICAgICAgICAgOiBtX2J5dGVjb2RlSW5kZXgoYnl0ZWNv
ZGVJbmRleCkKLSAgICAgICAgICAgICwgbV9jb2RlTG9jYXRpb24oY29kZUxvY2F0aW9uKQotICAg
ICAgICB7IH0KK3ByaXZhdGU6CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4q
IGNvZGVMb2NhdGlvbnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPio+KG1fcG9pbnRlci5nZXQoKSk7Cisg
ICAgfQogCi0gICAgICAgIGlubGluZSBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgoKSBjb25z
dCB7IHJldHVybiBtX2J5dGVjb2RlSW5kZXg7IH0KLSAgICAgICAgaW5saW5lIENvZGVMb2NhdGlv
bkxhYmVsPEpTRW50cnlQdHJUYWc+IGNvZGVMb2NhdGlvbigpIHsgcmV0dXJuIG1fY29kZUxvY2F0
aW9uOyB9CisgICAgQnl0ZWNvZGVJbmRleCogaW5kZXhlcygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PEJ5dGVjb2RlSW5kZXgqPihtX3BvaW50ZXIuZ2V0KCkgKyBz
aXplb2YoQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4pICogbV9zaXplKTsKKyAgICB9
CiAKLSAgICBwcml2YXRlOgotICAgICAgICBCeXRlY29kZUluZGV4IG1fYnl0ZWNvZGVJbmRleDsK
LSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gbV9jb2RlTG9jYXRpb247
Ci0gICAgfTsKKyAgICBNYWxsb2NQdHI8dWludDhfdD4gbV9wb2ludGVyOworICAgIHVuc2lnbmVk
IG1fc2l6ZSB7IDAgfTsKK307CiAKK2NsYXNzIEpJVENvZGVNYXBCdWlsZGVyIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShKSVRDb2RlTWFwQnVpbGRlcik7CiBwdWJsaWM6CisgICAgSklUQ29k
ZU1hcEJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAgICAgdm9pZCBhcHBlbmQoQnl0ZWNvZGVJbmRleCBi
eXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBjb2RlTG9jYXRp
b24pCiAgICAgewotICAgICAgICBtX2VudHJpZXMuYXBwZW5kKHsgYnl0ZWNvZGVJbmRleCwgY29k
ZUxvY2F0aW9uIH0pOworICAgICAgICBtX2luZGV4ZXMuYXBwZW5kKGJ5dGVjb2RlSW5kZXgpOwor
ICAgICAgICBtX2NvZGVMb2NhdGlvbnMuYXBwZW5kKGNvZGVMb2NhdGlvbik7CiAgICAgfQogCi0g
ICAgdm9pZCBmaW5pc2goKSB7IG1fZW50cmllcy5zaHJpbmtUb0ZpdCgpOyB9Ci0KLSAgICBDb2Rl
TG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBmaW5kKEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJ
bmRleCkgY29uc3QKKyAgICBKSVRDb2RlTWFwIGZpbmFsaXplKCkKICAgICB7Ci0gICAgICAgIGF1
dG8qIGVudHJ5ID0KLSAgICAgICAgICAgIGJpbmFyeVNlYXJjaDxFbnRyeSwgQnl0ZWNvZGVJbmRl
eD4obV9lbnRyaWVzLAotICAgICAgICAgICAgICAgIG1fZW50cmllcy5zaXplKCksIGJ5dGVjb2Rl
SW5kZXgsIFtdIChFbnRyeSogZW50cnkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVu
dHJ5LT5ieXRlY29kZUluZGV4KCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIGlmICgh
ZW50cnkpCi0gICAgICAgICAgICByZXR1cm4gQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRh
Zz4oKTsKLSAgICAgICAgcmV0dXJuIGVudHJ5LT5jb2RlTG9jYXRpb24oKTsKKyAgICAgICAgcmV0
dXJuIEpJVENvZGVNYXAoV1RGTW92ZShtX2luZGV4ZXMpLCBXVEZNb3ZlKG1fY29kZUxvY2F0aW9u
cykpOwogICAgIH0KIAotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biBtX2VudHJpZXMuc2l6ZSgpOyB9Ci0KIHByaXZhdGU6Ci0gICAgVmVjdG9yPEVudHJ5PiBtX2Vu
dHJpZXM7CisgICAgVmVjdG9yPEJ5dGVjb2RlSW5kZXg+IG1faW5kZXhlczsKKyAgICBWZWN0b3I8
Q29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4+IG1fY29kZUxvY2F0aW9uczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFsbG9jUHRy
LmggYi9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaAppbmRleCBmMWJiZTIzMzZhNDk4OTJlYWQ2
YTkxYzNjNDQ1NzFjNWM3NWQ4MzBmLi4yY2JkODYxZWZkZWMwNjEwNzc5YjhjNGU0ZGQ0NzEyY2M4
YWU3ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9NYWxsb2NQdHIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogCiAvLyBNYWxsb2NQdHIgaXMgYSBzbWFydCBwb2ludGVyIGNsYXNzIHRoYXQgY2FsbHMgZmFz
dEZyZWUgaW4gaXRzIGRlc3RydWN0b3IuCiAvLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGZv
ciBwb2ludGVycyB3aGVyZSB0aGUgQysrIGxpZmV0aW1lIHNlbWFudGljcwpAQCAtMzQsNiArMzUs
NyBAQAogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIE1h
bGxvYyA9IEZhc3RNYWxsb2M+IGNsYXNzIE1hbGxvY1B0ciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTWFsbG9jUHRyKTsKIHB1YmxpYzoKICAgICBNYWxsb2NQdHIoKSA9IGRlZmF1bHQ7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>