<?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>122903</bug_id>
          
          <creation_ts>2013-10-16 09:38:47 -0700</creation_ts>
          <short_desc>transition void cti_op_put_by_val* stubs to JIT operations</short_desc>
          <delta_ts>2013-10-16 23:25:33 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122287</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>buildbot</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940404</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 09:38:47 -0700</bug_when>
    <thetext>Transition cti_op_put_by_val and cti_op_put_by_val_generic to JIT Operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940558</commentid>
    <comment_count>1</comment_count>
      <attachid>214400</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 16:03:46 -0700</bug_when>
    <thetext>Created attachment 214400
Patch

The callOperation in emitSlow_op_put_by_val() for X86 materializes the arguments due to not having the needed 6 temporary registers needed to use the corresponding callOperation().  When we free up our call frame register as another temporary, we can eliminate this X86 only code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940561</commentid>
    <comment_count>2</comment_count>
      <attachid>214400</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-16 16:09:32 -0700</bug_when>
    <thetext>Comment on attachment 214400
Patch

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

r=me

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:544
&gt; +

Remove please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940564</commentid>
    <comment_count>3</comment_count>
      <attachid>214400</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-16 16:19:43 -0700</bug_when>
    <thetext>Comment on attachment 214400
Patch

Attachment 214400 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/4111395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940569</commentid>
    <comment_count>4</comment_count>
      <attachid>214400</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-16 16:32:52 -0700</bug_when>
    <thetext>Comment on attachment 214400
Patch

Attachment 214400 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/3482426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940585</commentid>
    <comment_count>5</comment_count>
      <attachid>214400</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-16 16:50:24 -0700</bug_when>
    <thetext>Comment on attachment 214400
Patch

Attachment 214400 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4107366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940599</commentid>
    <comment_count>6</comment_count>
      <attachid>214410</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 17:22:07 -0700</bug_when>
    <thetext>Created attachment 214410
Patch with fix for Release builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940610</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 18:22:53 -0700</bug_when>
    <thetext>Committed r157546: &lt;http://trac.webkit.org/changeset/157546&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214400</attachid>
            <date>2013-10-16 16:03:46 -0700</date>
            <delta_ts>2013-10-16 17:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>122903.patch</filename>
            <type>text/plain</type>
            <size>22810</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEzLTEwLTE2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIHRyYW5zaXRpb24gdm9pZCBjdGlfb3BfcHV0X2J5X3ZhbCogc3R1YnMgdG8gSklUIG9wZXJh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MjkwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRy
