<?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>185192</bug_id>
          
          <creation_ts>2018-05-02 02:59:19 -0700</creation_ts>
          <short_desc>[JSC] Add compareDouble and compareFloat for ARM64, X86, and X86_64</short_desc>
          <delta_ts>2018-05-02 18:03:31 -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>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419609</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 02:59:19 -0700</bug_when>
    <thetext>[JSC] Add compareDouble and compareFloat for ARM64, X86, and X86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419610</commentid>
    <comment_count>1</comment_count>
      <attachid>339294</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 03:01:29 -0700</bug_when>
    <thetext>Created attachment 339294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419612</commentid>
    <comment_count>2</comment_count>
      <attachid>339295</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 03:18:32 -0700</bug_when>
    <thetext>Created attachment 339295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419724</commentid>
    <comment_count>3</comment_count>
      <attachid>339295</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-02 10:42:08 -0700</bug_when>
    <thetext>Comment on attachment 339295
Patch

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

r=me

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:4162
&gt; +            return;

Let&apos;s make this a RELEASE_ASSERT_NOT_REACHED().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419953</commentid>
    <comment_count>4</comment_count>
      <attachid>339295</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 17:44:03 -0700</bug_when>
    <thetext>Comment on attachment 339295
Patch

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

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:4162
&gt;&gt; +            return;
&gt; 
&gt; Let&apos;s make this a RELEASE_ASSERT_NOT_REACHED().

Nice, fixed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419955</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 17:46:14 -0700</bug_when>
    <thetext>Committed r231285: &lt;https://trac.webkit.org/changeset/231285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419956</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-02 17:47:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/39927061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419966</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 18:03:31 -0700</bug_when>
    <thetext>Committed r231290: &lt;https://trac.webkit.org/changeset/231290&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339294</attachid>
            <date>2018-05-02 03:01:29 -0700</date>
            <delta_ts>2018-05-02 03:18:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185192-20180502190128.patch</filename>
            <type>text/plain</type>
            <size>18311</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YTExNjI3NDFhNGVhMDcyMTk5M2FjMmE0ZmNiMzAwYjk5MTBiNjNlLi5kYzUxMzk1ZGNiNzk4OTJh
