<?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>169656</bug_id>
          
          <creation_ts>2017-03-14 21:10:35 -0700</creation_ts>
          <short_desc>FTL should support global and eval code</short_desc>
          <delta_ts>2017-03-16 14:19:47 -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>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287965</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-14 21:10:35 -0700</bug_when>
    <thetext>Patch forthcoiming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287966</commentid>
    <comment_count>1</comment_count>
      <attachid>304468</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-14 21:11:36 -0700</bug_when>
    <thetext>Created attachment 304468
possible patch

STill testing it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288317</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-15 15:52:16 -0700</bug_when>
    <thetext>Attachment 304468 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLink.cpp:137:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/ftl/FTLLink.cpp:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288388</commentid>
    <comment_count>3</comment_count>
      <attachid>304468</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-03-15 18:01:17 -0700</bug_when>
    <thetext>Comment on attachment 304468
possible patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288428</commentid>
    <comment_count>4</comment_count>
      <attachid>304468</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-15 20:11:39 -0700</bug_when>
    <thetext>Comment on attachment 304468
possible patch

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

LGTM too

&gt; Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:-397
&gt; -    jit.load32(CCallHelpers::payloadFor(CallFrameSlot::argumentCount), GPRInfo::regT2);

Was all this code just unneeded?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288560</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-16 08:52:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 304468 [details]
&gt; possible patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304468&amp;action=review
&gt; 
&gt; LGTM too
&gt; 
&gt; &gt; Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:-397
&gt; &gt; -    jit.load32(CCallHelpers::payloadFor(CallFrameSlot::argumentCount), GPRInfo::regT2);
&gt; 
&gt; Was all this code just unneeded?

Yeah!  Crazy!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288737</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-16 14:19:47 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/214069</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304468</attachid>
            <date>2017-03-14 21:11:36 -0700</date>
            <delta_ts>2017-03-15 18:01:17 -0700</delta_ts>
            <desc>possible patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20887</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2V2YWwtY29kZS1mdGwtcmVlbnRyeS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9ldmFsLWNvZGUtZnRsLXJlZW50
cnkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZXZhbC1jb2Rl
LWZ0bC1yZWVudHJ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2ZvciAodmFy
IF9pID0gMDsgX2kgPCAxMDAwOyArK19pKSB7CisgICAgZXZhbCgKKyAgICAgICAgInZhciByZXN1
bHQgPSAwO1xuIiArCisgICAgICAgICJ2YXIgbiA9IDE1MDAwO1xuIiArIAorICAgICAgICAiZm9y
ICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4iICsKKyAgICAgICAgIiAgICByZXN1bHQgKz0ge2Y6
IDF9LmY7XG4iICsKKyAgICAgICAgImlmIChyZXN1bHQgIT0gbilcbiIgKworICAgICAgICAiICAg
IHRocm93IFwiRXJyb3I6IGJhZCByZXN1bHQ6IFwiICsgcmVzdWx0O1xuIik7Cit9CisKSW5kZXg6
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2V2YWwtY29kZS1mdGwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvZXZhbC1jb2RlLWZ0bC5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9ldmFsLWNvZGUtZnRsLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOCBAQAorZXZhbCgKKyAgICAidmFyIHJlc3VsdCA9IDA7XG4iICsKKyAgICAi
dmFyIG4gPSAxNTAwMDAwMDtcbiIgKyAKKyAgICAiZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kp
XG4iICsKKyAgICAiICAgIHJlc3VsdCArPSB7ZjogMX0uZjtcbiIgKworICAgICJpZiAocmVzdWx0
ICE9IG4pXG4iICsKKyAgICAiICAgIHRocm93IFwiRXJyb3I6IGJhZCByZXN1bHQ6IFwiICsgcmVz
dWx0O1xuIik7CisKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2dsb2JhbC1jb2RlLWZ0
bC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nbG9iYWwtY29kZS1m
dGwuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2xvYmFsLWNv
ZGUtZnRsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAordmFyIHJlc3VsdCA9IDA7
Cit2YXIgbiA9IDE1MDAwMDAwOworZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpCisgICAgcmVz
dWx0ICs9IHtmOiAxfS5mOworaWYgKHJlc3VsdCAhPSBuKQorICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGUuY3BwCShyZXZpc2lvbiAyMTM5NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkZU
TEZvck9TUkVudHJ5SklUQ29kZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRl
ICJUcmFja2VkUmVmZXJlbmNlcy5oIgogCkBAIC0yMDEsNiArMjAyLDE1IEBAIHZvaWQgSklUQ29k
ZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmEKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KKwordm9pZCBKSVRDb2RlOjpzZXRPU1JFbnRyeUJsb2NrKFZNJiB2
bSwgY29uc3QgSlNDZWxsKiBvd25lciwgQ29kZUJsb2NrKiBvc3JFbnRyeUJsb2NrKQoreworICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKKyAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVy
KHRoaXMpLCAiOiBTZXR0aW5nIE9TUiBlbnRyeSBibG9jayB0byAiLCBSYXdQb2ludGVyKG9zckVu
dHJ5QmxvY2spLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiT1NSIGVudHJpZXMgd2lsbCBnbyB0
byAiLCBvc3JFbnRyeUJsb2NrLT5qaXRDb2RlKCktPmZ0bEZvck9TUkVudHJ5KCktPmFkZHJlc3NG
b3JDYWxsKEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCksICJcbiIpOworICAgIH0KKyAgICBtX29zckVu
dHJ5QmxvY2suc2V0KHZtLCBvd25lciwgb3NyRW50cnlCbG9jayk7Cit9CiAjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCiAKIHZvaWQgSklUQ29kZTo6dmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRy
YWNrZWRSZWZlcmVuY2VzJiB0cmFja2VkUmVmZXJlbmNlcykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZS5oCShyZXZpc2lvbiAyMTM5NjcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExOCw3ICsxMTgs
NyBAQCBwdWJsaWM6CiAgICAgUmVnaXN0ZXJTZXQgbGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVBdEV4
Y2VwdGlvbkhhbmRsaW5nQ2FsbFNpdGUoQ29kZUJsb2NrKiwgQ2FsbFNpdGVJbmRleCkgb3ZlcnJp
ZGU7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgQ29kZUJsb2NrKiBvc3JFbnRyeUJsb2NrKCkg
eyByZXR1cm4gbV9vc3JFbnRyeUJsb2NrLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRPU1JFbnRyeUJs
b2NrKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgQ29kZUJsb2NrKiBvc3JFbnRyeUJsb2Nr
KSB7IG1fb3NyRW50cnlCbG9jay5zZXQodm0sIG93bmVyLCBvc3JFbnRyeUJsb2NrKTsgfQorICAg
IHZvaWQgc2V0T1NSRW50cnlCbG9jayhWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIENvZGVCbG9j
ayogb3NyRW50cnlCbG9jayk7CiAgICAgdm9pZCBjbGVhck9TUkVudHJ5QmxvY2soKSB7IG1fb3Ny
RW50cnlCbG9jay5jbGVhcigpOyB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgJKHJldmlzaW9uIDIxMzk2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTA4LDkgKzE5MDgsMTEgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbV9yZWZDb3VudDsKICAgICB9CiAgICAgCisgICAgLy8gUmV0dXJu
IHRydWUgaWYgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIE5vZGUgZG9lcyBub3QgYWZmZWN0IG91ciBh
YmlsaXR5IHRvIE9TUiB0byB0aGUgRlRMLgorICAgIC8vIEZJWE1FOiBJc24ndCB0aGlzIGp1c3Qg
bGlrZSBjaGVja2luZyBpZiB0aGUgbm9kZSBoYXMgZWZmZWN0cz8KICAgICBib29sIGlzU2VtYW50
aWNhbGx5U2tpcHBhYmxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBvcCgpID09IENvdW50RXhl
Y3V0aW9uOworICAgICAgICByZXR1cm4gb3AoKSA9PSBDb3VudEV4ZWN1dGlvbiB8fCBvcCgpID09
IEludmFsaWRhdGlvblBvaW50OwogICAgIH0KIAogICAgIHVuc2lnbmVkIHJlZkNvdW50KCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNp
b24gMjEzOTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjMwNyw2ICsyMzA3LDExIEBAIHN0YXRpYyBib29sIHNob3Vs
ZFRyaWdnZXJGVExDb21waWxlKENvZGUKIAogc3RhdGljIHZvaWQgdHJpZ2dlckZUTFJlcGxhY2Vt
ZW50Q29tcGlsZShWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRDb2RlKiBqaXRDb2Rl
KQogeworICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gR2xvYmFsQ29kZSkgeworICAg
ICAgICBqaXRDb2RlLT5vcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7CiAg
ICAgaWYgKFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51
bGwoKSkgewogICAgICAgICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVh
ZHlQbGFuc0ZvclZNKApAQCAtMjQ1Niw2ICsyNDYxLDggQEAgc3RhdGljIGNoYXIqIHRpZXJVcENv
bW1vbihFeGVjU3RhdGUqIGV4ZQogICAgIGlmIChjYW5PU1JGcm9tSGVyZSkgewogICAgICAgICB1
bnNpZ25lZCBzdHJlYW1JbmRleCA9IGppdENvZGUtPmJ5dGVjb2RlSW5kZXhUb1N0cmVhbUluZGV4
LmdldChvcmlnaW5CeXRlY29kZUluZGV4KTsKICAgICAgICAgaWYgKENvZGVCbG9jayogZW50cnlC
bG9jayA9IGppdENvZGUtPm9zckVudHJ5QmxvY2soKSkgeworICAgICAgICAgICAgaWYgKE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJPU1IgZW50cnk6IEZy
b20gIiwgUmF3UG9pbnRlcihqaXRDb2RlKSwgIiBnb3QgZW50cnkgYmxvY2sgIiwgUmF3UG9pbnRl
cihlbnRyeUJsb2NrKSwgIlxuIik7CiAgICAgICAgICAgICBpZiAodm9pZCogYWRkcmVzcyA9IEZU
TDo6cHJlcGFyZU9TUkVudHJ5KGV4ZWMsIGNvZGVCbG9jaywgZW50cnlCbG9jaywgb3JpZ2luQnl0
ZWNvZGVJbmRleCwgc3RyZWFtSW5kZXgpKSB7CiAgICAgICAgICAgICAgICAgQ09ERUJMT0NLX0xP
R19FVkVOVChlbnRyeUJsb2NrLCAib3NyRW50cnkiLCAoImF0IGJjIyIsIG9yaWdpbkJ5dGVjb2Rl
SW5kZXgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KGFkZHJl
c3MpOwpAQCAtMjU3NCw2ICsyNTgxLDggQEAgc3RhdGljIGNoYXIqIHRpZXJVcENvbW1vbihFeGVj
U3RhdGUqIGV4ZQogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgZm9yLWVudHJ5IGNvbXBp
bGUgYWxyZWFkeSBzdWNjZWVkZWQuIEluIHRoYXQgY2FzZSBPU1IKICAgICAvLyBlbnRyeSB3aWxs
IHN1Y2NlZWQgdW5sZXNzIHdlIHJhbiBvdXQgb2Ygc3RhY2suIEl0J3Mgbm90IGNsZWFyIHdoYXQg
d2Ugc2hvdWxkIGRvLgogICAgIC8vIFdlIHNpZ25hbCB0byB0cnkgYWdhaW4gYWZ0ZXIgYSB3aGls
ZSBpZiB0aGF0IGhhcHBlbnMuCisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKKyAgICAg
ICAgZGF0YUxvZygiSW1tZWRpYXRlIE9TUiBlbnRyeTogRnJvbSAiLCBSYXdQb2ludGVyKGppdENv
ZGUpLCAiIGdvdCBlbnRyeSBibG9jayAiLCBSYXdQb2ludGVyKGppdENvZGUtPm9zckVudHJ5Qmxv
Y2soKSksICJcbiIpOwogICAgIHZvaWQqIGFkZHJlc3MgPSBGVEw6OnByZXBhcmVPU1JFbnRyeSgK
ICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBqaXRDb2RlLT5vc3JFbnRyeUJsb2NrKCksIG9yaWdp
bkJ5dGVjb2RlSW5kZXgsIHN0cmVhbUluZGV4KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hh
cio+KGFkZHJlc3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMjEzOTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTgsMTIgKzM5OCw2
IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgcmV0
dXJuIENhbm5vdENvbXBpbGU7CiAgICAgfQogICAgIAotICAgIGlmIChncmFwaC5tX2NvZGVCbG9j
ay0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUpIHsKLSAgICAgICAgaWYgKHZlcmJvc2VDYXBh
YmlsaXRpZXMoKSkKLSAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgIiwgKmdyYXBo
Lm1fY29kZUJsb2NrLCAiIGJlY2F1c2UgaXQgZG9lc24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5c
biIpOwotICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKLSAgICB9Ci0KICAgICBpZiAoVU5M
SUtFTFkoZ3JhcGgubV9jb2RlQmxvY2stPm93bmVyU2NyaXB0RXhlY3V0YWJsZSgpLT5uZXZlckZU
TE9wdGltaXplKCkpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpCiAgICAg
ICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nICIsICpncmFwaC5tX2NvZGVCbG9jaywgIiBi
ZWNhdXNlIGl0IGlzIG1hcmtlZCBhcyBuZXZlciBGVEwgY29tcGlsZS5cbiIpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAyMTM5NjcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJQ
Q1RvQ29kZU9yaWdpbk1hcC5oIgogI2luY2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5o
IgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEZUTCB7CiAKQEAgLTc3LDEwICs3OCw4IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUsIFNh
ZmVwb2ludDo6UmUKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExp
c3Q+IHJlZ2lzdGVyT2Zmc2V0cyA9CiAgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8UmVnaXN0ZXJB
dE9mZnNldExpc3Q+KHN0YXRlLnByb2MtPmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7Ci0gICAgaWYg
KHNob3VsZER1bXBEaXNhc3NlbWJseSgpKSB7Ci0gICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZv
IGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklU
Q29kZTo6RlRMSklUKSwgIjpcbiIpOwotICAgICAgICBkYXRhTG9nKCIgICAgIiwgKnJlZ2lzdGVy
T2Zmc2V0cywgIlxuIik7Ci0gICAgfQorICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkK
KyAgICAgICAgZGF0YUxvZygiVW53aW5kIGluZm8gZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBl
KHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiOiAiLCAqcmVnaXN0
ZXJPZmZzZXRzLCAiXG4iKTsKICAgICBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jay0+c2V0Q2FsbGVl
U2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKHJlZ2lzdGVyT2Zmc2V0cykpOwogICAgIEFTU0VSVCghKHN0
YXRlLnByb2MtPmZyYW1lU2l6ZSgpICUgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkpOwogICAgIHN0
YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSBzdGF0ZS5wcm9jLT5mcmFt
ZVNpemUoKSAvIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CkBAIC0xNjAsNyArMTU5LDcgQEAgdm9p
ZCBjb21waWxlKFN0YXRlJiBzdGF0ZSwgU2FmZXBvaW50OjpSZQogICAgIGlmIChCMzo6QWlyOjpE
aXNhc3NlbWJsZXIqIGRpc2Fzc2VtYmxlciA9IHN0YXRlLnByb2MtPmNvZGUoKS5kaXNhc3NlbWJs
ZXIoKSkgewogICAgICAgICBQcmludFN0cmVhbSYgb3V0ID0gV1RGOjpkYXRhRmlsZSgpOwogCi0g
ICAgICAgIG91dC5wcmludCgiXG5HZW5lcmF0ZWQgRlRMIEpJVCBjb2RlIGZvciAiLCBDb2RlQmxv
Y2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwg
IiwgaW5zdHJ1Y3Rpb24gY291bnQgPSAiLCBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jay0+aW5zdHJ1
Y3Rpb25Db3VudCgpLCAiOlxuIik7CisgICAgICAgIG91dC5wcmludCgiR2VuZXJhdGVkICIsIHN0
YXRlLmdyYXBoLm1fcGxhbi5tb2RlLCAiIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBl
KHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlv
biBjb3VudCA9ICIsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCks
ICI6XG4iKTsKIAogICAgICAgICBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyID0gKnN0YXRlLmZpbmFs
aXplci0+YjNDb2RlTGlua0J1ZmZlcjsKICAgICAgICAgQjM6OlZhbHVlKiBjdXJyZW50QjNWYWx1
ZSA9IG51bGxwdHI7CkBAIC0xODIsNyArMTgxLDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSwgU2FmZXBvaW50OjpSZQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAg
SGFzaFNldDxOb2RlKj4gbG9jYWxQcmludGVkTm9kZXM7Ci0gICAgICAgICAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQoTm9kZSopPiBwcmludE5vZGVSZWN1cnNpdmUgPSBbJl0gKE5vZGUqIG5vZGUpIHsK
KyAgICAgICAgICAgIFdURjo6RnVuY3Rpb248dm9pZChOb2RlKik+IHByaW50Tm9kZVJlY3Vyc2l2
ZSA9IFsmXSAoTm9kZSogbm9kZSkgewogICAgICAgICAgICAgICAgIGlmIChwcmludGVkTm9kZXMu
Y29udGFpbnMobm9kZSkgfHwgbG9jYWxQcmludGVkTm9kZXMuY29udGFpbnMobm9kZSkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjA3LDcgKzIwNiw3IEBAIHZvaWQgY29tcGls
ZShTdGF0ZSYgc3RhdGUsIFNhZmVwb2ludDo6UmUKICAgICAgICAgICAgIHByaW50REZHTm9kZShi
aXR3aXNlX2Nhc3Q8Tm9kZSo+KHZhbHVlLT5vcmlnaW4oKS5kYXRhKCkpKTsKIAogICAgICAgICAg
ICAgSGFzaFNldDxCMzo6VmFsdWUqPiBsb2NhbFByaW50ZWRWYWx1ZXM7Ci0gICAgICAgICAgICBz
dGQ6OmZ1bmN0aW9uPHZvaWQoQjM6OlZhbHVlKik+IHByaW50VmFsdWVSZWN1cnNpdmUgPSBbJl0g
KEIzOjpWYWx1ZSogdmFsdWUpIHsKKyAgICAgICAgICAgIFdURjo6RnVuY3Rpb248dm9pZChCMzo6
VmFsdWUqKT4gcHJpbnRWYWx1ZVJlY3Vyc2l2ZSA9IFsmXSAoQjM6OlZhbHVlKiB2YWx1ZSkgewog
ICAgICAgICAgICAgICAgIGlmIChwcmludGVkVmFsdWVzLmNvbnRhaW5zKHZhbHVlKSB8fCBsb2Nh
bFByaW50ZWRWYWx1ZXMuY29udGFpbnModmFsdWUpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXpl
ci5jcHAJKHJldmlzaW9uIDIxMzk2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SklURmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDEyICs2MywxNiBA
QCBzaXplX3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCiAKIGJvb2wgSklURmluYWxpemVyOjpm
aW5hbGl6ZSgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGZpbmFsaXplQ29tbW9uKCk7CiB9CiAKIGJvb2wgSklURmlu
YWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKIHsKKyAgICByZXR1cm4gZmluYWxpemVDb21tb24o
KTsKK30KKworYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKK3sKICAgICBib29s
IGR1bXBEaXNhc3NlbWJseSA9IHNob3VsZER1bXBEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OmFz
eW5jRGlzYXNzZW1ibHkoKTsKICAgICAKICAgICBqaXRDb2RlLT5pbml0aWFsaXplQjNDb2RlKApA
QCAtNzYsMTAgKzgwLDEyIEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIGR1bXBEaXNhc3NlbWJseSwgKmIzQ29kZUxpbmtCdWZmZXIsCiAgICAgICAg
ICAgICAoIkZUTCBCMyBjb2RlIGZvciAlcyIsIHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlw
ZShtX3BsYW4uY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpKS5kYXRhKCkpKSk7CiAKLSAgICBq
aXRDb2RlLT5pbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQoCi0gICAgICAgIEZJTkFMSVpF
X0NPREVfSUYoCi0gICAgICAgICAgICBkdW1wRGlzYXNzZW1ibHksICplbnRyeXBvaW50TGlua0J1
ZmZlciwKLSAgICAgICAgICAgICgiRlRMIGVudHJ5cG9pbnQgdGh1bmsgZm9yICVzIHdpdGggQjMg
Z2VuZXJhdGVkIGNvZGUgYXQgJXAiLCB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9w
bGFuLmNvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgpLCBmdW5jdGlvbikpKTsKKyAg
ICBpZiAoZW50cnlwb2ludExpbmtCdWZmZXIpIHsKKyAgICAgICAgaml0Q29kZS0+aW5pdGlhbGl6
ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KAorICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9JRigKKyAg
ICAgICAgICAgICAgICBkdW1wRGlzYXNzZW1ibHksICplbnRyeXBvaW50TGlua0J1ZmZlciwKKyAg
ICAgICAgICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAlcyB3aXRoIEIzIGdlbmVy
YXRlZCBjb2RlIGF0ICVwIiwgdG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fcGxhbi5j
b2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCkpLmRhdGEoKSwgZnVuY3Rpb24pKSk7CisgICAgfQog
ICAgIAogICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUoKmppdENvZGUpOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJKHJldmlzaW9u
IDIxMzk2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGNvZGVTaXpl
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgZmlu
YWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIAorICAgIGJvb2wgZmluYWxpemVDb21tb24o
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBiM0NvZGVMaW5rQnVmZmVyOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHJldmlzaW9uIDIxMzk2
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNyw1MCArMTI3LDUyIEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAgCiAg
ICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgewogICAgIGNhc2UgRlRMTW9kZTogewotICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1haW5QYXRoSnVtcHM7CisgICAgICAgIGlmIChj
b2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKSB7CisgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IG1haW5QYXRoSnVtcHM7CiAgICAgCi0gICAgICAgIGppdC5sb2Fk
MzIoCi0gICAgICAgICAgICBmcmFtZS53aXRoT2Zmc2V0KHNpemVvZihSZWdpc3RlcikgKiBDYWxs
RnJhbWVTbG90Ojphcmd1bWVudENvdW50KSwKLSAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsK
LSAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaDMyKAotICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIEdQUkluZm86OnJlZ1QxLAotICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSk7
Ci0gICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwotICAgICAgICBqaXQubW92ZShH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0udG9wQ2FsbEZy
YW1lKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUNoZWNrID0gaml0LmNh
bGwoKTsKLQotICAgICAgICBhdXRvIG5vRXhjZXB0aW9uID0gaml0LmJyYW5jaDMyKENDYWxsSGVs
cGVyczo6R3JlYXRlclRoYW5PckVxdWFsLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCkpOwotICAgICAgICBqaXQuY29weUNhbGxlZVNhdmVzVG9W
TUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcigpOwotICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIoaml0LnZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwot
ICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxMb29rdXBFeGNlcHRp
b25IYW5kbGVyRnJvbUNhbGxlckZyYW1lID0gaml0LmNhbGwoKTsKLSAgICAgICAgaml0Lmp1bXBU
b0V4Y2VwdGlvbkhhbmRsZXIoKTsKLSAgICAgICAgbm9FeGNlcHRpb24ubGluaygmaml0KTsKLQot
ICAgICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgewotICAgICAgICAgICAgaml0LmxvYWQ2NCh2
bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICAgICAgaml0
LmppdEFzc2VydElzTnVsbChHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgICAgICBqaXQubG9hZDMy
KAorICAgICAgICAgICAgICAgIGZyYW1lLndpdGhPZmZzZXQoc2l6ZW9mKFJlZ2lzdGVyKSAqIENh
bGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpLAorICAgICAgICAgICAgICAgIEdQUkluZm86OnJl
Z1QxKTsKKyAgICAgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2gzMigKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlT3JF
cXVhbCwgR1BSSW5mbzo6cmVnVDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkp
KSk7CisgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgICAg
IGppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCAmdm0udG9wQ2FsbEZyYW1lKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxs
QXJpdHlDaGVjayA9IGppdC5jYWxsKCk7CisKKyAgICAgICAgICAgIGF1dG8gbm9FeGNlcHRpb24g
PSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpHcmVhdGVyVGhhbk9yRXF1YWwsIEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSk7CisgICAgICAg
ICAgICBqaXQuY29weUNhbGxlZVNhdmVzVG9WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcigp
OworICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGppdC52
bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxMb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxl
ckZyYW1lID0gaml0LmNhbGwoKTsKKyAgICAgICAgICAgIGppdC5qdW1wVG9FeGNlcHRpb25IYW5k
bGVyKCk7CisgICAgICAgICAgICBub0V4Y2VwdGlvbi5saW5rKCZqaXQpOworCisgICAgICAgICAg
ICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgeworICAgICAgICAgICAgICAgIGppdC5sb2FkNjQodm0u
YWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgICAgICBq
aXQuaml0QXNzZXJ0SXNOdWxsKEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAg
ICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJz
OjpaZXJvLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0
eUZpeHVwID0gaml0LmNhbGwoKTsKKyAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOworICAgICAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAg
ICAgICAgICAgIGxpbmtCdWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExpbmtCdWZmZXI+KHZtLCBq
aXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKKyAgICAgICAgICAgIGlmIChs
aW5rQnVmZmVyLT5kaWRGYWlsVG9BbGxvY2F0ZSgpKSB7CisgICAgICAgICAgICAgICAgc3RhdGUu
YWxsb2NhdGlvbkZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlDaGVjaywgY29k
ZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDog
b3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2spOworICAgICAgICAgICAgbGlua0J1ZmZlci0+bGluayhj
YWxsTG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSwgbG9va3VwRXhjZXB0aW9u
SGFuZGxlckZyb21DYWxsZXJGcmFtZSk7CisgICAgICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNh
bGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigodm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVwR2VuZXJh
dG9yKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgICAgIGxpbmtCdWZm
ZXItPmxpbmsobWFpblBhdGhKdW1wcywgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZv
aWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKICAgICAgICAgfQotCi0gICAgICAgIGpp
dC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwot
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKLSAgICAgICAgbWFpblBhdGhKdW1w
cy5hcHBlbmQoaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwotICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKLSAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0LmNhbGwoKTsKLSAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7Ci0gICAgICAgIG1haW5QYXRoSnVtcHMuYXBw
ZW5kKGppdC5qdW1wKCkpOwotCi0gICAgICAgIGxpbmtCdWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PExpbmtCdWZmZXI+KHZtLCBqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsK
LSAgICAgICAgaWYgKGxpbmtCdWZmZXItPmRpZEZhaWxUb0FsbG9jYXRlKCkpIHsKLSAgICAgICAg
ICAgIHN0YXRlLmFsbG9jYXRpb25GYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Q2hlY2ssIGNvZGVC
bG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9w
ZXJhdGlvbkNhbGxBcml0eUNoZWNrKTsKLSAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsTG9v
a3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSwgbG9va3VwRXhjZXB0aW9uSGFuZGxl
ckZyb21DYWxsZXJGcmFtZSk7Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Rml4
dXAsIEZ1bmN0aW9uUHRyKCh2bS5nZXRDVElTdHViKGFyaXR5Rml4dXBHZW5lcmF0b3IpKS5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1haW5Q
YXRoSnVtcHMsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUuZ2Vu
ZXJhdGVkRnVuY3Rpb24pKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHN0YXRlLmppdENvZGUtPmlu
aXRpYWxpemVBZGRyZXNzRm9yQ2FsbChNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAJKHJldmlz
aW9uIDIxMzk2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5
KAogICAgIAogICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0ZvckNhbGwoQXJp
dHlDaGVja05vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmIChPcHRpb25z
Ojp2ZXJib3NlT1NSKCkpCi0gICAgICAgIGRhdGFMb2coIiAgICBFbnRyeSB3aWxsIHN1Y2NlZWQs
IGdvaW5nIHRvIGFkZHJlc3MiLCBSYXdQb2ludGVyKHJlc3VsdCksICJcbiIpOworICAgICAgICBk
YXRhTG9nKCIgICAgRW50cnkgd2lsbCBzdWNjZWVkLCBnb2luZyB0byBhZGRyZXNzICIsIFJhd1Bv
aW50ZXIocmVzdWx0KSwgIlxuIik7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJ
KHJldmlzaW9uIDIxMzk2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk0LDM2ICszOTQsNiBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YigKICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHVu
d2luZFNjcmF0Y2ggKyBpKTsKICAgICB9CiAgICAgCi0gICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OnBheWxvYWRGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCksIEdQUkluZm86OnJl
Z1QyKTsKLSAgICAKLSAgICAvLyBMZXQncyBzYXkgdGhhdCB0aGUgRlRMIGZ1bmN0aW9uIGhhZCBm
YWlsZWQgaXRzIGFyaXR5IGNoZWNrLiBJbiB0aGF0IGNhc2UsIHRoZSBzdGFjayB3aWxsCi0gICAg
Ly8gY29udGFpbiBzb21lIGV4dHJhIHN0dWZmLgotICAgIC8vCi0gICAgLy8gV2UgY29tcHV0ZSB0
aGUgcGFkZGVkIHN0YWNrIHNwYWNlOgotICAgIC8vCi0gICAgLy8gICAgIHBhZGRlZFN0YWNrU3Bh
Y2UgPSByb3VuZFVwKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycyAtIHJlZ1QyICsgMSkKLSAgICAv
LwotICAgIC8vIFRoZSBzdGFjayB3aWxsIGhhdmUgcmVnVDIgKyBDYWxsRnJhbWVIZWFkZXJTaXpl
IHN0dWZmLgotICAgIC8vIFdlIHdhbnQgdG8gbWFrZSB0aGUgc3RhY2sgbG9vayBsaWtlIHRoaXMs
IGZyb20gaGlnaGVyIGFkZHJlc3NlcyBkb3duOgotICAgIC8vCi0gICAgLy8gICAgIC0gYXJndW1l
bnQgcGFkZGluZwotICAgIC8vICAgICAtIGFjdHVhbCBhcmd1bWVudHMKLSAgICAvLyAgICAgLSBj
YWxsIGZyYW1lIGhlYWRlcgotCi0gICAgLy8gVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB3ZSdyZSBk
ZWFsaW5nIHdpdGggRnVuY3Rpb25Db2RlLgotICAgIFJFTEVBU0VfQVNTRVJUKGNvZGVCbG9jay0+
Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpOwotICAgIAotICAgIGppdC5hZGQzMigKLSAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkpLCBHUFJJbmZvOjpyZWdUMiwKLSAgICAgICAgR1BSSW5mbzo6cmVnVDMpOwotICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0ID0gaml0LmJyYW5jaDMyKAotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6R3JlYXRlclRoYW5PckVxdWFsLCBHUFJJbmZvOjpyZWdUMywgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMigwKSk7Ci0gICAgaml0Lm5lZzMyKEdQUkluZm86OnJlZ1QzKTsK
LSAgICBqaXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxICsgc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSAtIDEpLCBHUFJJbmZvOjpyZWdUMyk7Ci0gICAgaml0LmFuZDMyKE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLXN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBH
UFJJbmZvOjpyZWdUMyk7Ci0gICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QzLCBHUFJJbmZvOjpy
ZWdUMik7Ci0gICAgYXJpdHlJbnRhY3QubGluaygmaml0KTsKLQogICAgIENvZGVCbG9jayogYmFz
ZWxpbmVDb2RlQmxvY2sgPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2tGb3IoZXhpdC5tX2NvZGVPcmln
aW4pOwogCiAgICAgLy8gRmlyc3Qgc2V0IHVwIFNQIHNvIHRoYXQgb3VyIGRhdGEgZG9lc24ndCBn
ZXQgY2xvYmJlcmVkIGJ5IHNpZ25hbHMuCg==
</data>
<flag name="review"
          id="326104"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>