YW5zaXRpb25lZCBjdGlfb3BfcHV0X2J5X3ZhbCBhbmQgY3RpX29wX3B1dF9ieV92YWxfZ2VuZXJp
YyB0byBvcGVyYXRpb25QdXRCeVZhbCBhbmQKKyAgICAgICAgb3BlcmF0aW9uUHV0QnlWYWxHZW5l
cmljLgorCisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2Fs
bEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0
X2J5X3ZhbCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuaDoKKyAgICAgICAgKiBqaXQvSlNJbnRlcmZhY2VKSVQuaDoKKwogMjAxMy0xMC0xNiAg
SnVsaWVuIEJyaWFuY2VhdSAgPGpicmlhbmNlQGNpc2NvLmNvbT4KIAogICAgICAgICBSZW1vdmUg
dW51c2VkIEpJVDo6cmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlRm9yVHJhbXBvbGluZSBmdW5jdGlv
bi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNp
b24gMTU3NTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRkQ2Fs
bEFyZ3VtZW50KGFyZzQpOwogICAgIH0KIAotQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBH
UFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICByZXNldENhbGxBcmd1
bWVudHMoKTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyKTsKQEAgLTQ1Niw2ICs0NTYsMTggQEAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZQogICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNSk7CiAgICAgfQogCisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUsIEdQ
UlJlZyBhcmc2KQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAg
IGFkZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGFk
ZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0
KTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzUpOworICAgICAgICBhZGRDYWxsQXJndW1l
bnQoYXJnNik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBy
ZXNldENhbGxBcmd1bWVudHMoKTsKQEAgLTEyMzEsNiArMTI0MywxNCBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlCiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdSUFJlZyBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSBHUFJSZWcgYXJnNikKKyAgICB7
CisgICAgICAgIHBva2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAyKTsKKyAgICAgICAg
cG9rZShhcmc1LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDEpOworICAgICAgICBwb2tlKGFyZzQs
IFBPS0VfQVJHVU1FTlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVz
dGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBUcnVzdGVkSW1tMzIgYXJn
NikKICAgICB7CiAgICAgICAgIHBva2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAyKTsK
QEAgLTEyNTQsNiArMTI3NCwyMyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlCiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBh
cmczKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQ
UlJlZyBhcmc0LCBHUFJSZWcgYXJnNSBHUFJSZWcgYXJnNiwgR1JQUmVnIGFyZzcpCisgICAgewor
ICAgICAgICBwb2tlKGFyZzcsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMyk7CisgICAgICAgIHBv
a2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAyKTsKKyAgICAgICAgcG9rZShhcmc1LCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIDEpOworICAgICAgICBwb2tlKGFyZzQsIFBPS0VfQVJHVU1F
TlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJn
MywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1IEdQUlJlZyBhcmc2LCBHUlBSZWcgYXJnNykKKyAg
ICB7CisgICAgICAgIHBva2UoYXJnNywgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAzKTsKKyAgICAg
ICAgcG9rZShhcmc2LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDIpOworICAgICAgICBwb2tlKGFy
ZzUsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CisgICAgICAgIHBva2UoYXJnNCwgUE9LRV9B
UkdVTUVOVF9PRkZTRVQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgYXJnMyk7CisgICAgfQogI2VuZGlmIC8vIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJ
U1RFUlMgPT0gNAogCiAjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+PSA1CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE1NzUzMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTgwMyw2ICs4MDMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSSwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgU3RyaW5nSW1wbCopOwogI2VuZGlmCisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaSiwgUmVnaXN0ZXJJRCwgaW50MzJf
dCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBpbnQzMl90KTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMsIEluc3Ry
dWN0aW9uKik7CkBAIC04MjEsNiArODIyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpKLCBSZWdp
c3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWiwgY29u
c3QgSWRlbnRpZmllciosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKLCBS
ZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2VuZGlmCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTU3NTMwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwNiw2ICsyMDYsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9
CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0
ZXJJRCByZWdPcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgcmVnT3AzKTsKKyAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBK
X0pJVE9wZXJhdGlvbl9FSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgU3RyaW5n
SW1wbCogdWlkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVz
dGVkSW1tUHRyKHVpZCkpOwpAQCAtNTAwLDYgKzUwNiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIFJlZ2lz
dGVySUQgcmVnT3AxUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVn
T3AyUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9h
ZCwgUmVnaXN0ZXJJRCByZWdPcDNUYWcpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMy
QklUX0RVTU1ZX0FSRyByZWdPcDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJl
Z09wM1RhZyk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFU
YWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCwgaW50MzJfdCBvcDIpCiB7CiAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHJlZ09wMVBheWxvYWQs
IHJlZ09wMVRhZywgVHJ1c3RlZEltbTMyKG9wMikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNTc1MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIu
aCIKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCisjaW5jbHVkZSAiSklULmgiCiAj
aW5jbHVkZSAiSklUT3BlcmF0aW9uV3JhcHBlcnMuaCIKICNpbmNsdWRlICJKSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaC5oIgorI2luY2x1ZGUg
IlJlcGF0Y2hCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ3MSw2ICs0NzMsODkg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdAogICAgIGJhc2UtPnB1
dERpcmVjdCh2bSwgb2Zmc2V0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAorc3RhdGlj
IHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBK
U1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoTElLRUxZKHN1YnNj
cmlwdC5pc1VJbnQzMigpKSkgeworICAgICAgICB1aW50MzJfdCBpID0gc3Vic2NyaXB0LmFzVUlu
dDMyKCk7CisgICAgICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAg
SlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CisgICAgICAgICAgICBpZiAo
b2JqZWN0LT5jYW5TZXRJbmRleFF1aWNrbHkoaSkpCisgICAgICAgICAgICAgICAgb2JqZWN0LT5z
ZXRJbmRleFF1aWNrbHkoY2FsbEZyYW1lLT52bSgpLCBpLCB2YWx1ZSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG9i
amVjdCwgY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJp
Y3RNb2RlKCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJhc2VWYWx1ZS5wdXRCeUlu
ZGV4KGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpKTsKKyAgICB9IGVsc2UgaWYgKGlzTmFtZShzdWJzY3JpcHQpKSB7CisgICAgICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgp
KTsKKyAgICAgICAgYmFzZVZhbHVlLnB1dChjYWxsRnJhbWUsIGpzQ2FzdDxOYW1lSW5zdGFuY2Uq
PihzdWJzY3JpcHQuYXNDZWxsKCkpLT5wcml2YXRlTmFtZSgpLCB2YWx1ZSwgc2xvdCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eShjYWxsRnJhbWUsIHN1YnNjcmlw
dC50b1N0cmluZyhjYWxsRnJhbWUpLT52YWx1ZShjYWxsRnJhbWUpKTsKKyAgICAgICAgaWYgKCFj
YWxsRnJhbWUtPnZtKCkuZXhjZXB0aW9uKCkpIHsgLy8gRG9uJ3QgcHV0IHRvIGFuIG9iamVjdCBp
ZiB0b1N0cmluZyB0aHJldyBhbiBleGNlcHRpb24uCisgICAgICAgICAgICBQdXRQcm9wZXJ0eVNs
b3Qgc2xvdChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7CisgICAgICAg
ICAgICBiYXNlVmFsdWUucHV0KGNhbGxGcmFtZSwgcHJvcGVydHksIHZhbHVlLCBzbG90KTsKKyAg
ICAgICAgfQorICAgIH0KK30KKwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFs
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
eworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOworCisgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CisgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOworCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIHN1
YnNjcmlwdC5pc0ludDMyKCkpIHsKKyAgICAgICAgLy8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1p
emluZyBhdCBhbGwuCisgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFs
dWUpOworICAgICAgICBib29sIGRpZE9wdGltaXplID0gZmFsc2U7CisKKyAgICAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAg
ICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgQnlWYWxJbmZvJiBieVZhbElu
Zm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7
CisgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKworICAgICAgICBpZiAo
aGFzT3B0aW1pemFibGVJbmRleGluZyhvYmplY3QtPnN0cnVjdHVyZSgpKSkgeworICAgICAgICAg
ICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KKyAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUob2JqZWN0LT5zdHJ1Y3R1cmUoKSk7Cisg
ICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKKyAgICAg
ICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAm
YnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9k
ZSk7CisgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRPcHRpbWl6ZSkgeworICAgICAgICAgICAgLy8g
SWYgd2UgdGFrZSBzbG93IHBhdGggbW9yZSB0aGFuIDEwIHRpbWVzIHdpdGhvdXQgcGF0Y2hpbmcg
dGhlbiBtYWtlIHN1cmUgd2UKKyAgICAgICAgICAgIC8vIG5ldmVyIG1ha2UgdGhhdCBtaXN0YWtl
IGFnYWluLiBPciwgaWYgd2UgZmFpbGVkIHRvIHBhdGNoIGFuZCB3ZSBoYXZlIHNvbWUgb2JqZWN0
CisgICAgICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9uJ3Qg
ZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKKyAgICAgICAgICAgIC8vIHdoZXJl
IHdlIHNlZSBub24taW5kZXgtaW50ZXJjZXB0aW5nIG9iamVjdHMsIHRoaXMgZ2l2ZXMgMTAgaXRl
cmF0aW9ucyB3b3J0aCBvZgorICAgICAgICAgICAgLy8gb3Bwb3J0dW5pdHkgZm9yIHVzIHRvIG9i
c2VydmUgdGhhdCB0aGUgZ2V0X2J5X3ZhbCBtYXkgYmUgcG9seW1vcnBoaWMuCisgICAgICAgICAg
ICBpZiAoKytieVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAgICAgICAgIHx8
IG9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CisgICAgICAgICAgICAgICAg
Ly8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCisgICAgICAgICAgICAgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKGV4ZWMtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgICAgICAgICBy
ZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24oUmV0dXJuQWRkcmVzc1B0cihPVVJf
UkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1dEJ5VmFsKGV4ZWMsIGJh
c2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSk7CisKK30KKwordm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVl
IGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbHVlKTsKKyAgICBKU1Zh
bHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKKyAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisKKyAgICBwdXRC
eVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUpOworfQorCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlY0NhbGxl
ZSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJh
bWUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShy
ZXZpc2lvbiAxNTc1MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDYgKzIzMiw4IEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkTm9uU3QKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRC
eUlkRGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFN0cmluZ0ltcGwqKSBXVEZfSU5U
RVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmlj
dEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNT
dGF0ZSosIEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2Vu
ZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDE1NzUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNywx
MyArNDM3LDMyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWMKICAg
ICBza2lwUHJvZmlsaW5nLmxpbmsodGhpcyk7CiAKICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVs
KCk7Ci0gICAgCi0gICAgSklUU3R1YkNhbGwgc3R1YlB1dEJ5VmFsQ2FsbCh0aGlzLCBjdGlfb3Bf
cHV0X2J5X3ZhbCk7Ci0gICAgc3R1YlB1dEJ5VmFsQ2FsbC5hZGRBcmd1bWVudChiYXNlKTsKLSAg
ICBzdHViUHV0QnlWYWxDYWxsLmFkZEFyZ3VtZW50KHByb3BlcnR5KTsKLSAgICBzdHViUHV0QnlW
YWxDYWxsLmFkZEFyZ3VtZW50KHZhbHVlKTsKLSAgICBDYWxsIGNhbGwgPSBzdHViUHV0QnlWYWxD
YWxsLmNhbGwoKTsKLSAgICAKKworI2lmIENQVShYODYpCisgICAgLy8gRklYTUU6IFdlIG9ubHkg
aGF2ZSA1IHRlbXAgcmVnaXN0ZXJzLCBidXQgbmVlZCA2IHRvIG1ha2UgdGhpcyBjYWxsLCB0aGVy
ZWZvcmUgd2UgbWF0ZXJpYWxpemUKKyAgICAvLyBvdXIgb3duIGNhbGwuIFdoZW4gd2UgZmluaXNo
IG1vdmluZyBKU0MgdG8gdGhlIEMgY2FsbCBzdGFjaywgd2UnbGwgZ2V0IGFub3RoZXIgcmVnaXN0
ZXIgc28KKyAgICAvLyB3ZSBjYW4gdXNlIHRoZSBub3JtYWwgY2FzZS4KKyAgICByZXNldENhbGxB
cmd1bWVudHMoKTsKKyAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QwLCByZWdUMSk7CisgICAgYWRkQ2FsbEFyZ3Vt
ZW50KHJlZ1QxKTsKKyAgICBhZGRDYWxsQXJndW1lbnQocmVnVDApOworICAgIGVtaXRMb2FkKHBy
b3BlcnR5LCByZWdUMCwgcmVnVDEpOworICAgIGFkZENhbGxBcmd1bWVudChyZWdUMSk7CisgICAg
YWRkQ2FsbEFyZ3VtZW50KHJlZ1QwKTsKKyAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDAsIHJlZ1Qx
KTsKKyAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEpOworICAgIGFkZENhbGxBcmd1bWVudChyZWdU
MCk7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b25QdXRCeVZhbCk7CisjZWxzZQorICAgIC8vIFRoZSByZWdpc3RlciBzZWxlY3Rpb24gYmVsb3cg
aXMgY2hvc2VuIHRvIHJlZHVjZSByZWdpc3RlciBzd2FwcGluZyBvbiBBUk0uCisgICAgLy8gU3dh
cHBpbmcgc2hvdWxkbid0IGhhcHBlbiBvbiBvdGhlciBwbGF0Zm9ybXMuCisgICAgZW1pdExvYWQo
YmFzZSwgcmVnVDIsIHJlZ1QxKTsKKyAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1Qw
KTsKKyAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDUsIHJlZ1Q0KTsKKyAgICBDYWxsIGNhbGwgPSBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMiwgcmVnVDEsIHJlZ1QzLCByZWdU
MCwgcmVnVDUsIHJlZ1Q0KTsKKyNlbmRpZgorCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tt
X2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRy
ZXNzID0gY2FsbDsKICAgICBtX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleCsrOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9u
IDE1NzUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzYsMTEgKzQ3Niw5IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9wdXRfYnlfdmFsKEluc3RydWMKICAgICAKICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVs
KCk7CiAKLSAgICBKSVRTdHViQ2FsbCBzdHViUHV0QnlWYWxDYWxsKHRoaXMsIGN0aV9vcF9wdXRf
YnlfdmFsKTsKLSAgICBzdHViUHV0QnlWYWxDYWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBz
dHViUHV0QnlWYWxDYWxsLmFkZEFyZ3VtZW50KHByb3BlcnR5LCByZWdUMik7Ci0gICAgc3R1YlB1
dEJ5VmFsQ2FsbC5hZGRBcmd1bWVudCh2YWx1ZSwgcmVnVDIpOwotICAgIENhbGwgY2FsbCA9IHN0
dWJQdXRCeVZhbENhbGwuY2FsbCgpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVy
dHksIHJlZ1QxKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMik7Cisg
ICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDAsIHJl
Z1QxLCByZWdUMik7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpA
QCAtMTA0MSw3ICsxMDM5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlW
YWxJbgogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7
CiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5iYWRUeXBlSnVtcCwgQ29kZUxv
Y2F0aW9uTGFiZWwoYnlWYWxJbmZvLT5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5j
dGlvblB0cihjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5y
ZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlv
blB1dEJ5VmFsR2VuZXJpYykpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEludFR5cGVk
QXJyYXlHZXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVk
QXJyYXlUeXBlIHR5cGUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAkocmV2aXNpb24gMTU3NTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw5NCArNDA1LDYgQEAgREVGSU5FX1NUVUJfRlVO
Q1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAg
ICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkgewotICAgICAgICB1aW50MzJfdCBp
ID0gc3Vic2NyaXB0LmFzVUludDMyKCk7Ci0gICAgICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3Qo
KSkgewotICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7
Ci0gICAgICAgICAgICBpZiAob2JqZWN0LT5jYW5TZXRJbmRleFF1aWNrbHkoaSkpCi0gICAgICAg
ICAgICAgICAgb2JqZWN0LT5zZXRJbmRleFF1aWNrbHkoY2FsbEZyYW1lLT52bSgpLCBpLCB2YWx1
ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJs
ZSgpLT5wdXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5j
b2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGJhc2VWYWx1ZS5wdXRCeUluZGV4KGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29k
ZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKLSAgICB9IGVsc2UgaWYgKGlzTmFtZShzdWJzY3Jp
cHQpKSB7Ci0gICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCktPmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgYmFzZVZhbHVlLnB1dChjYWxsRnJhbWUsIGpz
Q2FzdDxOYW1lSW5zdGFuY2UqPihzdWJzY3JpcHQuYXNDZWxsKCkpLT5wcml2YXRlTmFtZSgpLCB2
YWx1ZSwgc2xvdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eShj
YWxsRnJhbWUsIHN1YnNjcmlwdC50b1N0cmluZyhjYWxsRnJhbWUpLT52YWx1ZShjYWxsRnJhbWUp
KTsKLSAgICAgICAgaWYgKCFjYWxsRnJhbWUtPnZtKCkuZXhjZXB0aW9uKCkpIHsgLy8gRG9uJ3Qg
cHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0aHJldyBhbiBleGNlcHRpb24uCi0gICAgICAg
ICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmlj
dE1vZGUoKSk7Ci0gICAgICAgICAgICBiYXNlVmFsdWUucHV0KGNhbGxGcmFtZSwgcHJvcGVydHks
IHZhbHVlLCBzbG90KTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotREVGSU5FX1NUVUJfRlVOQ1RJ
T04odm9pZCwgb3BfcHV0X2J5X3ZhbCkKLXsKLSAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3Rh
Y2tGcmFtZSk7Ci0KLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZy
YW1lOwotCi0gICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1
ZSgpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmpzVmFsdWUo
KTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzJdLmpzVmFsdWUoKTsKLSAg
ICAKLSAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgc3Vic2NyaXB0LmlzSW50MzIoKSkg
ewotICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIGF0IGFsbC4KLSAgICAg
ICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7Ci0gICAgICAgIGJvb2wg
ZGlkT3B0aW1pemUgPSBmYWxzZTsKLQotICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9
IGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAgICAgIEFTU0VSVChi
eXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7Ci0gICAgICAg
IEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKLSAgICAgICAgCi0gICAgICAgIGlmICho
YXNPcHRpbWl6YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKCkpKSB7Ci0gICAgICAgICAg
ICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgotICAgICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5
TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShvYmplY3QtPnN0cnVjdHVyZSgpKTsKLSAg
ICAgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewotICAgICAg
ICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsKCZjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFNUVUJfUkVUVVJOX0FERFJFU1MsIGFycmF5TW9k
ZSk7Ci0gICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRPcHRpbWl6ZSkgewotICAgICAgICAgICAgLy8g
SWYgd2UgdGFrZSBzbG93IHBhdGggbW9yZSB0aGFuIDEwIHRpbWVzIHdpdGhvdXQgcGF0Y2hpbmcg
dGhlbiBtYWtlIHN1cmUgd2UKLSAgICAgICAgICAgIC8vIG5ldmVyIG1ha2UgdGhhdCBtaXN0YWtl
IGFnYWluLiBPciwgaWYgd2UgZmFpbGVkIHRvIHBhdGNoIGFuZCB3ZSBoYXZlIHNvbWUgb2JqZWN0
Ci0gICAgICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9uJ3Qg
ZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKLSAgICAgICAgICAgIC8vIHdoZXJl
IHdlIHNlZSBub24taW5kZXgtaW50ZXJjZXB0aW5nIG9iamVjdHMsIHRoaXMgZ2l2ZXMgMTAgaXRl
cmF0aW9ucyB3b3J0aCBvZgotICAgICAgICAgICAgLy8gb3Bwb3J0dW5pdHkgZm9yIHVzIHRvIG9i
c2VydmUgdGhhdCB0aGUgZ2V0X2J5X3ZhbCBtYXkgYmUgcG9seW1vcnBoaWMuCi0gICAgICAgICAg
ICBpZiAoKytieVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAotICAgICAgICAgICAgICAgIHx8
IG9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCi0gICAgICAgICAgICAgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkpOwotICAgICAgICAgICAg
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihTVFVCX1JFVFVSTl9BRERS
RVNTLCBGdW5jdGlvblB0cihjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcHV0QnlWYWwoY2FsbEZyYW1lLCBiYXNl
VmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUpOwotCi0gICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9F
TkQoKTsKLX0KLQotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X3ZhbF9nZW5l
cmljKQotewotICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKLQotICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0KLSAgICBKU1ZhbHVl
IGJhc2VWYWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBz
dWJzY3JpcHQgPSBzdGFja0ZyYW1lLmFyZ3NbMV0uanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgdmFs
dWUgPSBzdGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1ZSgpOwotICAgIAotICAgIHB1dEJ5VmFsKGNh
bGxGcmFtZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlKTsKLQotICAgIENIRUNLX0ZPUl9F
WENFUFRJT05fQVRfRU5EKCk7Ci19Ci0KIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQqLCBvcF90
aHJvdykKIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxNTc1MzApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1OSw4
ICszNTksNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfU1RVQiBjdGlfb3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwogdm9pZCogSklUX1NUVUIgY3RpX29wX3Rocm93KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogdm9pZCogSklUX1NUVUIgY3RpX3ZtX3Rocm93
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCShyZXZp
c2lvbiAxNTc1MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklU
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw2ICsxMjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk1SZWdpc3RlcnM6OnIyOwog
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IEFSTVJlZ2lzdGVyczo6cjQ7
CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Q0ID0gQVJNUmVnaXN0ZXJzOjpy
NzsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDUgPSBBUk1SZWdpc3RlcnM6
OnI4OwogCiAgICAgICAgIC8vIFVwZGF0ZSBjdGlUcmFtcG9saW5lIGluIEpJVFN0dWJzLmNwcCBp
ZiB0aGVzZSB2YWx1ZXMgYXJlIGNoYW5nZWQhCiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNTsKQEAgLTE3OCw2ICsxNzks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVn
VDMgPSBNSVBTUmVnaXN0ZXJzOjpzMjsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6czM7CisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHJlZ1Q1ID0gTUlQU1JlZ2lzdGVyczo6czQ7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpzMDsK
ICAgICAgICAgCg==
</data>
<flag name="review"
          id="236937"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="236938"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214410</attachid>
            <date>2013-10-16 17:22:07 -0700</date>
            <delta_ts>2013-10-16 17:22:07 -0700</delta_ts>
            <desc>Patch with fix for Release builds</desc>
            <filename>122903-2.patch</filename>
            <type>text/plain</type>
            <size>22947</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEzLTEwLTE2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIHRyYW5zaXRpb24gdm9pZCBjdGlfb3BfcHV0X2J5X3ZhbCogc3R1YnMgdG8gSklUIG9wZXJh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MjkwMworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIFRy
