<?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>142153</bug_id>
          
          <creation_ts>2015-03-01 12:52:17 -0800</creation_ts>
          <short_desc>BytecodeGenerator shouldn&apos;t emit op_resolve_scope as a roundabout way of returning the scopeRegister</short_desc>
          <delta_ts>2015-03-01 18:09:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>141174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1073188</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-01 12:52:17 -0800</bug_when>
    <thetext>Currently sometimes BytecodeGenerator will emit an op_resolve_scope with the LocalClosureVar mode and 0 as the scope depth, which ultimately gets turned into an operation that just moves the scopeRegister() to the result.  In cases like that, BytecodeGenerator should just use the scopeRegister() directly and not emit anything for scope resolution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073189</commentid>
    <comment_count>1</comment_count>
      <attachid>247637</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-01 12:53:15 -0800</bug_when>
    <thetext>Created attachment 247637
the patch

Not quite ready for review yet, still need to run debug tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073190</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-01 13:04:24 -0800</bug_when>
    <thetext>Running more tests now.  It&apos;s looking good.  I will run debug and release, 32-bit and 64-bit, before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073191</commentid>
    <comment_count>3</comment_count>
      <attachid>247637</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-03-01 13:14:06 -0800</bug_when>
    <thetext>Comment on attachment 247637
the patch

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

r=me
Pending tests pass and add ChangeLog description

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +

Please describe what the patch does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073193</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-01 13:19:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 247637 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=247637&amp;action=review
&gt; 
&gt; r=me
&gt; Pending tests pass and add ChangeLog description
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; Please describe what the patch does?

Yup, added locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073241</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-01 18:09:20 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/180875</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247637</attachid>
            <date>2015-03-01 12:53:15 -0800</date>
            <delta_ts>2015-03-01 13:14:06 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17848</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwODY4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTAzLTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3Igc2hvdWxkbid0IGVtaXQgb3BfcmVzb2x2ZV9zY29wZSBhcyBhIHJv