N2FiZTVhNDg5MjY2OTAwNTVhYTg0MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOC0wNS0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgY29tcGFyZURvdWJsZSBhbmQgY29tcGFyZUZsb2F0
IGZvciBBUk02NCwgWDg2LCBhbmQgWDg2XzY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOb3cgT2JqZWN0LmlzIHN0YXJ0cyB1c2luZyBjb21wYXJlRG91
YmxlLiBTbyB3ZSB3b3VsZCBsaWtlIHRvIGhhdmUKKyAgICAgICAgZWZmaWNpZW50IGltcGxlbWVu
dGF0aW9uIGZvciBjb21wYXJlRG91YmxlIGFuZCBjb21wYXJlRmxvYXQgZm9yCisgICAgICAgIG1h
am9yIGFyY2hpdGVjdHVyZXMsIEFSTTY0LCBYODYsIGFuZCBYODZfNjQuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIGNvbXBhcmVEb3VibGUgYW5kIGNvbXBhcmVGbG9hdCBpbXBsZW1lbnRhdGlv
bnMgZm9yCisgICAgICAgIHRoZXNlIGFyY2hpdGVjdHVyZXMuIEFuZCBnZW5lcmljIGltcGxlbWVu
dGF0aW9uIGlzIG1vdmVkIHRvIGVhY2gKKyAgICAgICAgYXJjaGl0ZWN0dXJlJ3MgTWFjcm9Bc3Nl
bWJsZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgV2UgYWxzbyBhZGQgdGVzdHMgZm9yIHRo
ZW0gaW4gdGVzdG1hc20uIFRvIGltcGxlbWVudCB0aGlzIHRlc3QKKyAgICAgICAgZWFzaWx5LCB3
ZSBhbHNvIGFkZCBsb2FkRmxvYXQoVHJ1c3RlZEltbVB0ciwgRlBSZWdpc3RlcklEKSBmb3IgdGhl
CisgICAgICAgIG1ham9yIGFyY2hpdGVjdHVyZXMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmNvbXBhcmVEb3Vi
bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6Y29tcGFyZUZsb2F0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0Ojpjb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpmbG9hdGlu
Z1BvaW50Q29tcGFyZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29tcGFyZURvdWJsZSk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlck1JUFM6OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21t
b246OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bjo6Y29tcGFyZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246
OmZsb2F0aW5nUG9pbnRDb21wYXJlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3Bw
OgorICAgICAgICAoSlNDOjpmbG9hdE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6dGVzdENvbXBh
cmVGbG9hdCk6CisgICAgICAgIChKU0M6OnJ1bik6CisKIDIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIFNhbWVWYWx1
ZSBERkcgbm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlci5oCmluZGV4IDg2NzkyNjFmYjhlYjg4ODk4YzRkMDZlZTFjZDc4OWMxOWE4NzRjZmUu
LmUyM2U4MTU5NWQwODY1NzA3OWUwNWYzZTBmZTAwZTQ5N2RlNWVkY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTE0NjIsMjYg
KzE0NjIsNiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlckJh
c2UgewogICAgIC8vIFdlIHNob3VsZCBpbXBsZW1lbnQgdGhpcyB0aGUgcmlnaHQgd2F5IGV2ZW50
dWFsbHksIGJ1dCBmb3Igbm93LCBpdCdzIGZpbmUgYmVjYXVzZSBpdCBhcmlzZXMgc28KICAgICAv
LyBpbmZyZXF1ZW50bHkuCiAKLSNpZiAhQ1BVKFg4NikgJiYgIUNQVShYODZfNjQpCi0gICAgdm9p
ZCBjb21wYXJlRG91YmxlKERvdWJsZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwg
RlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtb3Zl
KFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7Ci0gICAgICAgIEp1bXAgZmFsc2VDYXNlID0gYnJhbmNo
RG91YmxlKGludmVydChjb25kKSwgbGVmdCwgcmlnaHQpOwotICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW0zMigxKSwgZGVzdCk7Ci0gICAgICAgIGZhbHNlQ2FzZS5saW5rKHRoaXMpOwotICAgIH0KLSNl
bmRpZgotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLSAgICB2b2lkIGNvbXBhcmVGbG9hdChEb3VibGVD
b25kaXRpb24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVn
aXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRlc3Qp
OwotICAgICAgICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaEZsb2F0KGludmVydChjb25kKSwgbGVm
dCwgcmlnaHQpOwotICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7Ci0gICAgICAg
IGZhbHNlQ2FzZS5saW5rKHRoaXMpOwotICAgIH0KLSNlbmRpZgotCiAgICAgdm9pZCBsZWEzMihB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGFkZDMyKFRy
dXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3MuYmFzZSwgZGVzdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5k
ZXggZTE0NGFjNGVjNzJlMjI3ZDA3MDA1NzBjODlkOTNmYzhhZWNkNTg1ZS4uMzZkNWNkZjEyMjJm
MWMwN2MxMWNlMDI0MjliNTlhOGQwN2M4ZjVjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtMTQzMiw2ICsxNDMyLDE0
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJs
ZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmptcChzdGF0
aWNfY2FzdDxBUk1Bc3NlbWJsZXI6OkNvbmRpdGlvbj4oY29uZCAmIH5Eb3VibGVDb25kaXRpb25N
YXNrKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGFyZURvdWJsZShEb3VibGVDb25kaXRpb24g
Y29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRlc3QpOworICAgICAg
ICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaERvdWJsZShpbnZlcnQoY29uZCksIGxlZnQsIHJpZ2h0
KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOworICAgICAgICBmYWxzZUNh
c2UubGluayh0aGlzKTsKKyAgICB9CisKICAgICAvLyBUcnVuY2F0ZXMgJ3NyYycgdG8gYW4gaW50
ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVzdWx0aW5nICdkZXN0Jy4KICAgICAvLyBJZiB0aGUgcmVz
dWx0IGlzIG5vdCByZXByZXNlbnRhYmxlIGFzIGEgMzIgYml0IHZhbHVlLCBicmFuY2guCiAgICAg
Ly8gTWF5IGFsc28gYnJhbmNoIGZvciBzb21lIHZhbHVlcyB0aGF0IGFyZSByZXByZXNlbnRhYmxl
IGluIDMyIGJpdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggYmJmMzhkYzliMTAyYmEwZGFlOGZmNzQwMTY1MDZk
OGUzYmMzMTIwOC4uOWM3MmM3ZmY3ZGI5MTYxOGRiMzcyZjBkNTRjMTUzNTRkNGZlYTNjZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKQEAgLTE2OTcsNiArMTY5NywyMCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTTY0
IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIHJl
dHVybiBqdW1wQWZ0ZXJGbG9hdGluZ1BvaW50Q29tcGFyZShjb25kKTsKICAgICB9CiAKKyAgICB2
b2lkIGNvbXBhcmVEb3VibGUoRG91YmxlQ29uZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBsZWZ0
LCBGUFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGZs
b2F0aW5nUG9pbnRDb21wYXJlKGNvbmQsIGxlZnQsIHJpZ2h0LCBkZXN0LCBbdGhpc10gKEZQUmVn
aXN0ZXJJRCBhcmcxLCBGUFJlZ2lzdGVySUQgYXJnMikgeworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuZmNtcDw2ND4oYXJnMSwgYXJnMik7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQg
Y29tcGFyZUZsb2F0KERvdWJsZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBS
ZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBmbG9hdGlu
Z1BvaW50Q29tcGFyZShjb25kLCBsZWZ0LCByaWdodCwgZGVzdCwgW3RoaXNdIChGUFJlZ2lzdGVy
SUQgYXJnMSwgRlBSZWdpc3RlcklEIGFyZzIpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmZj
bXA8MzI+KGFyZzEsIGFyZzIpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBKdW1wIGJyYW5j
aERvdWJsZU5vblplcm8oRlBSZWdpc3RlcklEIHJlZywgRlBSZWdpc3RlcklEKQogICAgIHsKICAg
ICAgICAgbV9hc3NlbWJsZXIuZmNtcF8wPDY0PihyZWcpOwpAQCAtMTg0OSw2ICsxODYzLDEyIEBA
IGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
cjxBc3NlbWJsZXI+IHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDMyPihkZXN0LCBhZGRyZXNz
LmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxvYXQo
VHJ1c3RlZEltbVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAg
IG1vdmVUb0NhY2hlZFJlZyhhZGRyZXNzLCBjYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIoKSk7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcjwzMj4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02
NFJlZ2lzdGVyczo6enIpOworICAgIH0KKwogICAgIHZvaWQgbW92ZURvdWJsZShGUFJlZ2lzdGVy
SUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmZt
b3Y8NjQ+KGRlc3QsIHNyYyk7CkBAIC00NDUzLDYgKzQ0NzMsMzEgQEAgY2xhc3MgTWFjcm9Bc3Nl
bWJsZXJBUk02NCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewog
ICAgICAgICByZXR1cm4gbWFrZUJyYW5jaChjb25kKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdGlvbj4KKyAgICB2b2lkIGZsb2F0aW5nUG9pbnRDb21wYXJlKERvdWJsZUNv
bmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdp
c3RlcklEIGRlc3QsIEZ1bmN0aW9uIGNvbXBhcmUpCisgICAgeworICAgICAgICBpZiAoY29uZCA9
PSBEb3VibGVOb3RFcXVhbCkgeworICAgICAgICAgICAgLy8gQ29uZGl0aW9uTkUgc2V0cyAxIGlm
IE5vdEVxdWFsICpvciogdW5vcmRlcmVkIC0gZm9yY2UgdGhlIHVub3JkZXJlZCBjYXNlcyBub3Qg
dG8gc2V0IDEuCisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7CisgICAg
ICAgICAgICBjb21wYXJlKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIEp1bXAgdW5vcmRlcmVk
ID0gbWFrZUJyYW5jaChBc3NlbWJsZXI6OkNvbmRpdGlvblZTKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmNzZXQ8MzI+KGRlc3QsIEFzc2VtYmxlcjo6Q29uZGl0aW9uTkUpOworICAgICAgICAg
ICAgdW5vcmRlcmVkLmxpbmsodGhpcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlRXF1YWxPclVub3JkZXJlZCkgeworICAgICAgICAg
ICAgLy8gQ29uZGl0aW9uRVEgc2V0cyAxIG9ubHkgaWYgRXF1YWwgLSBmb3JjZSB0aGUgdW5vcmRl
cmVkIGNhc2VzIHRvIHNldCAxIHRvby4KKyAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDEp
LCBkZXN0KTsKKyAgICAgICAgICAgIGNvbXBhcmUobGVmdCwgcmlnaHQpOworICAgICAgICAgICAg
SnVtcCB1bm9yZGVyZWQgPSBtYWtlQnJhbmNoKEFzc2VtYmxlcjo6Q29uZGl0aW9uVlMpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuY3NldDwzMj4oZGVzdCwgQXNzZW1ibGVyOjpDb25kaXRpb25F
USk7CisgICAgICAgICAgICB1bm9yZGVyZWQubGluayh0aGlzKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgbV9h
c3NlbWJsZXIuY3NldDwzMj4oZGVzdCwgQVJNNjRDb25kaXRpb24oY29uZCkpOworICAgIH0KKwog
ICAgIGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmgKaW5kZXggY2QxMDQ1OTBjNDk5ZjFkOTM0MjMyMmU0MjM5YzU3MmFhZWFmNmU0Yy4u
ODZkZDk1YWJiYTc1OTczM2NkMGFiNjRkOTk4MWVjZTNhMDhjODhmZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAg
LTExODYsNiArMTE4NiwxNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFi
c3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIHJldHVybiBtYWtlQnJh
bmNoKGNvbmQpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGFyZURvdWJsZShEb3VibGVDb25kaXRp
b24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRlc3QpOworICAg
ICAgICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaERvdWJsZShpbnZlcnQoY29uZCksIGxlZnQsIHJp
Z2h0KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOworICAgICAgICBmYWxz
ZUNhc2UubGluayh0aGlzKTsKKyAgICB9CisKICAgICBlbnVtIEJyYW5jaFRydW5jYXRlVHlwZSB7
IEJyYW5jaElmVHJ1bmNhdGVGYWlsZWQsIEJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsIH07CiAg
ICAgSnVtcCBicmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIoRlBSZWdpc3RlcklEIHNyYywgUmVn
aXN0ZXJJRCBkZXN0LCBCcmFuY2hUcnVuY2F0ZVR5cGUgYnJhbmNoVHlwZSA9IEJyYW5jaElmVHJ1
bmNhdGVGYWlsZWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggNTI0ZTU1MGMyODljODMxMDExZmMyMDdk
NzU0MzA5YzQyMGIwYjdiYi4uMDA0MjI2MGJlNzc2ZjRkOTBiOWIxYzU2OTcyODJhNzk2MDViODUy
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCkBAIC0zMjg0LDYgKzMyODQsMTQgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJN
SVBTIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAg
IHJldHVybiBKdW1wKCk7CiAgICAgfQogCisgICAgdm9pZCBjb21wYXJlRG91YmxlKERvdWJsZUNv
bmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdp
c3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7
CisgICAgICAgIEp1bXAgZmFsc2VDYXNlID0gYnJhbmNoRG91YmxlKGludmVydChjb25kKSwgbGVm
dCwgcmlnaHQpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7CisgICAgICAg
IGZhbHNlQ2FzZS5saW5rKHRoaXMpOworICAgIH0KKwogICAgIC8vIFRydW5jYXRlcyAnc3JjJyB0
byBhbiBpbnRlZ2VyLCBhbmQgcGxhY2VzIHRoZSByZXN1bHRpbmcgJ2Rlc3QnLgogICAgIC8vIElm
IHRoZSByZXN1bHQgaXMgbm90IHJlcHJlc2VudGFibGUgYXMgYSAzMiBiaXQgdmFsdWUsIGJyYW5j
aC4KICAgICBlbnVtIEJyYW5jaFRydW5jYXRlVHlwZSB7IEJyYW5jaElmVHJ1bmNhdGVGYWlsZWQs
IEJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggMWY0
M2Y0MDdlZjFkN2QzY2YzODhkMjM3NDYzZDU3NzdlYzI2Y2ZiMS4uYjUwMDdiMGQyYzQxYmE5YjVj
YjA2YmY4ZTA3OTA2Y2Q5MTkyN2NkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtMTQ1NSw2ICsx
NDU1LDEyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIDogcHVibGljIEFic3RyYWN0
TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX21y
KGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUsIGRlc3QpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZEZsb2F0KFRydXN0ZWRJbW1QdHIgYWRk
cmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtb3ZlKGFkZHJlc3MsIHNj
cmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgbG9hZEZsb2F0KHNjcmF0Y2hSZWdpc3RlcigpLCBk
ZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2Vu
dCgpKTsKQEAgLTIwMTYsNDQgKzIwMjIsMTggQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAogICAgIHZv
aWQgY29tcGFyZURvdWJsZShEb3VibGVDb25kaXRpb24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQs
IEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgaWYg
KGNvbmQgJiBEb3VibGVDb25kaXRpb25CaXRTcGVjaWFsKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
IShjb25kICYgRG91YmxlQ29uZGl0aW9uQml0SW52ZXJ0KSk7Ci0gICAgICAgICAgICBpZiAoY29u
ZCA9PSBEb3VibGVFcXVhbCkgewotICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KSB7
Ci0gICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIocmlnaHQsIGxlZnQp
OwotICAgICAgICAgICAgICAgICAgICBzZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlvbk5QLCBk
ZXN0KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCBkZXN0KTsKLSAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci51Y29taXNkX3JyKHJpZ2h0LCBsZWZ0KTsKLSAgICAgICAgICAgICAg
ICBKdW1wIGlzVW5vcmRlcmVkID0gbV9hc3NlbWJsZXIuanAoKTsKLSAgICAgICAgICAgICAgICBz
ZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkUsIGRlc3QpOwotICAgICAgICAgICAgICAgIGlz
VW5vcmRlcmVkLmxpbmsodGhpcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCkg
ewotICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIocmlnaHQsIGxlZnQpOwotICAgICAgICAgICAgICAg
ICAgICBzZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlvblAsIGRlc3QpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgbW92
ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnVj
b21pc2RfcnIocmlnaHQsIGxlZnQpOwotICAgICAgICAgICAgICAgIEp1bXAgaXNVbm9yZGVyZWQg
PSBtX2Fzc2VtYmxlci5qcCgpOwotICAgICAgICAgICAgICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6
Q29uZGl0aW9uTkUsIGRlc3QpOwotICAgICAgICAgICAgICAgIGlzVW5vcmRlcmVkLmxpbmsodGhp
cyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9CisgICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOworICAg
ICAgICBmbG9hdGluZ1BvaW50Q29tcGFyZShjb25kLCBsZWZ0LCByaWdodCwgZGVzdCwgW3RoaXNd
IChGUFJlZ2lzdGVySUQgYXJnMSwgRlBSZWdpc3RlcklEIGFyZzIpIHsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnVjb21pc2RfcnIoYXJnMSwgYXJnMik7CisgICAgICAgIH0pOworICAgIH0KIAot
ICAgICAgICBpZiAoY29uZCAmIERvdWJsZUNvbmRpdGlvbkJpdEludmVydCkKLSAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnVjb21pc2RfcnIobGVmdCwgcmlnaHQpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2Fzc2VtYmxlci51Y29taXNkX3JyKHJpZ2h0LCBsZWZ0KTsKLSAgICAgICAgc2V0
MzIoc3RhdGljX2Nhc3Q8WDg2QXNzZW1ibGVyOjpDb25kaXRpb24+KGNvbmQgJiB+RG91YmxlQ29u
ZGl0aW9uQml0cyksIGRlc3QpOworICAgIHZvaWQgY29tcGFyZUZsb2F0KERvdWJsZUNvbmRpdGlv
biBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklE
IGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKKyAgICAgICAg
ZmxvYXRpbmdQb2ludENvbXBhcmUoY29uZCwgbGVmdCwgcmlnaHQsIGRlc3QsIFt0aGlzXSAoRlBS
ZWdpc3RlcklEIGFyZzEsIEZQUmVnaXN0ZXJJRCBhcmcyKSB7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci51Y29taXNzX3JyKGFyZzEsIGFyZzIpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICAv
LyBUcnVuY2F0ZXMgJ3NyYycgdG8gYW4gaW50ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVzdWx0aW5n
ICdkZXN0Jy4KQEAgLTQxNDEsNiArNDEyMSw0OSBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbiA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewogICAgICAg
ICBza2lwTm9uWmVyb0Nhc2UubGluayh0aGlzKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jdGlvbj4KKyAgICB2b2lkIGZsb2F0aW5nUG9pbnRDb21wYXJlKERvdWJsZUNvbmRp
dGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3Rl
cklEIGRlc3QsIEZ1bmN0aW9uIGNvbXBhcmUpCisgICAgeworICAgICAgICBpZiAoY29uZCAmIERv
dWJsZUNvbmRpdGlvbkJpdFNwZWNpYWwpIHsKKyAgICAgICAgICAgIEFTU0VSVCghKGNvbmQgJiBE
b3VibGVDb25kaXRpb25CaXRJbnZlcnQpKTsKKyAgICAgICAgICAgIGlmIChjb25kID09IERvdWJs
ZUVxdWFsKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY29tcGFyZShyaWdodCwgbGVmdCk7CisgICAgICAgICAgICAgICAgICAgIHNl
dDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uTlAsIGRlc3QpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbW92ZShUcnVz
dGVkSW1tMzIoMCksIGRlc3QpOworICAgICAgICAgICAgICAgIGNvbXBhcmUocmlnaHQsIGxlZnQp
OworICAgICAgICAgICAgICAgIEp1bXAgaXNVbm9yZGVyZWQgPSBtX2Fzc2VtYmxlci5qcCgpOwor
ICAgICAgICAgICAgICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uRSwgZGVzdCk7Cisg
ICAgICAgICAgICAgICAgaXNVbm9yZGVyZWQubGluayh0aGlzKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVOb3RF
cXVhbE9yVW5vcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgY29tcGFyZShyaWdodCwgbGVmdCk7CisgICAgICAgICAgICAg
ICAgICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uUCwgZGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7CisgICAgICAgICAgICAgICAgY29tcGFyZShyaWdo
dCwgbGVmdCk7CisgICAgICAgICAgICAgICAgSnVtcCBpc1Vub3JkZXJlZCA9IG1fYXNzZW1ibGVy
LmpwKCk7CisgICAgICAgICAgICAgICAgc2V0MzIoWDg2QXNzZW1ibGVyOjpDb25kaXRpb25ORSwg
ZGVzdCk7CisgICAgICAgICAgICAgICAgaXNVbm9yZGVyZWQubGluayh0aGlzKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoY29uZCAmIERvdWJsZUNvbmRpdGlvbkJpdEludmVydCkKKyAg
ICAgICAgICAgIGNvbXBhcmUobGVmdCwgcmlnaHQpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBjb21wYXJlKHJpZ2h0LCBsZWZ0KTsKKyAgICAgICAgc2V0MzIoc3RhdGljX2Nhc3Q8WDg2QXNz
ZW1ibGVyOjpDb25kaXRpb24+KGNvbmQgJiB+RG91YmxlQ29uZGl0aW9uQml0cyksIGRlc3QpOwor
ICAgIH0KKwogICAgIEp1bXAganVtcEFmdGVyRmxvYXRpbmdQb2ludENvbXBhcmUoRG91YmxlQ29u
ZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBsZWZ0LCBGUFJlZ2lzdGVySUQgcmlnaHQpCiAgICAg
ewogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVFcXVhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCBlNGZlMTUzYmFmZjIzM2IzOTM4OTVl
NWQ3MDhlYjEyMjExMDZkODRjLi43ZmVmMmRiZTBlMmIwYzliYTVjY2I4MDE3MTlhYThiNDhiNmY5
ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNt
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApA
QCAtMjQ2LDYgKzI0NiwyNSBAQCBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gZG91YmxlT3BlcmFuZHMo
KQogfQogCiAKK3N0YXRpYyBWZWN0b3I8ZmxvYXQ+IGZsb2F0T3BlcmFuZHMoKQoreworICAgIHJl
dHVybiBWZWN0b3I8ZmxvYXQ+IHsKKyAgICAgICAgMCwKKyAgICAgICAgLTAsCisgICAgICAgIDEs
CisgICAgICAgIC0xLAorICAgICAgICA0MiwKKyAgICAgICAgLTQyLAorICAgICAgICBzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCksCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8
ZmxvYXQ+OjptaW4oKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Omxvd2Vz
dCgpLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCksCisg
ICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpLAorICAgICAgICAt
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCksCisgICAgfTsKK30KKworCiB2
b2lkIHRlc3RDb21wYXJlRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gY29u
ZGl0aW9uKQogewogICAgIGRvdWJsZSBhcmcxID0gMDsKQEAgLTI4Nyw2ICszMDYsNDggQEAgdm9p
ZCB0ZXN0Q29tcGFyZURvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRp
dGlvbikKICAgICB9CiB9CiAKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpCit2b2lkIHRlc3RDb21wYXJlRmxvYXQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlv
biBjb25kaXRpb24pCit7CisgICAgZmxvYXQgYXJnMSA9IDA7CisgICAgZmxvYXQgYXJnMiA9IDA7
CisKKyAgICBhdXRvIGNvbXBhcmVGbG9hdCA9IGNvbXBpbGUoWyYsIGNvbmRpdGlvbl0gKENDYWxs
SGVscGVycyYgaml0KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworCisg
ICAgICAgIGppdC5sb2FkRmxvYXQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcxKSwg
RlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgIGppdC5sb2FkRmxvYXQoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKCZhcmcyKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKC0xKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OworICAgICAgICBqaXQuY29tcGFyZUZsb2F0KGNvbmRpdGlvbiwgRlBSSW5mbzo6ZnBSZWdUMCwg
RlBSSW5mbzo6ZnBSZWdUMSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBqaXQucmV0KCk7CisgICAgfSk7CisK
KyAgICBhdXRvIGNvbXBhcmVGbG9hdEdlbmVyaWMgPSBjb21waWxlKFsmLCBjb25kaXRpb25dIChD
Q2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsK
KworICAgICAgICBqaXQubG9hZEZsb2F0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmYXJn
MSksIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBqaXQubG9hZEZsb2F0KENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICBhdXRvIGp1bXAgPSBqaXQuYnJhbmNoRmxvYXQoY29uZGl0aW9uLCBGUFJJ
bmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAg
ICAganVtcC5saW5rKCZqaXQpOworCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OworICAgICAgICBqaXQucmV0KCk7CisgICAgfSk7CisKKyAgICBhdXRvIG9wZXJhbmRzID0gZmxv
YXRPcGVyYW5kcygpOworICAgIGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKKyAgICAgICAgZm9y
IChhdXRvIGIgOiBvcGVyYW5kcykgeworICAgICAgICAgICAgYXJnMSA9IGE7CisgICAgICAgICAg
ICBhcmcyID0gYjsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVGbG9h
dCksIGludm9rZTxpbnQ+KGNvbXBhcmVGbG9hdEdlbmVyaWMpKTsKKyAgICAgICAgfQorICAgIH0K
K30KKyNlbmRpZgogCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiB2b2lkIHRlc3RQcm9iZVJlYWRz
QXJndW1lbnRSZWdpc3RlcnMoKQpAQCAtODYxLDYgKzkyMiwyMSBAQCB2b2lkIHJ1bihjb25zdCBj
aGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RDb21wYXJlRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpE
b3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkKSk7CiAgICAgUlVOKHRlc3RDb21wYXJlRG91YmxlKE1h
Y3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCkpOwogCisjaWYg
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQorICAgIFJVTih0ZXN0Q29tcGFy
ZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCkpOworICAgIFJVTih0ZXN0Q29tcGFy
ZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVhbCkpOworICAgIFJVTih0ZXN0Q29t
cGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbikpOworICAgIFJVTih0
ZXN0Q29tcGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwp
KTsKKyAgICBSVU4odGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1Ro
YW4pKTsKKyAgICBSVU4odGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVz
c1RoYW5PckVxdWFsKSk7CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQoTWFjcm9Bc3NlbWJsZXI6
OkRvdWJsZUVxdWFsT3JVbm9yZGVyZWQpKTsKKyAgICBSVU4odGVzdENvbXBhcmVGbG9hdChNYWNy
b0Fzc2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCkpOworICAgIFJVTih0ZXN0Q29t
cGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkKSk7
CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJU
aGFuT3JFcXVhbE9yVW5vcmRlcmVkKSk7CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQoTWFjcm9B
c3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JVbm9yZGVyZWQpKTsKKyAgICBSVU4odGVzdENvbXBh
cmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQp
KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgUlVOKHRlc3RQcm9iZVJl
YWRzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAgUlVOKHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50
UmVnaXN0ZXJzKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339295</attachid>
            <date>2018-05-02 03:18:32 -0700</date>
            <delta_ts>2018-05-02 10:42:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185192-20180502191831.patch</filename>
            <type>text/plain</type>
            <size>19555</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YTExNjI3NDFhNGVhMDcyMTk5M2FjMmE0ZmNiMzAwYjk5MTBiNjNlLi43NmQ2NjE1OWEyY2QxMDFj