YW5zaXRpb25lZCBjdGlfb3BfcHV0X2J5X3ZhbCBhbmQgY3RpX29wX3B1dF9ieV92YWxfZ2VuZXJp
YyB0byBvcGVyYXRpb25QdXRCeVZhbCBhbmQKKyAgICAgICAgb3BlcmF0aW9uUHV0QnlWYWxHZW5l
cmljLgorCisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2Fs
bEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0
X2J5X3ZhbCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuaDoKKyAgICAgICAgKiBqaXQvSlNJbnRlcmZhY2VKSVQuaDoKKwogMjAxMy0xMC0xNiAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxk
IGZpeC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2
aXNpb24gMTU3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRk
Q2FsbEFyZ3VtZW50KGFyZzQpOwogICAgIH0KIAotQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICByZXNldENhbGxB
cmd1bWVudHMoKTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKQEAgLTQ1Niw2ICs0NTYsMTggQEAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZQogICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNSk7CiAgICAgfQogCisg
ICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcg
YXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUs
IEdQUlJlZyBhcmc2KQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAg
ICAgIGFkZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAg
IGFkZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOwor
ICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChh
cmc0KTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzUpOworICAgICAgICBhZGRDYWxsQXJn
dW1lbnQoYXJnNik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAg
ICByZXNldENhbGxBcmd1bWVudHMoKTsKQEAgLTEyMzEsNiArMTI0MywxNCBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlCiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdSUFJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSBHUFJSZWcgYXJnNikKKyAg
ICB7CisgICAgICAgIHBva2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAyKTsKKyAgICAg
ICAgcG9rZShhcmc1LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDEpOworICAgICAgICBwb2tlKGFy
ZzQsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBU
cnVzdGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1LCBUcnVzdGVkSW1tMzIg
YXJnNikKICAgICB7CiAgICAgICAgIHBva2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAy
KTsKQEAgLTEyNTQsNiArMTI3NCwyMyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlCiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcy
LCBhcmczKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMs
IEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSBHUFJSZWcgYXJnNiwgR1JQUmVnIGFyZzcpCisgICAg
eworICAgICAgICBwb2tlKGFyZzcsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMyk7CisgICAgICAg
IHBva2UoYXJnNiwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAyKTsKKyAgICAgICAgcG9rZShhcmc1
LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDEpOworICAgICAgICBwb2tlKGFyZzQsIFBPS0VfQVJH
VU1FTlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIg
YXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1IEdQUlJlZyBhcmc2LCBHUlBSZWcgYXJnNykK
KyAgICB7CisgICAgICAgIHBva2UoYXJnNywgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAzKTsKKyAg
ICAgICAgcG9rZShhcmc2LCBQT0tFX0FSR1VNRU5UX09GRlNFVCArIDIpOworICAgICAgICBwb2tl
KGFyZzUsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgMSk7CisgICAgICAgIHBva2UoYXJnNCwgUE9L
RV9BUkdVTUVOVF9PRkZTRVQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMiwgYXJnMyk7CisgICAgfQogI2VuZGlmIC8vIE5VTUJFUl9PRl9BUkdVTUVOVF9S
RUdJU1RFUlMgPT0gNAogCiAjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+PSA1Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE1NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTgwMyw2ICs4MDMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSSwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgU3RyaW5nSW1wbCopOwogI2VuZGlmCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaSiwgUmVnaXN0ZXJJRCwgaW50
MzJfdCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBpbnQzMl90KTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMsIElu
c3RydWN0aW9uKik7CkBAIC04MjEsNiArODIyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpKLCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWiwg
Y29uc3QgSWRlbnRpZmllciosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTU3NTQyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIwNiw2ICsyMDYsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVn
aXN0ZXJJRCByZWdPcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQoreworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgcmVnT3AzKTsKKyAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFn
LCBKX0pJVE9wZXJhdGlvbl9FSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgU3Ry
aW5nSW1wbCogdWlkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBU
cnVzdGVkSW1tUHRyKHVpZCkpOwpAQCAtNTAwLDYgKzUwNiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIFJl
Z2lzdGVySUQgcmVnT3AxUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQg
cmVnT3AyUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5
bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDNUYWcpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0
XzMyQklUX0RVTU1ZX0FSRyByZWdPcDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQs
IHJlZ09wM1RhZyk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdP
cDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCwgaW50MzJfdCBvcDIpCiB7CiAgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHJlZ09wMVBheWxv
YWQsIHJlZ09wMVRhZywgVHJ1c3RlZEltbTMyKG9wMikpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNTc1NDIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJBcnJh
eUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUg
IkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgogI2lu
Y2x1ZGUgIkRGR0RyaXZlci5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgIkVycm9yLmgi
CiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1
ZS5oIgorI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbldyYXBwZXJzLmgi
CiAjaW5jbHVkZSAiSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgpAQCAtNDYsNiArNDgsNyBAQAogI2luY2x1
ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlJlcGF0Y2guaCIKKyNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkBAIC00NzEsNiArNDc0LDg4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWFsbG9jYXRlU3QKICAgICBiYXNlLT5wdXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUp
Cit7CisgICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKKyAgICAgICAgdWlu
dDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOworICAgICAgICBpZiAoYmFzZVZhbHVlLmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNl
VmFsdWUpOworICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhRdWlja2x5KGkpKQor
ICAgICAgICAgICAgICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxGcmFtZS0+dm0oKSwg
aSwgdmFsdWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0
aG9kVGFibGUoKS0+cHV0QnlJbmRleChvYmplY3QsIGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBiYXNlVmFsdWUucHV0QnlJbmRleChjYWxsRnJhbWUsIGksIHZhbHVlLCBjYWxsRnJh
bWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7CisgICAgfSBlbHNlIGlmIChpc05hbWUo
c3Vic2NyaXB0KSkgeworICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7CisgICAgICAgIGJhc2VWYWx1ZS5wdXQoY2FsbEZy
YW1lLCBqc0Nhc3Q8TmFtZUluc3RhbmNlKj4oc3Vic2NyaXB0LmFzQ2VsbCgpKS0+cHJpdmF0ZU5h
bWUoKSwgdmFsdWUsIHNsb3QpOworICAgIH0gZWxzZSB7CisgICAgICAgIElkZW50aWZpZXIgcHJv
cGVydHkoY2FsbEZyYW1lLCBzdWJzY3JpcHQudG9TdHJpbmcoY2FsbEZyYW1lKS0+dmFsdWUoY2Fs
bEZyYW1lKSk7CisgICAgICAgIGlmICghY2FsbEZyYW1lLT52bSgpLmV4Y2VwdGlvbigpKSB7IC8v
IERvbid0IHB1dCB0byBhbiBvYmplY3QgaWYgdG9TdHJpbmcgdGhyZXcgYW4gZXhjZXB0aW9uLgor
ICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+
aXNTdHJpY3RNb2RlKCkpOworICAgICAgICAgICAgYmFzZVZhbHVlLnB1dChjYWxsRnJhbWUsIHBy
b3BlcnR5LCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKworICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsdWUpOworICAgIEpTVmFs
dWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOworICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKworICAgIGlmIChi
YXNlVmFsdWUuaXNPYmplY3QoKSAmJiBzdWJzY3JpcHQuaXNJbnQzMigpKSB7CisgICAgICAgIC8v
IFNlZSBpZiBpdCdzIHdvcnRoIG9wdGltaXppbmcgYXQgYWxsLgorICAgICAgICBKU09iamVjdCog
b2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKKyAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9
IGZhbHNlOworCisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRp
b25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Cisg
ICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFs
SW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHVi
Um91dGluZSk7CisKKyAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0LT5z
dHJ1Y3R1cmUoKSkpIHsKKyAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCisgICAg
ICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJl
KG9iamVjdC0+c3RydWN0dXJlKCkpOworICAgICAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZh
bEluZm8uYXJyYXlNb2RlKSB7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWwo
JnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJf
UkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOworICAgICAgICAgICAgICAgIGRpZE9wdGltaXpl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlkT3B0
aW1pemUpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIHRha2Ugc2xvdyBwYXRoIG1vcmUgdGhhbiAx
MCB0aW1lcyB3aXRob3V0IHBhdGNoaW5nIHRoZW4gbWFrZSBzdXJlIHdlCisgICAgICAgICAgICAv
LyBuZXZlciBtYWtlIHRoYXQgbWlzdGFrZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxlZCB0byBwYXRj
aCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdAorICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRz
IGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNh
c2VzCisgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBv
YmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKKyAgICAgICAgICAgIC8v
IG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJl
IHBvbHltb3JwaGljLgorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQg
Pj0gMTAKKyAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygp
LmludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8oKSkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IGV2ZXIgdHJ5IHRvIG9wdGltaXplLgor
ICAgICAgICAgICAgICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihleGVjLT5jb2RlQmxv
Y2soKSk7CisgICAgICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0
aW9uKFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3Bl
cmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUpOworfQor
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQoreworICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4
ZWMpOworICAgIAorICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRCYXNlVmFsdWUpOworICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRTdWJzY3JpcHQpOworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKKworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2
YWx1ZSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2
YWwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewogICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUg
PSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE1NzU0MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIsNiArMjMy
LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdAogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RCdWlsZExpc3QoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFN0cmluZ0ltcGwq
KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0ZVN0
b3JhZ2VBbmRGaW5pc2hQdXQoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQcm9w
ZXJ0eU9mZnNldCwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKikgV1RGX0lOVEVS
TkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUq
KSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4
ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAkocmV2aXNpb24gMTU3NTQyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDM3LDEzICs0MzcsMzIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X3B1dF9ieV92YWwoSW5zdHJ1YwogICAgIHNraXBQcm9maWxpbmcubGluayh0aGlzKTsKIAogICAg
IExhYmVsIHNsb3dQYXRoID0gbGFiZWwoKTsKLSAgICAKLSAgICBKSVRTdHViQ2FsbCBzdHViUHV0
QnlWYWxDYWxsKHRoaXMsIGN0aV9vcF9wdXRfYnlfdmFsKTsKLSAgICBzdHViUHV0QnlWYWxDYWxs
LmFkZEFyZ3VtZW50KGJhc2UpOwotICAgIHN0dWJQdXRCeVZhbENhbGwuYWRkQXJndW1lbnQocHJv
cGVydHkpOwotICAgIHN0dWJQdXRCeVZhbENhbGwuYWRkQXJndW1lbnQodmFsdWUpOwotICAgIENh
bGwgY2FsbCA9IHN0dWJQdXRCeVZhbENhbGwuY2FsbCgpOwotICAgIAorCisjaWYgQ1BVKFg4NikK
KyAgICAvLyBGSVhNRTogV2Ugb25seSBoYXZlIDUgdGVtcCByZWdpc3RlcnMsIGJ1dCBuZWVkIDYg
dG8gbWFrZSB0aGlzIGNhbGwsIHRoZXJlZm9yZSB3ZSBtYXRlcmlhbGl6ZQorICAgIC8vIG91ciBv
d24gY2FsbC4gV2hlbiB3ZSBmaW5pc2ggbW92aW5nIEpTQyB0byB0aGUgQyBjYWxsIHN0YWNrLCB3
ZSdsbCBnZXQgYW5vdGhlciByZWdpc3RlciBzbworICAgIC8vIHdlIGNhbiB1c2UgdGhlIG5vcm1h
bCBjYXNlLgorICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOworICAgIGFkZENhbGxBcmd1bWVudChH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgZW1pdExvYWQoYmFzZSwgcmVnVDAsIHJl
Z1QxKTsKKyAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEpOworICAgIGFkZENhbGxBcmd1bWVudChy
ZWdUMCk7CisgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QwLCByZWdUMSk7CisgICAgYWRkQ2Fs
bEFyZ3VtZW50KHJlZ1QxKTsKKyAgICBhZGRDYWxsQXJndW1lbnQocmVnVDApOworICAgIGVtaXRM
b2FkKHZhbHVlLCByZWdUMCwgcmVnVDEpOworICAgIGFkZENhbGxBcmd1bWVudChyZWdUMSk7Cisg
ICAgYWRkQ2FsbEFyZ3VtZW50KHJlZ1QwKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblB1dEJ5VmFsKTsKKyNlbHNlCisgICAgLy8gVGhlIHJl
Z2lzdGVyIHNlbGVjdGlvbiBiZWxvdyBpcyBjaG9zZW4gdG8gcmVkdWNlIHJlZ2lzdGVyIHN3YXBw
aW5nIG9uIEFSTS4KKyAgICAvLyBTd2FwcGluZyBzaG91bGRuJ3QgaGFwcGVuIG9uIG90aGVyIHBs
YXRmb3Jtcy4KKyAgICBlbWl0TG9hZChiYXNlLCByZWdUMiwgcmVnVDEpOworICAgIGVtaXRMb2Fk
KHByb3BlcnR5LCByZWdUMywgcmVnVDApOworICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUNSwgcmVn
VDQpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0QnlWYWwsIHJl
Z1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQpOworI2VuZGlmCisKICAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRh
cmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3Ry
dWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwogICAgIG1fYnlWYWxJbnN0cnVjdGlv
bkluZGV4Kys7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAkocmV2aXNpb24gMTU3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NiwxMSArNDc2
LDkgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1YwogICAgIAogICAg
IExhYmVsIHNsb3dQYXRoID0gbGFiZWwoKTsKIAotICAgIEpJVFN0dWJDYWxsIHN0dWJQdXRCeVZh
bENhbGwodGhpcywgY3RpX29wX3B1dF9ieV92YWwpOwotICAgIHN0dWJQdXRCeVZhbENhbGwuYWRk
QXJndW1lbnQocmVnVDApOwotICAgIHN0dWJQdXRCeVZhbENhbGwuYWRkQXJndW1lbnQocHJvcGVy
dHksIHJlZ1QyKTsKLSAgICBzdHViUHV0QnlWYWxDYWxsLmFkZEFyZ3VtZW50KHZhbHVlLCByZWdU
Mik7Ci0gICAgQ2FsbCBjYWxsID0gc3R1YlB1dEJ5VmFsQ2FsbC5jYWxsKCk7CisgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIodmFsdWUsIHJlZ1QyKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJlZ1QyKTsKIAogICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1Bh
dGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
cmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0xMDQxLDcgKzEwMzksNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluCiAgICAgCiAgICAgUmVwYXRjaEJ1ZmZlciByZXBh
dGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhieVZhbElu
Zm8tPmJhZFR5cGVKdW1wLCBDb2RlTG9jYXRpb25MYWJlbChieVZhbEluZm8tPnN0dWJSb3V0aW5l
LT5jb2RlKCkuY29kZSgpKSk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0
aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFsX2dlbmVyaWMp
KTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVz
cywgRnVuY3Rpb25QdHIob3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CiB9CiAKIEpJVDo6SnVt
cExpc3QgSklUOjplbWl0SW50VHlwZWRBcnJheUdldEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNTc1NDIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA1LDk0ICs0
MDUsNiBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgdm9pZCBwdXRCeVZhbChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0
LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkp
KSB7Ci0gICAgICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNVSW50MzIoKTsKLSAgICAgICAg
aWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKLSAgICAgICAgICAgIGlmIChvYmplY3QtPmNhblNldElu
ZGV4UXVpY2tseShpKSkKLSAgICAgICAgICAgICAgICBvYmplY3QtPnNldEluZGV4UXVpY2tseShj
YWxsRnJhbWUtPnZtKCksIGksIHZhbHVlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgob2JqZWN0LCBjYWxsRnJhbWUs
IGksIHZhbHVlLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7Ci0gICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgYmFzZVZhbHVlLnB1dEJ5SW5kZXgoY2FsbEZyYW1lLCBp
LCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwotICAgIH0g
ZWxzZSBpZiAoaXNOYW1lKHN1YnNjcmlwdCkpIHsKLSAgICAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3QoY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwotICAgICAgICBiYXNl
VmFsdWUucHV0KGNhbGxGcmFtZSwganNDYXN0PE5hbWVJbnN0YW5jZSo+KHN1YnNjcmlwdC5hc0Nl
bGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBJZGVudGlmaWVyIHByb3BlcnR5KGNhbGxGcmFtZSwgc3Vic2NyaXB0LnRvU3RyaW5nKGNhbGxG
cmFtZSktPnZhbHVlKGNhbGxGcmFtZSkpOwotICAgICAgICBpZiAoIWNhbGxGcmFtZS0+dm0oKS5l
eGNlcHRpb24oKSkgeyAvLyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRvU3RyaW5nIHRocmV3
IGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgICAgIGJhc2VWYWx1ZS5w
dXQoY2FsbEZyYW1lLCBwcm9wZXJ0eSwgdmFsdWUsIHNsb3QpOwotICAgICAgICB9Ci0gICAgfQot
fQotCi1ERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfdmFsKQotewotICAgIFNU
VUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKLQotICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0KLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IHN0
YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBzdGFj
a0ZyYW1lLmFyZ3NbMV0uanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgdmFsdWUgPSBzdGFja0ZyYW1l
LmFyZ3NbMl0uanNWYWx1ZSgpOwotICAgIAotICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAm
JiBzdWJzY3JpcHQuaXNJbnQzMigpKSB7Ci0gICAgICAgIC8vIFNlZSBpZiBpdCdzIHdvcnRoIG9w
dGltaXppbmcgYXQgYWxsLgotICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFz
ZVZhbHVlKTsKLSAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwotCi0gICAgICAgIHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1lLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZz
ZXQoKTsKLSAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgQnlWYWxJbmZv
JiBieVZhbEluZm8gPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNv
ZGVPZmZzZXQgLSAxKTsKLSAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOwot
ICAgICAgICAKLSAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0LT5zdHJ1
Y3R1cmUoKSkpIHsKLSAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCi0gICAgICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9i
amVjdC0+c3RydWN0dXJlKCkpOwotICAgICAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZhbElu
Zm8uYXJyYXlNb2RlKSB7Ci0gICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWwoJmNh
bGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgU1RVQl9S
RVRVUk5fQUREUkVTUywgYXJyYXlNb2RlKTsKLSAgICAgICAgICAgICAgICBkaWRPcHRpbWl6ZSA9
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWRpZE9wdGlt
aXplKSB7Ci0gICAgICAgICAgICAvLyBJZiB3ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAg
dGltZXMgd2l0aG91dCBwYXRjaGluZyB0aGVuIG1ha2Ugc3VyZSB3ZQotICAgICAgICAgICAgLy8g
bmV2ZXIgbWFrZSB0aGF0IG1pc3Rha2UgYWdhaW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2gg
YW5kIHdlIGhhdmUgc29tZSBvYmplY3QKLSAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBp
bmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNl
cwotICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2Jq
ZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCi0gICAgICAgICAgICAvLyBv
cHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBw
b2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49
IDEwCi0gICAgICAgICAgICAgICAgfHwgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5p
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KLSAg
ICAgICAgICAgICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKSk7Ci0gICAgICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1
bmN0aW9uKFNUVUJfUkVUVVJOX0FERFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFs
X2dlbmVyaWMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBw
dXRCeVZhbChjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSk7Ci0KLSAgICBD
SEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwotfQotCi1ERUZJTkVfU1RVQl9GVU5DVElPTih2
b2lkLCBvcF9wdXRfYnlfdmFsX2dlbmVyaWMpCi17Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1F
KHN0YWNrRnJhbWUpOwotCi0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNh
bGxGcmFtZTsKLQotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpz
VmFsdWUoKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IHN0YWNrRnJhbWUuYXJnc1sxXS5qc1Zh
bHVlKCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1syXS5qc1ZhbHVlKCk7
Ci0gICAgCi0gICAgcHV0QnlWYWwoY2FsbEZyYW1lLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFs
dWUpOwotCi0gICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKLX0KLQogREVGSU5FX1NU
VUJfRlVOQ1RJT04odm9pZCosIG9wX3Rocm93KQogewogICAgIFNUVUJfSU5JVF9TVEFDS19GUkFN
RShzdGFja0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJl
dmlzaW9uIDE1NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzU5LDggKzM1OSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWQKIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFs
X3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci12b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9TVFVCIGN0aV9vcF90aHJvd19zdGF0aWNf
ZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiB2b2lkKiBKSVRfU1RV
QiBjdGlfb3BfdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiB2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SlNJbnRlcmZhY2VKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pTSW50ZXJmYWNlSklULmgJKHJldmlzaW9uIDE1NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDYgKzEyNCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdU
MiA9IEFSTVJlZ2lzdGVyczo6cjI7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJl
Z1QzID0gQVJNUmVnaXN0ZXJzOjpyNDsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
cmVnVDQgPSBBUk1SZWdpc3RlcnM6OnI3OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUNSA9IEFSTVJlZ2lzdGVyczo6cjg7CiAKICAgICAgICAgLy8gVXBkYXRlIGN0aVRyYW1w
b2xpbmUgaW4gSklUU3R1YnMuY3BwIGlmIHRoZXNlIHZhbHVlcyBhcmUgY2hhbmdlZCEKICAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk1SZWdpc3Rl
cnM6OnI1OwpAQCAtMTc4LDYgKzE3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IE1JUFNSZWdpc3RlcnM6OnMyOwogICAgICAgICAK
ICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDQgPSBNSVBTUmVnaXN0ZXJzOjpz
MzsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDUgPSBNSVBTUmVnaXN0ZXJz
OjpzNDsKIAogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3Rl
ciA9IE1JUFNSZWdpc3RlcnM6OnMwOwogICAgICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>