dW5kYWJvdXQgd2F5IG9mIHJldHVybmluZyB0aGUgc2NvcGVSZWdpc3RlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMTUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRSZXNvbHZlU2NvcGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdFJldHVybik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
R2V0T3duU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAg
ICAgICAoSlNDOjpSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6RXZh
bEZ1bmN0aW9uQ2FsbE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
Q2FsbFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpQb3N0Zml4Tm9k
ZTo6ZW1pdFJlc29sdmUpOgorICAgICAgICAoSlNDOjpEZWxldGVSZXNvbHZlTm9kZTo6ZW1pdEJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6VHlwZU9mUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZSk6
CisgICAgICAgIChKU0M6OlByZWZpeE5vZGU6OmVtaXRSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6
UmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpBc3Np
Z25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Q29uc3REZWNsTm9k
ZTo6ZW1pdENvZGVTaW5nbGUpOgorICAgICAgICAoSlNDOjpFbXB0eVZhckV4cHJlc3Npb246OmVt
aXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvckluTm9kZTo6ZW1pdExvb3BIZWFkZXIpOgor
ICAgICAgICAoSlNDOjpGb3JPZk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkJp
bmRpbmdOb2RlOjpiaW5kVmFsdWUpOgorCiAyMDE1LTAyLTI3ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSB0aGUgd2F5IG51bWJlciBj
b25zdGFudHMgYXJlIHdyaXR0ZW4gdG8gaGVscCB0eXBlIHNwZWN1bGF0aW9uCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTgw
ODY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5NTUsMTAgKzE5NTUsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhT
Y3JpcHRFeGVjdXRhYmxlKiBvCiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV9zY29wZTogewogICAg
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKHBjWzNdLnUub3Bl
cmFuZCk7CiAgICAgICAgICAgICBSZXNvbHZlVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8UmVzb2x2
ZVR5cGU+KHBjWzRdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBMb2NhbENs
b3N1cmVWYXIpIHsKLSAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnNbaSArIDRdLnUub3BlcmFu
ZCA9IENsb3N1cmVWYXI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh0eXBlICE9IExvY2FsQ2xvc3VyZVZhcik7CiAKICAg
ICAgICAgICAgIFJlc29sdmVPcCBvcCA9IEpTU2NvcGU6OmFic3RyYWN0UmVzb2x2ZShtX2dsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpLCBuZWVkc0FjdGl2YXRpb24oKSwgc2NvcGUsIGlkZW50LCBH
ZXQsIHR5cGUpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zW2kgKyA0XS51Lm9wZXJhbmQgPSBv
cC50eXBlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE4MDg2NykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjU3LDI3ICsxMjU3LDIxIEBAIFJlc29sdmVUeXBlIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpyZXNvbHZlVHkKIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRS
ZXNvbHZlU2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVy
LCBSZXNvbHZlU2NvcGVJbmZvJiBpbmZvKQogewotICAgIG1fY29kZUJsb2NrLT5hZGRQcm9wZXJ0
eUFjY2Vzc0luc3RydWN0aW9uKGluc3RydWN0aW9ucygpLnNpemUoKSk7Ci0KICAgICBpZiAobV9z
eW1ib2xUYWJsZSAmJiBtX2NvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiAhbV9sb2NhbFNjb3Bl
RGVwdGgpIHsKICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBlbnRyeSA9IG1fc3ltYm9sVGFibGUt
PmdldChpZGVudGlmaWVyLmltcGwoKSk7CiAgICAgICAgIGlmICghZW50cnkuaXNOdWxsKCkpIHsK
LSAgICAgICAgICAgIGVtaXRPcGNvZGUob3BfcmVzb2x2ZV9zY29wZSk7Ci0gICAgICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQoa2lsbChkc3QpKTsKLSAgICAgICAgICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChzY29wZVJlZ2lzdGVyKCktPmluZGV4KCkpOwotICAgICAgICAgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KGlkZW50aWZpZXIpKTsKLSAgICAgICAgICAgIGlu
c3RydWN0aW9ucygpLmFwcGVuZChMb2NhbENsb3N1cmVWYXIpOwotICAgICAgICAgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKDApOwotICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDAp
OwogICAgICAgICAgICAgaW5mbyA9IFJlc29sdmVTY29wZUluZm8oZW50cnkuZ2V0SW5kZXgoKSk7
Ci0gICAgICAgICAgICByZXR1cm4gZHN0OworICAgICAgICAgICAgcmV0dXJuIHNjb3BlUmVnaXN0
ZXIoKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIEFTU0VSVCghbV9zeW1ib2xUYWJsZSB8fCAh
bV9zeW1ib2xUYWJsZS0+Y29udGFpbnMoaWRlbnRpZmllci5pbXBsKCkpIHx8IHJlc29sdmVUeXBl
KCkgPT0gRHluYW1pYyk7CiAKKyAgICBtX2NvZGVCbG9jay0+YWRkUHJvcGVydHlBY2Nlc3NJbnN0
cnVjdGlvbihpbnN0cnVjdGlvbnMoKS5zaXplKCkpOworCiAgICAgLy8gcmVzb2x2ZV9zY29wZSBk
c3QsIGlkLCBSZXNvbHZlVHlwZSwgZGVwdGgKICAgICBlbWl0T3Bjb2RlKG9wX3Jlc29sdmVfc2Nv
cGUpOworICAgIGRzdCA9IHRlbXBEZXN0aW5hdGlvbihkc3QpOwogICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChraWxsKGRzdCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzY29wZVJlZ2lz
dGVyKCktPmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChp
ZGVudGlmaWVyKSk7CkBAIC0xMjg4LDIwICsxMjgyLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRSZXNvbAogfQogCiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0R2V0T3duU2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBPd25TY29wZUxvb2t1cFJ1bGVzKQotewotICAgIGVtaXRPcGNvZGUob3BfcmVzb2x2
ZV9zY29wZSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGtpbGwoZHN0KSk7Ci0gICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHNjb3BlUmVnaXN0ZXIoKS0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KGlkZW50aWZpZXIpKTsKLSAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoTG9jYWxDbG9zdXJlVmFyKTsKLSAgICAvLyBUaGlzIHNob3VsZCBiZSBtX2xv
Y2FsU2NvcGVEZXB0aCBpZiB3ZSBhcmVuJ3QgZG9pbmcKLSAgICAvLyByZXNvbHV0aW9uIGR1cmlu
ZyBlbWl0UmV0dXJuKCkKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7Ci0gICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKDApOwotICAgIHJldHVybiBkc3Q7Ci19Ci0KIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVzb2x2ZUNvbnN0YW50TG9jYWwoUmVnaXN0ZXJJRCogZHN0
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBSZXNvbHZlU2NvcGVJbmZvJiBpbmZvKQog
ewogICAgIGlmICghbV9zeW1ib2xUYWJsZSB8fCBtX2NvZGVUeXBlICE9IEZ1bmN0aW9uQ29kZSkK
QEAgLTE5MTQsOSArMTg5NCw4IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
UmV0dXIKICAgICAgICAgaW50IGFyZ3VtZW50c0luZGV4ID0gdW5tb2RpZmllZEFyZ3VtZW50c1Jl
Z2lzdGVyKG1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQoKTsKICAgICAg
ICAgaWYgKG1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXIgJiYgbV9jb2RlVHlwZSA9PSBGdW5j
dGlvbkNvZGUpIHsKICAgICAgICAgICAgIHNjcmF0Y2hSZWdpc3RlciA9IG5ld1RlbXBvcmFyeSgp
OwotICAgICAgICAgICAgZW1pdEdldE93blNjb3BlKHNjcmF0Y2hSZWdpc3Rlci5nZXQoKSwgcHJv
cGVydHlOYW1lcygpLmFyZ3VtZW50cywgT3duU2NvcGVGb3JSZXR1cm4pOwogICAgICAgICAgICAg
UmVzb2x2ZVNjb3BlSW5mbyBzY29wZUluZm8odW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKG1f
Y29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQoKSk7Ci0gICAgICAgICAgICBl
bWl0R2V0RnJvbVNjb3BlKHNjcmF0Y2hSZWdpc3Rlci5nZXQoKSwgc2NyYXRjaFJlZ2lzdGVyLmdl
dCgpLCBwcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzLCBUaHJvd0lmTm90Rm91bmQsIHNjb3BlSW5m
byk7CisgICAgICAgICAgICBlbWl0R2V0RnJvbVNjb3BlKHNjcmF0Y2hSZWdpc3Rlci5nZXQoKSwg
c2NvcGVSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzLCBUaHJvd0lmTm90Rm91
bmQsIHNjb3BlSW5mbyk7CiAgICAgICAgICAgICBhcmd1bWVudHNJbmRleCA9IHNjcmF0Y2hSZWdp
c3Rlci0+aW5kZXgoKTsKICAgICAgICAgfQogICAgICAgICBlbWl0T3Bjb2RlKG9wX3RlYXJfb2Zm
X2FyZ3VtZW50cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxODA4NjcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwMyw2ICs1MDMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
UmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUoKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29s
dmVDb25zdGFudExvY2FsKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgSWRlbnRpZmllciYsIFJlc29s
dmVTY29wZUluZm8mKTsKKyAgICAgICAgLy8gQ2FsbHMgdGVtcERlc3RpbmF0aW9uKGRzdCksIHNv
IGl0J3Mgc2FmZSB0byBwYXNzIG51bGxwdHIuIEl0J3MgYWxzbyByZWR1bmRhbnQgdG8gY2FsbAor
ICAgICAgICAvLyB0ZW1wRGVzdGluYXRpb24oZHN0KSBvbiB0aGUgdGhpbmcgeW91IHBhc3MgYXMg
dGhlIGRlc3RpbmF0aW9uLiBUaGUgcmVhc29uIHdoeSB0aGlzCisgICAgICAgIC8vIGNhbGxzIHRl
bXBEZXN0aW5hdGlvbigpIGZvciB5b3UgaXMgdGhhdCBpdCBtYXkgbm90IG5lZWQgYSBzcGFyZSBy
ZWdpc3Rlci4gSXQgbWF5IHJldHVybgorICAgICAgICAvLyBzY29wZVJlZ2lzdGVyKCkgZGlyZWN0
bHkuIFNvLCB5b3UgY2Fubm90IHJlbHkgb24gdGhpcyBzdG9yaW5nIHRvIGRzdC4KICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdFJlc29sdmVTY29wZShSZWdpc3RlcklEKiBkc3QsIGNvbnN0IElkZW50
aWZpZXImLCBSZXNvbHZlU2NvcGVJbmZvJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRG
cm9tU2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzY29wZSwgY29uc3QgSWRlbnRp
ZmllciYsIFJlc29sdmVNb2RlLCBjb25zdCBSZXNvbHZlU2NvcGVJbmZvJik7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRQdXRUb1Njb3BlKFJlZ2lzdGVySUQqIHNjb3BlLCBjb25zdCBJZGVudGlm
aWVyJiwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlc29sdmVNb2RlLCBjb25zdCBSZXNvbHZlU2NvcGVJ
bmZvJik7CkBAIC02NjMsMTMgKzY2Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVu
dHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zm
c2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBSZWdpc3RlcklEKiBpbml0aWFsaXplQ2FwdHVy
ZWRWYXJpYWJsZShSZWdpc3RlcklEKiBkc3QsIGNvbnN0IElkZW50aWZpZXImLCBSZWdpc3RlcklE
Kik7CiAKLSAgICAgICAgLy8gV2UnbGwgbWF5IHdhbnQgYSBub24tcmV0dXJuIG1vZGUgaW4gZnV0
dXJlLCBidXQgY3VycmVudGx5Ci0gICAgICAgIC8vIHRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBl
bWl0UmV0dXJuKCkuIGVtaXRSZXR1cm4oKSBvY2N1cnMKLSAgICAgICAgLy8gd2l0aCB0aGUgbm92
ZWwgc3RhdGUgb2YgaGF2aW5nIHBvcHBlZCBvZmYgYWxsIHRoZSBsb2NhbCBzY29wZQotICAgICAg
ICAvLyBub2RlcywgYnV0IG5vdCBhY3R1YWxseSBtb2RpZnkgYW55IGludGVybmFsIHN0YWNrIGRl
cHRoIHRyYWNraW5nLgotICAgICAgICBlbnVtIE93blNjb3BlTG9va3VwUnVsZXMgeyBPd25TY29w
ZUZvclJldHVybiB9OwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0T3duU2NvcGUoUmVnaXN0
ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiwgT3duU2NvcGVMb29rdXBSdWxlcyk7Ci0KICAg
ICBwdWJsaWM6CiAgICAgICAgIEpTU3RyaW5nKiBhZGRTdHJpbmdDb25zdGFudChjb25zdCBJZGVu
dGlmaWVyJik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE4MDg2NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTc4LDcgKzE3OCw3IEBAIFJlZ2lzdGVySUQqIFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUo
QnkKICAgICBKU1RleHRQb3NpdGlvbiBkaXZvdCA9IG1fc3RhcnQgKyBtX2lkZW50Lmxlbmd0aCgp
OwogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QsIG1fc3RhcnQsIGRpdm90
KTsKICAgICBSZXNvbHZlU2NvcGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpLCBtX2lkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShkc3QsIG1f
aWRlbnQsIHJlc29sdmVTY29wZUluZm8pOwogICAgIFJlZ2lzdGVySUQqIGZpbmFsRGVzdCA9IGdl
bmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCk7CiAgICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZmluYWxEZXN0LCBzY29wZS5nZXQoKSwgbV9pZGVu
dCwgVGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJbmZvKTsKICAgICBpZiAoZ2VuZXJhdG9y
LnZtKCktPnR5cGVQcm9maWxlcigpKSB7CkBAIC01MDcsNyArNTA3LDkgQEAgUmVnaXN0ZXJJRCog
RXZhbEZ1bmN0aW9uQ2FsbE5vZGU6OmVtaXRCeQogICAgIEpTVGV4dFBvc2l0aW9uIG5ld0Rpdm90
ID0gZGl2b3RTdGFydCgpICsgNDsKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5l
d0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKICAgICBSZXNvbHZlU2NvcGVJbmZvIHJl
c29sdmVTY29wZUluZm87Ci0gICAgZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoY2FsbEFyZ3Vt
ZW50cy50aGlzUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5ldmFsLCByZXNv
bHZlU2NvcGVJbmZvKTsKKyAgICBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRlZCgK
KyAgICAgICAgY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRSZXNvbHZlU2NvcGUoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgZ2VuZXJhdG9y
LnByb3BlcnR5TmFtZXMoKS5ldmFsLCByZXNvbHZlU2NvcGVJbmZvKSk7CiAgICAgZ2VuZXJhdG9y
LmVtaXRHZXRGcm9tU2NvcGUoZnVuYy5nZXQoKSwgY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIo
KSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5ldmFsLCBUaHJvd0lmTm90Rm91bmQsIHJlc29s
dmVTY29wZUluZm8pOwogICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdENhbGxFdmFsKGdlbmVyYXRv
ci5maW5hbERlc3RpbmF0aW9uKGRzdCwgZnVuYy5nZXQoKSksIGZ1bmMuZ2V0KCksIGNhbGxBcmd1
bWVudHMsIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiB9CkBAIC01NTYsNyAr
NTU4LDkgQEAgUmVnaXN0ZXJJRCogRnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGU6OmVtaQogICAgIEpT
VGV4dFBvc2l0aW9uIG5ld0Rpdm90ID0gZGl2b3RTdGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsK
ICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCks
IG5ld0Rpdm90KTsKICAgICBSZXNvbHZlU2NvcGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAg
Z2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwg
bV9pZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CisgICAgZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0
aW9uSWZOZWVkZWQoCisgICAgICAgIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksCisgICAg
ICAgIGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVy
KCksIG1faWRlbnQsIHJlc29sdmVTY29wZUluZm8pKTsKICAgICBnZW5lcmF0b3IuZW1pdEdldEZy
b21TY29wZShmdW5jLmdldCgpLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBtX2lkZW50
LCBUaHJvd0lmTm90Rm91bmQsIHJlc29sdmVTY29wZUluZm8pOwogICAgIFJlZ2lzdGVySUQqIHJl
dCA9IGdlbmVyYXRvci5lbWl0Q2FsbChyZXR1cm5WYWx1ZS5nZXQoKSwgZnVuYy5nZXQoKSwgZXhw
ZWN0ZWRGdW5jdGlvbiwgY2FsbEFyZ3VtZW50cywgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZv
dEVuZCgpKTsKICAgICBpZiAoZ2VuZXJhdG9yLnZtKCktPnR5cGVQcm9maWxlcigpKSB7CkBAIC04
MzgsNyArODQyLDcgQEAgUmVnaXN0ZXJJRCogUG9zdGZpeE5vZGU6OmVtaXRSZXNvbHZlKEJ5dAog
CiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCks
IGRpdm90RW5kKCkpOwogICAgIFJlc29sdmVTY29wZUluZm8gcmVzb2x2ZVNjb3BlSW5mbzsKLSAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGlkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxs
cHRyLCBpZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZh
bHVlID0gZ2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBzY29wZS5nZXQoKSwgaWRlbnQsIFRocm93SWZOb3RGb3VuZCwgcmVzb2x2ZVNjb3BlSW5mbyk7
CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IG9sZFZhbHVlID0gZW1pdFBvc3RJbmNPckRlYyhnZW5l
cmF0b3IsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHZhbHVlLmdldCgpLCBtX29w
ZXJhdG9yKTsKICAgICBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUuZ2V0KCksIGlkZW50
LCB2YWx1ZS5nZXQoKSwgVGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJbmZvKTsKQEAgLTky
NCw3ICs5MjgsNyBAQCBSZWdpc3RlcklEKiBEZWxldGVSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjCiAK
ICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7CiAgICAgUmVzb2x2ZVNjb3BlSW5mbyByZXNvbHZlU2NvcGVJbmZvOwotICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBtX2lkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsK
KyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3Bl
KGRzdCwgbV9pZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0RGVsZXRlQnlJZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIGJhc2UuZ2V0KCkp
LCBiYXNlLmdldCgpLCBtX2lkZW50KTsKIH0KIApAQCAtOTgyLDcgKzk4Niw3IEBAIFJlZ2lzdGVy
SUQqIFR5cGVPZlJlc29sdmVOb2RlOjplbWl0Qnl0ZWMKICAgICB9CiAKICAgICBSZXNvbHZlU2Nv
cGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0g
Z2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3Qp
LCBtX2lkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2Nv
cGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShkc3QsIG1faWRlbnQsIHJlc29sdmVTY29w
ZUluZm8pOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0
RnJvbVNjb3BlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIG1faWRlbnQs
IERvTm90VGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJbmZvKTsKICAgICBpZiAoZHN0ID09
IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTAyOSw3
ICsxMDMzLDcgQEAgUmVnaXN0ZXJJRCogUHJlZml4Tm9kZTo6ZW1pdFJlc29sdmUoQnl0ZQogCiAg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOwogICAgIFJlc29sdmVTY29wZUluZm8gcmVzb2x2ZVNjb3BlSW5mbzsKLSAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShnZW5l
cmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGlkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShk
c3QsIGlkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFs
dWUgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCks
IHNjb3BlLmdldCgpLCBpZGVudCwgVGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJbmZvKTsK
ICAgICBlbWl0SW5jT3JEZWMoZ2VuZXJhdG9yLCB2YWx1ZS5nZXQoKSwgbV9vcGVyYXRvcik7CiAg
ICAgZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLmdldCgpLCBpZGVudCwgdmFsdWUuZ2V0
KCksIFRocm93SWZOb3RGb3VuZCwgcmVzb2x2ZVNjb3BlSW5mbyk7CkBAIC0xNTUxLDcgKzE1NTUs
NyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OmVtaXRCCiAKICAgICBnZW5l
cmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90
KTsKICAgICBSZXNvbHZlU2NvcGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpLCBtX2lkZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCBtX2lk
ZW50LCByZXNvbHZlU2NvcGVJbmZvKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBn
ZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHNjb3Bl
LmdldCgpLCBtX2lkZW50LCBUaHJvd0lmTm90Rm91bmQsIHJlc29sdmVTY29wZUluZm8pOwogICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBlbWl0UmVhZE1vZGlmeUFzc2lnbm1lbnQoZ2Vu
ZXJhdG9yLCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHZhbHVlLmdldCgpKSwgdmFs
dWUuZ2V0KCksIG1fcmlnaHQsIG1fb3BlcmF0b3IsIE9wZXJhbmRUeXBlcyhSZXN1bHRUeXBlOjp1
bmtub3duVHlwZSgpLCBtX3JpZ2h0LT5yZXN1bHREZXNjcmlwdG9yKCkpLCB0aGlzKTsKICAgICBS
ZWdpc3RlcklEKiByZXR1cm5SZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUu
Z2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSwgVGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2Nv
cGVJbmZvKTsKQEAgLTE1ODgsNyArMTU5Miw3IEBAIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVO
b2RlOjplbWl0Qnl0ZWMKICAgICBpZiAoZ2VuZXJhdG9yLmlzU3RyaWN0TW9kZSgpKQogICAgICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CiAgICAgUmVzb2x2ZVNjb3BlSW5mbyByZXNvbHZlU2NvcGVJbmZvOwotICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgbV9pZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CisgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0
ciwgbV9pZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CiAgICAgaWYgKGRzdCA9PSBnZW5lcmF0b3Iu
aWdub3JlZFJlc3VsdCgpKQogICAgICAgICBkc3QgPSAwOwogICAgIFJlZlB0cjxSZWdpc3RlcklE
PiByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3JpZ2h0KTsKQEAgLTE3MzQsNyAr
MTczOCw3IEBAIFJlZ2lzdGVySUQqIENvbnN0RGVjbE5vZGU6OmVtaXRDb2RlU2luZ2wKIAogICAg
IC8vIEZJWE1FOiBUaGlzIHdpbGwgcmVzdWx0IGluIGluY29ycmVjdCBhc3NpZ25tZW50IGlmIG1f
aWRlbnQgZXhpc3RzIGluIGFuIGludGVydmVuaW5nIHdpdGggc2NvcGUuCiAgICAgUmVzb2x2ZVNj
b3BlSW5mbyByZXNvbHZlU2NvcGVJbmZvOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9
IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgbV9p
ZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0g
Z2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgbV9pZGVudCwgcmVzb2x2ZVNjb3Bl
SW5mbyk7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29wZS5nZXQoKSwg
bV9pZGVudCwgdmFsdWUuZ2V0KCksIERvTm90VGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJ
bmZvKTsKIH0KIApAQCAtMTgzMSw3ICsxODM1LDcgQEAgUmVnaXN0ZXJJRCogRW1wdHlWYXJFeHBy
ZXNzaW9uOjplbWl0Qnl0ZQogICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKGxvY2Fs
LmdldCgpLCBQcm9maWxlVHlwZUJ5dGVjb2RlSGFzR2xvYmFsSUQsIG51bGxwdHIpOwogICAgIGVs
c2UgewogICAgICAgICBSZXNvbHZlU2NvcGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgbV9pZGVudCwgcmVzb2x2ZVNjb3BlSW5mbyk7CisgICAg
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3Bl
KG51bGxwdHIsIG1faWRlbnQsIHJlc29sdmVTY29wZUluZm8pOwogICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IubmV3
VGVtcG9yYXJ5KCksIHNjb3BlLmdldCgpLCBtX2lkZW50LCBEb05vdFRocm93SWZOb3RGb3VuZCwg
cmVzb2x2ZVNjb3BlSW5mbyk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUodmFs
dWUuZ2V0KCksIHJlc29sdmVTY29wZUluZm8uaXNMb2NhbCgpID8gUHJvZmlsZVR5cGVCeXRlY29k
ZUdldEZyb21Mb2NhbFNjb3BlIDogUHJvZmlsZVR5cGVCeXRlY29kZUdldEZyb21TY29wZSwgJm1f
aWRlbnQpOwogICAgIH0KQEAgLTIwMzUsNyArMjAzOSw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0
TG9vcEhlYWRlcihCeXRlY29kZUcKICAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuaXNTdHJpY3RN
b2RlKCkpCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZv
dCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAgICAgICAgUmVzb2x2ZVNjb3Bl
SW5mbyByZXNvbHZlU2NvcGVJbmZvOwotICAgICAgICAgICAgUmVnaXN0ZXJJRCogc2NvcGUgPSBn
ZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGlkZW50
LCByZXNvbHZlU2NvcGVJbmZvKTsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQqIHNjb3BlID0gZ2Vu
ZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgaWRlbnQsIHJlc29sdmVTY29wZUluZm8p
OwogICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZv
dFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRUb1Nj
b3BlKHNjb3BlLCBpZGVudCwgcHJvcGVydHlOYW1lLCBnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkg
PyBUaHJvd0lmTm90Rm91bmQgOiBEb05vdFRocm93SWZOb3RGb3VuZCwgcmVzb2x2ZVNjb3BlSW5m
byk7CiAgICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLnZtKCktPnR5cGVQcm9maWxlcigpKQpAQCAt
MjI1OSw3ICsyMjYzLDcgQEAgdm9pZCBGb3JPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bgogICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RT
dGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICAgICAgICAgICAgICBSZXNvbHZlU2NvcGVJbmZvIHJl
c29sdmVTY29wZUluZm87Ci0gICAgICAgICAgICAgICAgUmVnaXN0ZXJJRCogc2NvcGUgPSBnZW5l
cmF0b3IuZW1pdFJlc29sdmVTY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGlkZW50LCBy
ZXNvbHZlU2NvcGVJbmZvKTsKKyAgICAgICAgICAgICAgICBSZWdpc3RlcklEKiBzY29wZSA9IGdl
bmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKG51bGxwdHIsIGlkZW50LCByZXNvbHZlU2NvcGVJbmZv
KTsKICAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCks
IGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQdXRUb1Njb3BlKHNjb3BlLCBpZGVudCwgdmFsdWUsIGdlbmVyYXRvci5pc1N0cmljdE1vZGUo
KSA/IFRocm93SWZOb3RGb3VuZCA6IERvTm90VGhyb3dJZk5vdEZvdW5kLCByZXNvbHZlU2NvcGVJ
bmZvKTsKICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLnZtKCktPnR5cGVQcm9maWxlcigp
KQpAQCAtMjk2OCw3ICsyOTcyLDcgQEAgdm9pZCBCaW5kaW5nTm9kZTo6YmluZFZhbHVlKEJ5dGVj
b2RlR2VuZQogICAgIGlmIChnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgIGdlbmVy
YXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3RFbmQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVu
ZCgpKTsKICAgICBSZXNvbHZlU2NvcGVJbmZvIHJlc29sdmVTY29wZUluZm87Ci0gICAgUmVnaXN0
ZXJJRCogc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIG1fYm91bmRQcm9wZXJ0eSwgcmVzb2x2ZVNjb3BlSW5mbyk7CisgICAgUmVnaXN0
ZXJJRCogc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCBtX2JvdW5k
UHJvcGVydHksIHJlc29sdmVTY29wZUluZm8pOwogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lv
bkluZm8oZGl2b3RFbmQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICBnZW5lcmF0
b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUsIG1fYm91bmRQcm9wZXJ0eSwgdmFsdWUsIGdlbmVyYXRv
ci5pc1N0cmljdE1vZGUoKSA/IFRocm93SWZOb3RGb3VuZCA6IERvTm90VGhyb3dJZk5vdEZvdW5k
LCByZXNvbHZlU2NvcGVJbmZvKTsKICAgICBpZiAoZ2VuZXJhdG9yLnZtKCktPnR5cGVQcm9maWxl
cigpKSB7Cg==
</data>
<flag name="review"
          id="272557"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>