ZjM5YjI1MThjNzk4ZTg2MDVlZGFmM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxOC0wNS0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgY29tcGFyZURvdWJsZSBhbmQgY29tcGFyZUZsb2F0
IGZvciBBUk02NCwgWDg2LCBhbmQgWDg2XzY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOb3cgT2JqZWN0LmlzIHN0YXJ0cyB1c2luZyBjb21wYXJlRG91
YmxlLiBTbyB3ZSB3b3VsZCBsaWtlIHRvIGhhdmUKKyAgICAgICAgZWZmaWNpZW50IGltcGxlbWVu
dGF0aW9uIGZvciBjb21wYXJlRG91YmxlIGFuZCBjb21wYXJlRmxvYXQgZm9yCisgICAgICAgIG1h
am9yIGFyY2hpdGVjdHVyZXMsIEFSTTY0LCBYODYsIGFuZCBYODZfNjQuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIGNvbXBhcmVEb3VibGUgYW5kIGNvbXBhcmVGbG9hdCBpbXBsZW1lbnRhdGlv
bnMgZm9yCisgICAgICAgIHRoZXNlIGFyY2hpdGVjdHVyZXMuIEFuZCBnZW5lcmljIGltcGxlbWVu
dGF0aW9uIGlzIG1vdmVkIHRvIGVhY2gKKyAgICAgICAgYXJjaGl0ZWN0dXJlJ3MgTWFjcm9Bc3Nl
bWJsZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgV2UgYWxzbyBhZGQgdGVzdHMgZm9yIHRo
ZW0gaW4gdGVzdG1hc20uIFRvIGltcGxlbWVudCB0aGlzIHRlc3QKKyAgICAgICAgZWFzaWx5LCB3
ZSBhbHNvIGFkZCBsb2FkRmxvYXQoVHJ1c3RlZEltbVB0ciwgRlBSZWdpc3RlcklEKSBmb3IgdGhl
CisgICAgICAgIG1ham9yIGFyY2hpdGVjdHVyZXMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmNvbXBhcmVEb3Vi
bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6Y29tcGFyZUZsb2F0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0Ojpjb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpmbG9hdGlu
Z1BvaW50Q29tcGFyZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29tcGFyZURvdWJsZSk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlck1JUFM6OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21t
b246OmNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bjo6Y29tcGFyZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246
OmZsb2F0aW5nUG9pbnRDb21wYXJlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVy
Lmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6bW92c3NfbXIpOgorICAgICAgICAoSlND
OjpYODZBc3NlbWJsZXI6Om1vdnNzX3JtKToKKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20u
Y3BwOgorICAgICAgICAoSlNDOjpmbG9hdE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6dGVzdENv
bXBhcmVGbG9hdCk6CisgICAgICAgIChKU0M6OnJ1bik6CisKIDIwMTgtMDUtMDEgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIFNhbWVW
YWx1ZSBERkcgbm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlci5oCmluZGV4IDg2NzkyNjFmYjhlYjg4ODk4YzRkMDZlZTFjZDc4OWMxOWE4NzRj
ZmUuLmUyM2U4MTU5NWQwODY1NzA3OWUwNWYzZTBmZTAwZTQ5N2RlNWVkY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTE0NjIs
MjYgKzE0NjIsNiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxl
ckJhc2UgewogICAgIC8vIFdlIHNob3VsZCBpbXBsZW1lbnQgdGhpcyB0aGUgcmlnaHQgd2F5IGV2
ZW50dWFsbHksIGJ1dCBmb3Igbm93LCBpdCdzIGZpbmUgYmVjYXVzZSBpdCBhcmlzZXMgc28KICAg
ICAvLyBpbmZyZXF1ZW50bHkuCiAKLSNpZiAhQ1BVKFg4NikgJiYgIUNQVShYODZfNjQpCi0gICAg
dm9pZCBjb21wYXJlRG91YmxlKERvdWJsZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVm
dCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBt
b3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7Ci0gICAgICAgIEp1bXAgZmFsc2VDYXNlID0gYnJh
bmNoRG91YmxlKGludmVydChjb25kKSwgbGVmdCwgcmlnaHQpOwotICAgICAgICBtb3ZlKFRydXN0
ZWRJbW0zMigxKSwgZGVzdCk7Ci0gICAgICAgIGZhbHNlQ2FzZS5saW5rKHRoaXMpOwotICAgIH0K
LSNlbmRpZgotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLSAgICB2b2lkIGNvbXBhcmVGbG9hdChEb3Vi
bGVDb25kaXRpb24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwg
UmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRl
c3QpOwotICAgICAgICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaEZsb2F0KGludmVydChjb25kKSwg
bGVmdCwgcmlnaHQpOwotICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7Ci0gICAg
ICAgIGZhbHNlQ2FzZS5saW5rKHRoaXMpOwotICAgIH0KLSNlbmRpZgotCiAgICAgdm9pZCBsZWEz
MihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGFkZDMy
KFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3MuYmFzZSwgZGVzdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgK
aW5kZXggZTE0NGFjNGVjNzJlMjI3ZDA3MDA1NzBjODlkOTNmYzhhZWNkNTg1ZS4uMzZkNWNkZjEy
MjJmMWMwN2MxMWNlMDI0MjliNTlhOGQwN2M4ZjVjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtMTQzMiw2ICsxNDMy
LDE0IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3Nl
bWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmptcChz
dGF0aWNfY2FzdDxBUk1Bc3NlbWJsZXI6OkNvbmRpdGlvbj4oY29uZCAmIH5Eb3VibGVDb25kaXRp
b25NYXNrKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGFyZURvdWJsZShEb3VibGVDb25kaXRp
b24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRlc3QpOworICAg
ICAgICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaERvdWJsZShpbnZlcnQoY29uZCksIGxlZnQsIHJp
Z2h0KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOworICAgICAgICBmYWxz
ZUNhc2UubGluayh0aGlzKTsKKyAgICB9CisKICAgICAvLyBUcnVuY2F0ZXMgJ3NyYycgdG8gYW4g
aW50ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVzdWx0aW5nICdkZXN0Jy4KICAgICAvLyBJZiB0aGUg
cmVzdWx0IGlzIG5vdCByZXByZXNlbnRhYmxlIGFzIGEgMzIgYml0IHZhbHVlLCBicmFuY2guCiAg
ICAgLy8gTWF5IGFsc28gYnJhbmNoIGZvciBzb21lIHZhbHVlcyB0aGF0IGFyZSByZXByZXNlbnRh
YmxlIGluIDMyIGJpdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggYmJmMzhkYzliMTAyYmEwZGFlOGZmNzQwMTY1
MDZkOGUzYmMzMTIwOC4uOWM3MmM3ZmY3ZGI5MTYxOGRiMzcyZjBkNTRjMTUzNTRkNGZlYTNjZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKQEAgLTE2OTcsNiArMTY5NywyMCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFS
TTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAg
IHJldHVybiBqdW1wQWZ0ZXJGbG9hdGluZ1BvaW50Q29tcGFyZShjb25kKTsKICAgICB9CiAKKyAg
ICB2b2lkIGNvbXBhcmVEb3VibGUoRG91YmxlQ29uZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBs
ZWZ0LCBGUFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAg
IGZsb2F0aW5nUG9pbnRDb21wYXJlKGNvbmQsIGxlZnQsIHJpZ2h0LCBkZXN0LCBbdGhpc10gKEZQ
UmVnaXN0ZXJJRCBhcmcxLCBGUFJlZ2lzdGVySUQgYXJnMikgeworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuZmNtcDw2ND4oYXJnMSwgYXJnMik7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZv
aWQgY29tcGFyZUZsb2F0KERvdWJsZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwg
RlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBmbG9h
dGluZ1BvaW50Q29tcGFyZShjb25kLCBsZWZ0LCByaWdodCwgZGVzdCwgW3RoaXNdIChGUFJlZ2lz
dGVySUQgYXJnMSwgRlBSZWdpc3RlcklEIGFyZzIpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmZjbXA8MzI+KGFyZzEsIGFyZzIpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBKdW1wIGJy
YW5jaERvdWJsZU5vblplcm8oRlBSZWdpc3RlcklEIHJlZywgRlBSZWdpc3RlcklEKQogICAgIHsK
ICAgICAgICAgbV9hc3NlbWJsZXIuZmNtcF8wPDY0PihyZWcpOwpAQCAtMTg0OSw2ICsxODYzLDEy
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDMyPihkZXN0LCBhZGRy
ZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxv
YXQoVHJ1c3RlZEltbVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIG1vdmVUb0NhY2hlZFJlZyhhZGRyZXNzLCBjYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIoKSk7
CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcjwzMj4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBB
Uk02NFJlZ2lzdGVyczo6enIpOworICAgIH0KKwogICAgIHZvaWQgbW92ZURvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LmZtb3Y8NjQ+KGRlc3QsIHNyYyk7CkBAIC00NDUzLDYgKzQ0NzMsMzEgQEAgY2xhc3MgTWFjcm9B
c3NlbWJsZXJBUk02NCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4g
ewogICAgICAgICByZXR1cm4gbWFrZUJyYW5jaChjb25kKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvbj4KKyAgICB2b2lkIGZsb2F0aW5nUG9pbnRDb21wYXJlKERvdWJs
ZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBS
ZWdpc3RlcklEIGRlc3QsIEZ1bmN0aW9uIGNvbXBhcmUpCisgICAgeworICAgICAgICBpZiAoY29u
ZCA9PSBEb3VibGVOb3RFcXVhbCkgeworICAgICAgICAgICAgLy8gQ29uZGl0aW9uTkUgc2V0cyAx
IGlmIE5vdEVxdWFsICpvciogdW5vcmRlcmVkIC0gZm9yY2UgdGhlIHVub3JkZXJlZCBjYXNlcyBu
b3QgdG8gc2V0IDEuCisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7Cisg
ICAgICAgICAgICBjb21wYXJlKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIEp1bXAgdW5vcmRl
cmVkID0gbWFrZUJyYW5jaChBc3NlbWJsZXI6OkNvbmRpdGlvblZTKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNzZXQ8MzI+KGRlc3QsIEFzc2VtYmxlcjo6Q29uZGl0aW9uTkUpOworICAgICAg
ICAgICAgdW5vcmRlcmVkLmxpbmsodGhpcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlRXF1YWxPclVub3JkZXJlZCkgeworICAgICAg
ICAgICAgLy8gQ29uZGl0aW9uRVEgc2V0cyAxIG9ubHkgaWYgRXF1YWwgLSBmb3JjZSB0aGUgdW5v
cmRlcmVkIGNhc2VzIHRvIHNldCAxIHRvby4KKyAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMy
KDEpLCBkZXN0KTsKKyAgICAgICAgICAgIGNvbXBhcmUobGVmdCwgcmlnaHQpOworICAgICAgICAg
ICAgSnVtcCB1bm9yZGVyZWQgPSBtYWtlQnJhbmNoKEFzc2VtYmxlcjo6Q29uZGl0aW9uVlMpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuY3NldDwzMj4oZGVzdCwgQXNzZW1ibGVyOjpDb25kaXRp
b25FUSk7CisgICAgICAgICAgICB1bm9yZGVyZWQubGluayh0aGlzKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAg
bV9hc3NlbWJsZXIuY3NldDwzMj4oZGVzdCwgQVJNNjRDb25kaXRpb24oY29uZCkpOworICAgIH0K
KwogICAgIGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRh
Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKaW5kZXggY2QxMDQ1OTBjNDk5ZjFkOTM0MjMyMmU0MjM5YzU3MmFhZWFmNmU0
Yy4uODZkZDk1YWJiYTc1OTczM2NkMGFiNjRkOTk4MWVjZTNhMDhjODhmZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgK
QEAgLTExODYsNiArMTE4NiwxNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGlj
IEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIHJldHVybiBtYWtl
QnJhbmNoKGNvbmQpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGFyZURvdWJsZShEb3VibGVDb25k
aXRpb24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMCksIGRlc3QpOwor
ICAgICAgICBKdW1wIGZhbHNlQ2FzZSA9IGJyYW5jaERvdWJsZShpbnZlcnQoY29uZCksIGxlZnQs
IHJpZ2h0KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOworICAgICAgICBm
YWxzZUNhc2UubGluayh0aGlzKTsKKyAgICB9CisKICAgICBlbnVtIEJyYW5jaFRydW5jYXRlVHlw
ZSB7IEJyYW5jaElmVHJ1bmNhdGVGYWlsZWQsIEJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsIH07
CiAgICAgSnVtcCBicmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIoRlBSZWdpc3RlcklEIHNyYywg
UmVnaXN0ZXJJRCBkZXN0LCBCcmFuY2hUcnVuY2F0ZVR5cGUgYnJhbmNoVHlwZSA9IEJyYW5jaElm
VHJ1bmNhdGVGYWlsZWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggNTI0ZTU1MGMyODljODMxMDExZmMy
MDdkNzU0MzA5YzQyMGIwYjdiYi4uMDA0MjI2MGJlNzc2ZjRkOTBiOWIxYzU2OTcyODJhNzk2MDVi
ODUyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCkBAIC0zMjg0LDYgKzMyODQsMTQgQEAgY2xhc3MgTWFjcm9Bc3NlbWJs
ZXJNSVBTIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAg
ICAgIHJldHVybiBKdW1wKCk7CiAgICAgfQogCisgICAgdm9pZCBjb21wYXJlRG91YmxlKERvdWJs
ZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVz
dCk7CisgICAgICAgIEp1bXAgZmFsc2VDYXNlID0gYnJhbmNoRG91YmxlKGludmVydChjb25kKSwg
bGVmdCwgcmlnaHQpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7CisgICAg
ICAgIGZhbHNlQ2FzZS5saW5rKHRoaXMpOworICAgIH0KKwogICAgIC8vIFRydW5jYXRlcyAnc3Jj
JyB0byBhbiBpbnRlZ2VyLCBhbmQgcGxhY2VzIHRoZSByZXN1bHRpbmcgJ2Rlc3QnLgogICAgIC8v
IElmIHRoZSByZXN1bHQgaXMgbm90IHJlcHJlc2VudGFibGUgYXMgYSAzMiBiaXQgdmFsdWUsIGJy
YW5jaC4KICAgICBlbnVtIEJyYW5jaFRydW5jYXRlVHlwZSB7IEJyYW5jaElmVHJ1bmNhdGVGYWls
ZWQsIEJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXgg
MWY0M2Y0MDdlZjFkN2QzY2YzODhkMjM3NDYzZDU3NzdlYzI2Y2ZiMS4uZTUxNzhmNjhkMTY3OWQ1
OTg0MTU3MjM0ODBjOTQyZDYyOThmN2Q3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtMTQ1NSw2
ICsxNDU1LDE3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIDogcHVibGljIEFic3Ry
YWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNk
X21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUsIGRlc3QpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZEZsb2F0KFRydXN0ZWRJbW1QdHIg
YWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworI2lmIENQVShYODYpCisgICAgICAg
IEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOworICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19tcihh
ZGRyZXNzLmFzUHRyKCksIGRlc3QpOworI2Vsc2UKKyAgICAgICAgbW92ZShhZGRyZXNzLCBzY3Jh
dGNoUmVnaXN0ZXIoKSk7CisgICAgICAgIGxvYWRGbG9hdChzY3JhdGNoUmVnaXN0ZXIoKSwgZGVz
dCk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNTU0Uy
UHJlc2VudCgpKTsKQEAgLTIwMTYsNDQgKzIwMjcsMTggQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAog
ICAgIHZvaWQgY29tcGFyZURvdWJsZShEb3VibGVDb25kaXRpb24gY29uZCwgRlBSZWdpc3RlcklE
IGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgaWYgKGNvbmQgJiBEb3VibGVDb25kaXRpb25CaXRTcGVjaWFsKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoIShjb25kICYgRG91YmxlQ29uZGl0aW9uQml0SW52ZXJ0KSk7Ci0gICAgICAgICAgICBp
ZiAoY29uZCA9PSBEb3VibGVFcXVhbCkgewotICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJp
Z2h0KSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIocmlnaHQs
IGxlZnQpOwotICAgICAgICAgICAgICAgICAgICBzZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlv
bk5QLCBkZXN0KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCBkZXN0KTsKLSAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci51Y29taXNkX3JyKHJpZ2h0LCBsZWZ0KTsKLSAgICAgICAg
ICAgICAgICBKdW1wIGlzVW5vcmRlcmVkID0gbV9hc3NlbWJsZXIuanAoKTsKLSAgICAgICAgICAg
ICAgICBzZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkUsIGRlc3QpOwotICAgICAgICAgICAg
ICAgIGlzVW5vcmRlcmVkLmxpbmsodGhpcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlTm90RXF1YWxPclVub3Jk
ZXJlZCkgewotICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIocmlnaHQsIGxlZnQpOwotICAgICAgICAg
ICAgICAgICAgICBzZXQzMihYODZBc3NlbWJsZXI6OkNvbmRpdGlvblAsIGRlc3QpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIGRlc3QpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnVjb21pc2RfcnIocmlnaHQsIGxlZnQpOwotICAgICAgICAgICAgICAgIEp1bXAgaXNVbm9y
ZGVyZWQgPSBtX2Fzc2VtYmxlci5qcCgpOwotICAgICAgICAgICAgICAgIHNldDMyKFg4NkFzc2Vt
Ymxlcjo6Q29uZGl0aW9uTkUsIGRlc3QpOwotICAgICAgICAgICAgICAgIGlzVW5vcmRlcmVkLmxp
bmsodGhpcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkp
OworICAgICAgICBmbG9hdGluZ1BvaW50Q29tcGFyZShjb25kLCBsZWZ0LCByaWdodCwgZGVzdCwg
W3RoaXNdIChGUFJlZ2lzdGVySUQgYXJnMSwgRlBSZWdpc3RlcklEIGFyZzIpIHsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIoYXJnMSwgYXJnMik7CisgICAgICAgIH0pOworICAg
IH0KIAotICAgICAgICBpZiAoY29uZCAmIERvdWJsZUNvbmRpdGlvbkJpdEludmVydCkKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIobGVmdCwgcmlnaHQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci51Y29taXNkX3JyKHJpZ2h0LCBsZWZ0KTsKLSAgICAg
ICAgc2V0MzIoc3RhdGljX2Nhc3Q8WDg2QXNzZW1ibGVyOjpDb25kaXRpb24+KGNvbmQgJiB+RG91
YmxlQ29uZGl0aW9uQml0cyksIGRlc3QpOworICAgIHZvaWQgY29tcGFyZUZsb2F0KERvdWJsZUNv
bmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdp
c3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKKyAg
ICAgICAgZmxvYXRpbmdQb2ludENvbXBhcmUoY29uZCwgbGVmdCwgcmlnaHQsIGRlc3QsIFt0aGlz
XSAoRlBSZWdpc3RlcklEIGFyZzEsIEZQUmVnaXN0ZXJJRCBhcmcyKSB7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci51Y29taXNzX3JyKGFyZzEsIGFyZzIpOworICAgICAgICB9KTsKICAgICB9CiAK
ICAgICAvLyBUcnVuY2F0ZXMgJ3NyYycgdG8gYW4gaW50ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVz
dWx0aW5nICdkZXN0Jy4KQEAgLTQxNDEsNiArNDEyNiw0OSBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbiA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewog
ICAgICAgICBza2lwTm9uWmVyb0Nhc2UubGluayh0aGlzKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvbj4KKyAgICB2b2lkIGZsb2F0aW5nUG9pbnRDb21wYXJlKERvdWJs
ZUNvbmRpdGlvbiBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBS
ZWdpc3RlcklEIGRlc3QsIEZ1bmN0aW9uIGNvbXBhcmUpCisgICAgeworICAgICAgICBpZiAoY29u
ZCAmIERvdWJsZUNvbmRpdGlvbkJpdFNwZWNpYWwpIHsKKyAgICAgICAgICAgIEFTU0VSVCghKGNv
bmQgJiBEb3VibGVDb25kaXRpb25CaXRJbnZlcnQpKTsKKyAgICAgICAgICAgIGlmIChjb25kID09
IERvdWJsZUVxdWFsKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29tcGFyZShyaWdodCwgbGVmdCk7CisgICAgICAgICAgICAgICAg
ICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uTlAsIGRlc3QpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbW92
ZShUcnVzdGVkSW1tMzIoMCksIGRlc3QpOworICAgICAgICAgICAgICAgIGNvbXBhcmUocmlnaHQs
IGxlZnQpOworICAgICAgICAgICAgICAgIEp1bXAgaXNVbm9yZGVyZWQgPSBtX2Fzc2VtYmxlci5q
cCgpOworICAgICAgICAgICAgICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uRSwgZGVz
dCk7CisgICAgICAgICAgICAgICAgaXNVbm9yZGVyZWQubGluayh0aGlzKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY29uZCA9PSBEb3Vi
bGVOb3RFcXVhbE9yVW5vcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmln
aHQpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGFyZShyaWdodCwgbGVmdCk7CisgICAgICAg
ICAgICAgICAgICAgIHNldDMyKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uUCwgZGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgZGVzdCk7CisgICAgICAgICAgICAgICAgY29tcGFy
ZShyaWdodCwgbGVmdCk7CisgICAgICAgICAgICAgICAgSnVtcCBpc1Vub3JkZXJlZCA9IG1fYXNz
ZW1ibGVyLmpwKCk7CisgICAgICAgICAgICAgICAgc2V0MzIoWDg2QXNzZW1ibGVyOjpDb25kaXRp
b25ORSwgZGVzdCk7CisgICAgICAgICAgICAgICAgaXNVbm9yZGVyZWQubGluayh0aGlzKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29uZCAmIERvdWJsZUNvbmRpdGlvbkJpdEludmVy
dCkKKyAgICAgICAgICAgIGNvbXBhcmUobGVmdCwgcmlnaHQpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBjb21wYXJlKHJpZ2h0LCBsZWZ0KTsKKyAgICAgICAgc2V0MzIoc3RhdGljX2Nhc3Q8
WDg2QXNzZW1ibGVyOjpDb25kaXRpb24+KGNvbmQgJiB+RG91YmxlQ29uZGl0aW9uQml0cyksIGRl
c3QpOworICAgIH0KKwogICAgIEp1bXAganVtcEFmdGVyRmxvYXRpbmdQb2ludENvbXBhcmUoRG91
YmxlQ29uZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBsZWZ0LCBGUFJlZ2lzdGVySUQgcmlnaHQp
CiAgICAgewogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVFcXVhbCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNTFmYjMzMzRlOTMy
MGZlYjM2YjMxMDEwYzJjYjgxNDI0NWViMzYzOC4uMWVhN2E3NWVkOGZmMTFmMDQ0ZDlmY2E1MjRl
YWU4OTE3ODZjNzg2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCkBAIC0zMTYxLDYgKzMxNjEsMTYgQEAgY2xhc3MgWDg2QXNzZW1ibGVyIHsK
ICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwogICAgICAgICBtX2Zvcm1h
dHRlci50d29CeXRlT3BBZGRyKE9QMl9NT1ZTRF9Xc2RWc2QsIChSZWdpc3RlcklEKXNyYywgYml0
d2lzZV9jYXN0PHVpbnQzMl90PihhZGRyZXNzKSk7CiAgICAgfQorICAgIHZvaWQgbW92c3NfbXIo
Y29uc3Qgdm9pZCogYWRkcmVzcywgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBt
X2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NTRV9GMyk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5
dGVPcEFkZHIoT1AyX01PVlNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCBiaXR3aXNlX2Nhc3Q8
dWludDMyX3Q+KGFkZHJlc3MpKTsKKyAgICB9CisgICAgdm9pZCBtb3Zzc19ybShYTU1SZWdpc3Rl
cklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVy
LnByZWZpeChQUkVfU1NFX0YzKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wQWRkcihP
UDJfTU9WU0RfV3NkVnNkLCAoUmVnaXN0ZXJJRClzcmMsIGJpdHdpc2VfY2FzdDx1aW50MzJfdD4o
YWRkcmVzcykpOworICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCBtdWxzZF9ycihYTU1SZWdpc3Rl
cklEIHNyYywgWE1NUmVnaXN0ZXJJRCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IGU0ZmUxNTNiYWZmMjMzYjM5Mzg5NWU1ZDcwOGViMTIy
MTEwNmQ4NGMuLjdmZWYyZGJlMGUyYjBjOWJhNWNjYjgwMTcxOWFhOGI0OGI2ZjlmZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC0yNDYsNiAr
MjQ2LDI1IEBAIHN0YXRpYyBWZWN0b3I8ZG91YmxlPiBkb3VibGVPcGVyYW5kcygpCiB9CiAKIAor
c3RhdGljIFZlY3RvcjxmbG9hdD4gZmxvYXRPcGVyYW5kcygpCit7CisgICAgcmV0dXJuIFZlY3Rv
cjxmbG9hdD4geworICAgICAgICAwLAorICAgICAgICAtMCwKKyAgICAgICAgMSwKKyAgICAgICAg
LTEsCisgICAgICAgIDQyLAorICAgICAgICAtNDIsCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjptYXgoKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1p
bigpLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bG93ZXN0KCksCisgICAg
ICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4oKSwKKyAgICAgICAgc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCksCisgICAgICAgIC1zdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSwKKyAgICB9OworfQorCisKIHZvaWQgdGVzdENv
bXBhcmVEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiB7
CiAgICAgZG91YmxlIGFyZzEgPSAwOwpAQCAtMjg3LDYgKzMwNiw0OCBAQCB2b2lkIHRlc3RDb21w
YXJlRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uKQogICAg
IH0KIH0KIAorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKK3ZvaWQg
dGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRpdGlv
bikKK3sKKyAgICBmbG9hdCBhcmcxID0gMDsKKyAgICBmbG9hdCBhcmcyID0gMDsKKworICAgIGF1
dG8gY29tcGFyZUZsb2F0ID0gY29tcGlsZShbJiwgY29uZGl0aW9uXSAoQ0NhbGxIZWxwZXJzJiBq
aXQpIHsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisKKyAgICAgICAgaml0
LmxvYWRGbG9hdChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmFyZzEpLCBGUFJJbmZvOjpm
cFJlZ1QwKTsKKyAgICAgICAgaml0LmxvYWRGbG9hdChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJmFyZzIpLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoLTEpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAg
IGppdC5jb21wYXJlRmxvYXQoY29uZGl0aW9uLCBGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpm
cFJlZ1QxLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIGF1dG8g
Y29tcGFyZUZsb2F0R2VuZXJpYyA9IGNvbXBpbGUoWyYsIGNvbmRpdGlvbl0gKENDYWxsSGVscGVy
cyYgaml0KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworCisgICAgICAg
IGppdC5sb2FkRmxvYXQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcxKSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgIGppdC5sb2FkRmxvYXQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKCZhcmcyKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5tb3ZlKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgIGF1dG8ganVtcCA9IGppdC5icmFuY2hGbG9hdChjb25kaXRpb24sIEZQUkluZm86OmZwUmVn
VDAsIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBqdW1wLmxp
bmsoJmppdCk7CisKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAg
IGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIGF1dG8gb3BlcmFuZHMgPSBmbG9hdE9wZXJhbmRz
KCk7CisgICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykgeworICAgICAgICBmb3IgKGF1dG8gYiA6
IG9wZXJhbmRzKSB7CisgICAgICAgICAgICBhcmcxID0gYTsKKyAgICAgICAgICAgIGFyZzIgPSBi
OworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZUZsb2F0KSwgaW52b2tl
PGludD4oY29tcGFyZUZsb2F0R2VuZXJpYykpOworICAgICAgICB9CisgICAgfQorfQorI2VuZGlm
CiAKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJl
Z2lzdGVycygpCkBAIC04NjEsNiArOTIyLDIxIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRl
cikKICAgICBSVU4odGVzdENvbXBhcmVEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NU
aGFuT3JVbm9yZGVyZWQpKTsKICAgICBSVU4odGVzdENvbXBhcmVEb3VibGUoTWFjcm9Bc3NlbWJs
ZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkKSk7CiAKKyNpZiBDUFUoWDg2KSB8
fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQoTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZUVxdWFsKSk7CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQoTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsKSk7CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQo
TWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuKSk7CisgICAgUlVOKHRlc3RDb21wYXJl
RmxvYXQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCkpOworICAgIFJV
Tih0ZXN0Q29tcGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbikpOworICAg
IFJVTih0ZXN0Q29tcGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1
YWwpKTsKKyAgICBSVU4odGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1
YWxPclVub3JkZXJlZCkpOworICAgIFJVTih0ZXN0Q29tcGFyZUZsb2F0KE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKSk7CisgICAgUlVOKHRlc3RDb21wYXJlRmxvYXQo
TWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQpKTsKKyAgICBSVU4o
dGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW5PckVxdWFs
T3JVbm9yZGVyZWQpKTsKKyAgICBSVU4odGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6
RG91YmxlTGVzc1RoYW5PclVub3JkZXJlZCkpOworICAgIFJVTih0ZXN0Q29tcGFyZUZsb2F0KE1h
Y3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCkpOworI2VuZGlm
CisKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICBSVU4odGVzdFByb2JlUmVhZHNBcmd1bWVu
dFJlZ2lzdGVycygpKTsKICAgICBSVU4odGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMo
KSk7Cg==
</data>
<flag name="review"
          id="357532"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>