<?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>156576</bug_id>
          
          <creation_ts>2016-04-14 05:50:56 -0700</creation_ts>
          <short_desc>[ES7] yield star should not return if the inner iterator.throw returns { done: true }</short_desc>
          <delta_ts>2016-04-18 00:35:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</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>1183695</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 05:50:56 -0700</bug_when>
    <thetext>[ES6] yield star should not return if the inner iterator.throw returns { done: true }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183696</commentid>
    <comment_count>1</comment_count>
      <attachid>276391</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 05:54:58 -0700</bug_when>
    <thetext>Created attachment 276391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183697</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 05:55:44 -0700</bug_when>
    <thetext>This change is also listed here. http://kangax.github.io/compat-table/esnext/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183705</commentid>
    <comment_count>3</comment_count>
      <attachid>276395</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 06:37:06 -0700</bug_when>
    <thetext>Created attachment 276395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183706</commentid>
    <comment_count>4</comment_count>
      <attachid>276396</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 06:40:15 -0700</bug_when>
    <thetext>Created attachment 276396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183707</commentid>
    <comment_count>5</comment_count>
      <attachid>276396</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-14 06:42:54 -0700</bug_when>
    <thetext>Comment on attachment 276396
Patch

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

&gt; Source/JavaScriptCore/builtins/GeneratorPrototype.js:83
&gt; +    return @generatorResume(this, exception, @GeneratorResumeModeThrow);

Use bytecode intrinsic constants. We can keep in sync with JSGenerator::constants.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:4442
&gt; +                    emitThrowTypeError(ASCIILiteral(&quot;Iterator result interface is not an object.&quot;));

When innerIterator.throw() does not throw, we fall into the usual iteration path (branchOnResult).

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:4491
&gt; +            emitLabel(branchOnResult.get());

The iterator loop&apos;s condition phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184522</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-17 15:39:34 -0700</bug_when>
    <thetext>Note that this is not staging change. It is already introduced into the spec draft (ECMAScript 2016 spec).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184539</commentid>
    <comment_count>7</comment_count>
      <attachid>276396</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-17 16:18:14 -0700</bug_when>
    <thetext>Comment on attachment 276396
Patch

Looks OK to me, but it’s slightly outside my expertise which is why I am not marking it review+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184572</commentid>
    <comment_count>8</comment_count>
      <attachid>276396</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-17 20:24:05 -0700</bug_when>
    <thetext>Comment on attachment 276396
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184583</commentid>
    <comment_count>9</comment_count>
      <attachid>276396</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-04-17 23:51:57 -0700</bug_when>
    <thetext>Comment on attachment 276396
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184592</commentid>
    <comment_count>10</comment_count>
      <attachid>276396</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 00:35:35 -0700</bug_when>
    <thetext>Comment on attachment 276396
Patch

Clearing flags on attachment: 276396

Committed r199652: &lt;http://trac.webkit.org/changeset/199652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184593</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 00:35:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276391</attachid>
            <date>2016-04-14 05:54:58 -0700</date>
            <delta_ts>2016-04-14 06:37:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156576-20160414215510.patch</filename>
            <type>text/plain</type>
            <size>17202</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MzE5OWVhNGQ2OTAxOTIwOTMwMjdiYjZiMjRhZDg5YzYzZDlhODcyLi41MzEzYzlkOGEwOWY3YWFk
MzZjYmEzZDc4OTkzZjY2MDg1NzAyOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wNC0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM3XSB5aWVsZCBzdGFyIHNob3VsZCBub3QgcmV0dXJuIGlmIHRo
ZSBpbm5lciBpdGVyYXRvci50aHJvdyByZXR1cm5zIHsgZG9uZTogdHJ1ZSB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY1NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHNsaWdodCBnZW5l
cmF0b3IgZml4IGluIEVTNy4gV2hlbiBjYWxsaW5nIGdlbmVyYXRvci50aHJvdygpLAorICAgICAg
ICB0aGUgeWllbGQtc3RhciBzaG91bGQgY2FsbCB0aGUgdGhyb3coKSBvZiB0aGUgaW5uZXIgZ2Vu
ZXJhdG9yLiBBdCB0aGF0CisgICAgICAgIHRpbWUsIHdoZW4gdGhlIHJlc3VsdCBvZiB0aHJvdygp
IGlzIHsgZG9uZTogdHJ1ZX0sIHRoZSBnZW5lcmF0b3Igc2hvdWxkCisgICAgICAgIG5vdCBzdG9w
IGl0c2VsZi4KKworICAgICAgICAgICAgZnVuY3Rpb24gKiBnZW4oKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgNDI7CisgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH0KKyAgICAgICAgICAgICAgICB9KCkpOworICAg
ICAgICAgICAgICAgIC8vIENvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgICAgICAgICB5aWVs
ZCA0MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IGcgPSBnZW4oKTsKKyAgICAg
ICAgICAgIGcubmV4dCgpOworICAgICAgICAgICAgc2hvdWxkQmUoZy50aHJvdygpLnZhbHVlLCA0
Mik7CisKKworICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGdlbmVyYXRvclJlc3VtZSk6CisgICAgICAgIChuZXh0KToKKyAgICAgICAgKHJldHVybik6
CisgICAgICAgICh0aHJvdyk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk6OkJ5
dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlSW50
cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWll
bGQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5oOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qczoKKyAgICAgICAgKGdlbik6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL3lpZWxkLXN0YXItdGhyb3ctY29udGludWUuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2VuZXJhdG9yKToKKyAgICAgICAgKHNo
b3VsZFRocm93KToKKwogMjAxNi0wNC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIENNYWtlIE1pbmlCcm93c2VyIHNob3VsZCBiZSBhbiBh
cHAgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2Vu
ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVy
YXRvclByb3RvdHlwZS5qcwppbmRleCA1OTdhODgyMWRlY2FkZDk1MzllNjJhMjllMzQwMWMwZTZk
ZGMwYzZmLi42OTQ2M2MzMzYwMmUyOGY3ZGQ0MjlhZDIzNDZkYjFhN2U1ZWVkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUu
anMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOSwxNSArMjksNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUo
Z2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwog
Ci0gICAgLy8gR2VuZXJhdG9yU3RhdGUuCi0gICAgY29uc3QgQ29tcGxldGVkID0gLTE7Ci0gICAg
Y29uc3QgRXhlY3V0aW5nID0gLTI7Ci0KLSAgICAvLyBSZXN1bWVNb2RlLgotICAgIGNvbnN0IE5v
cm1hbE1vZGUgPSAwOwotICAgIGNvbnN0IFJldHVybk1vZGUgPSAxOwotICAgIGNvbnN0IFRocm93
TW9kZSA9IDI7Ci0KICAgICBsZXQgc3RhdGUgPSBnZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlOwog
ICAgIGxldCBkb25lID0gZmFsc2U7CiAgICAgbGV0IHZhbHVlID0gQHVuZGVmaW5lZDsKQEAgLTQ1
LDI2ICszNiwyNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFs
dWUsIHJlc3VtZU1vZGUpCiAgICAgaWYgKHR5cGVvZiBzdGF0ZSAhPT0gJ251bWJlcicpCiAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJ8dGhpc3wgc2hvdWxkIGJlIGEgZ2VuZXJhdG9yIik7
CiAKLSAgICBpZiAoc3RhdGUgPT09IEV4ZWN1dGluZykKKyAgICBpZiAoc3RhdGUgPT09IEBHZW5l
cmF0b3JTdGF0ZUV4ZWN1dGluZykKICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkdlbmVy
YXRvciBpcyBleGVjdXRpbmciKTsKIAotICAgIGlmIChzdGF0ZSA9PT0gQ29tcGxldGVkKSB7Ci0g
ICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBUaHJvd01vZGUpCisgICAgaWYgKHN0YXRlID09PSBA
R2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQpIHsKKyAgICAgICAgaWYgKHJlc3VtZU1vZGUgPT09IEBH
ZW5lcmF0b3JSZXN1bWVNb2RlVGhyb3cpCiAgICAgICAgICAgICB0aHJvdyBzZW50VmFsdWU7CiAK
ICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBSZXR1cm5N
b2RlKQorICAgICAgICBpZiAocmVzdW1lTW9kZSA9PT0gQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1
cm4pCiAgICAgICAgICAgICB2YWx1ZSA9IHNlbnRWYWx1ZTsKICAgICB9IGVsc2UgewogICAgICAg
ICB0cnkgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IEV4ZWN1dGlu
ZzsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9yU3Rh
dGVFeGVjdXRpbmc7CiAgICAgICAgICAgICB2YWx1ZSA9IGdlbmVyYXRvci5AZ2VuZXJhdG9yTmV4
dC5AY2FsbChnZW5lcmF0b3IuQGdlbmVyYXRvclRoaXMsIGdlbmVyYXRvciwgc3RhdGUsIHNlbnRW
YWx1ZSwgcmVzdW1lTW9kZSk7Ci0gICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLkBnZW5lcmF0b3JT
dGF0ZSA9PT0gRXhlY3V0aW5nKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0
b3JTdGF0ZSA9IENvbXBsZXRlZDsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuQGdlbmVyYXRv
clN0YXRlID09PSBAR2VuZXJhdG9yU3RhdGVFeGVjdXRpbmcpIHsKKyAgICAgICAgICAgICAgICBn
ZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlID0gQEdlbmVyYXRvclN0YXRlQ29tcGxldGVkOwogICAg
ICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGNhdGNo
IChlcnJvcikgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IENvbXBs
ZXRlZDsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9y
U3RhdGVDb21wbGV0ZWQ7CiAgICAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICAgfQogICAg
IH0KQEAgLTc1LDE5ICs2NiwxOSBAQCBmdW5jdGlvbiBuZXh0KHZhbHVlKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVlLCAvKiBO
b3JtYWxNb2RlICovIDApOworICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVl
LCBAR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCk7CiB9CiAKIGZ1bmN0aW9uIHJldHVybih2YWx1
ZSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4gQGdlbmVyYXRvclJlc3VtZSh0
aGlzLCB2YWx1ZSwgLyogUmV0dXJuTW9kZSAqLyAxKTsKKyAgICByZXR1cm4gQGdlbmVyYXRvclJl
c3VtZSh0aGlzLCB2YWx1ZSwgQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1cm4pOwogfQogCiBmdW5j
dGlvbiB0aHJvdyhleGNlcHRpb24pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJu
IEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCAvKiBUaHJvd01vZGUgKi8gMik7Cisg
ICAgcmV0dXJuIEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCBAR2VuZXJhdG9yUmVz
dW1lTW9kZVRocm93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAppbmRleCBkNTg1NGIwYzFl
NDA2NjlkY2Y1ZjFhODQ2MjA2YTdiYjY5MDRhMjRhLi43Yzc1ODc5ZmFmNWU2NWMzYTUwZDU5ZDU3
MzM1ZDljMTVjZDMyMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2Vu
ZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKICNpbmNsdWRlICJOb2Rl
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAgLTU4LDYgKzU5LDExIEBACiAgICAg
bV9zeW1ib2xNYXRjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGljX2Nhc3Q8
U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPm1hdGNoU3ltYm9sLmltcGwoKSkpKTsK
ICAgICBtX3N5bWJvbFNlYXJjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGlj
X2Nhc3Q8U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPnNlYXJjaFN5bWJvbC5pbXBs
KCkpKSk7CiAgICAgbV9zeW1ib2xTcGVjaWVzLnNldChtX3ZtLCBTeW1ib2w6OmNyZWF0ZShtX3Zt
LCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm1fdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5
bWJvbC5pbXBsKCkpKSk7CisgICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlTm9ybWFsLnNldChtX3Zt
LCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5l
cmF0b3JSZXN1bWVNb2RlOjpOb3JtYWxNb2RlKSkpOworICAgIG1fR2VuZXJhdG9yUmVzdW1lTW9k
ZVRocm93LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRv
ckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpUaHJvd01vZGUpKSk7CisgICAgbV9HZW5l
cmF0b3JSZXN1bWVNb2RlUmV0dXJuLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQz
Ml90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpSZXR1cm5Nb2Rl
KSkpOworICAgIG1fR2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0
YXRpY19jYXN0PGludDMyX3Q+KEpTR2VuZXJhdG9yRnVuY3Rpb246OkdlbmVyYXRvclN0YXRlOjpD
b21wbGV0ZWQpKSk7CisgICAgbV9HZW5lcmF0b3JTdGF0ZUV4ZWN1dGluZy5zZXQobV92bSwganNO
dW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNHZW5lcmF0b3JGdW5jdGlvbjo6R2VuZXJhdG9y
U3RhdGU6OkV4ZWN1dGluZykpKTsKIH0KIAogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjpFbWl0dGVy
VHlwZSBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5Ojpsb29rdXAoY29uc3QgSWRlbnRpZmllciYg
aWRlbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAppbmRleCAxMmJhMDlkMjJhYTA5NDEyYTc0
ZjFjYmQ0ZTM4ZjQyMDE0NGZlM2VjLi41NmQwMmJhY2Y5ZjE4OWRmNzliYzBmYjM2ZGNkMThiZDg3
NDhlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKQEAgLTYxLDYgKzYxLDEyIEBACiAgICAgbWFj
cm8oc3ltYm9sTWF0Y2gpIFwKICAgICBtYWNybyhzeW1ib2xTZWFyY2gpIFwKICAgICBtYWNybyhz
eW1ib2xTcGVjaWVzKSBcCisgICAgbWFjcm8oR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCkgXAor
ICAgIG1hY3JvKEdlbmVyYXRvclJlc3VtZU1vZGVUaHJvdykgXAorICAgIG1hY3JvKEdlbmVyYXRv
clJlc3VtZU1vZGVSZXR1cm4pIFwKKyAgICBtYWNybyhHZW5lcmF0b3JTdGF0ZUNvbXBsZXRlZCkg
XAorICAgIG1hY3JvKEdlbmVyYXRvclN0YXRlRXhlY3V0aW5nKSBcCisKIAogY2xhc3MgQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDExY2Y3M2NhMjMzYmFiOTE4
NjQ4MzU4ODgzYTYzNjk5YzljNzYyODYuLmFjNTA2NDhiMzdjNWMyMTQyN2ZmM2Q3MzZmYzdlNmRh
ODIzMjNmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC00NDA2LDYgKzQ0MDYsNyBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0ZXJJRCogYXJn
dW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgZW1pdExhYmVsKGxvb3BTdGFydC5nZXQoKSk7
CiAgICAgICAgICAgICBlbWl0TG9vcEhpbnQoKTsKIAorICAgICAgICAgICAgUmVmUHRyPExhYmVs
PiBicmFuY2hPblJlc3VsdCA9IG5ld0xhYmVsKCk7CiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgZW1pdFlpZWxkUG9pbnQodmFsdWUuZ2V0KCkpOwogCkBAIC00NDIyLDkgKzQ0MjMsNiBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0
ZXJJRCogYXJndW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhy
b3VnaCB0byBUaHJvd01vZGUuCiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
UmVmUHRyPExhYmVsPiByZXR1cm5TZXF1ZW5jZSA9IG5ld0xhYmVsKCk7Ci0gICAgICAgICAgICAg
ICAgUmVmUHRyPExhYmVsPiByZXR1cm5XaXRoSXRlcmF0b3JSZXN1bHQgPSBuZXdMYWJlbCgpOwot
ICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXR1cm5JdGVyYXRvclJlc3VsdCA9
IG5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgICAgIC8vIFRocm93LgogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPExhYmVsPiB0aHJvd01ldGhvZEZvdW5k
ID0gbmV3TGFiZWwoKTsKQEAgLTQ0MzgsNTAgKzQ0MzYsNDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJv
d2FibGUKICAgICAgICAgICAgICAgICAgICAgQ2FsbEFyZ3VtZW50cyB0aHJvd0FyZ3VtZW50cygq
dGhpcywgbnVsbHB0ciwgMSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRNb3ZlKHRocm93QXJn
dW1lbnRzLnRoaXNSZWdpc3RlcigpLCBpdGVyYXRvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGVtaXRNb3ZlKHRocm93QXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCksIGdlbmVyYXRv
clZhbHVlUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRDYWxsKHJldHVybkl0
ZXJhdG9yUmVzdWx0LmdldCgpLCB0aHJvd01ldGhvZC5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9u
LCB0aHJvd0FyZ3VtZW50cywgbm9kZS0+ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2Rl
LT5kaXZvdEVuZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXAocmV0dXJuV2l0aEl0
ZXJhdG9yUmVzdWx0LmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdENhbGwodmFsdWUu
Z2V0KCksIHRocm93TWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHRocm93QXJndW1l
bnRzLCBub2RlLT5kaXZvdCgpLCBub2RlLT5kaXZvdFN0YXJ0KCksIG5vZGUtPmRpdm90RW5kKCkp
OworCisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxMYWJlbD4gcmV0dXJuSXRlcmF0b3JSZXN1
bHRJc09iamVjdCA9IG5ld0xhYmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZU
cnVlKGVtaXRJc09iamVjdChuZXdUZW1wb3JhcnkoKSwgdmFsdWUuZ2V0KCkpLCBicmFuY2hPblJl
c3VsdC5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcihBU0NJ
SUxpdGVyYWwoIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgLy8gUmV0dXJuLgogICAgICAg
ICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5MYWJlbC5nZXQoKSk7CiAgICAgICAgICAgICAgICAg
eworCiAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxMYWJlbD4gcmV0dXJuTWV0aG9kRm91bmQg
PSBuZXdMYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmV0
dXJuTWV0aG9kID0gZW1pdEdldEJ5SWQobmV3VGVtcG9yYXJ5KCksIGl0ZXJhdG9yLmdldCgpLCBw
cm9wZXJ0eU5hbWVzKCkucmV0dXJuS2V5d29yZCk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRK
dW1wSWZGYWxzZShlbWl0SXNVbmRlZmluZWQobmV3VGVtcG9yYXJ5KCksIHJldHVybk1ldGhvZC5n
ZXQoKSksIHJldHVybk1ldGhvZEZvdW5kLmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBl
bWl0TW92ZSh2YWx1ZS5nZXQoKSwgZ2VuZXJhdG9yVmFsdWVSZWdpc3RlcigpKTsKKworICAgICAg
ICAgICAgICAgICAgICBSZWZQdHI8TGFiZWw+IHJldHVyblNlcXVlbmNlID0gbmV3TGFiZWwoKTsK
ICAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXAocmV0dXJuU2VxdWVuY2UuZ2V0KCkpOwogCiAg
ICAgICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5NZXRob2RGb3VuZC5nZXQoKSk7CiAg
ICAgICAgICAgICAgICAgICAgIENhbGxBcmd1bWVudHMgcmV0dXJuQXJndW1lbnRzKCp0aGlzLCBu
dWxscHRyLCAxKTsKICAgICAgICAgICAgICAgICAgICAgZW1pdE1vdmUocmV0dXJuQXJndW1lbnRz
LnRoaXNSZWdpc3RlcigpLCBpdGVyYXRvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVt
aXRNb3ZlKHJldHVybkFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApLCBnZW5lcmF0b3JWYWx1
ZVJlZ2lzdGVyKCkpOwotICAgICAgICAgICAgICAgICAgICBlbWl0Q2FsbChyZXR1cm5JdGVyYXRv
clJlc3VsdC5nZXQoKSwgcmV0dXJuTWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHJl
dHVybkFyZ3VtZW50cywgbm9kZS0+ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2RlLT5k
aXZvdEVuZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdENhbGwodmFsdWUuZ2V0KCksIHJl
dHVybk1ldGhvZC5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9uLCByZXR1cm5Bcmd1bWVudHMsIG5v
ZGUtPmRpdm90KCksIG5vZGUtPmRpdm90U3RhcnQoKSwgbm9kZS0+ZGl2b3RFbmQoKSk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgLy8gRmFsbHRocm91Z2ggdG8gcmV0dXJuV2l0aEl0ZXJhdG9yUmVz
dWx0LgotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1
cm5XaXRoSXRlcmF0b3JSZXN1bHQuZ2V0KCkpOwotICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgUmVmUHRyPExhYmVsPiByZXR1cm5JdGVyYXRvclJlc3VsdElzT2JqZWN0ID0g
bmV3TGFiZWwoKTsKLSAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2Jq
ZWN0KG5ld1RlbXBvcmFyeSgpLCByZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSksIHJldHVybkl0
ZXJhdG9yUmVzdWx0SXNPYmplY3QuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBlbWl0SnVt
cElmVHJ1ZShlbWl0SXNPYmplY3QobmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpKSwgcmV0dXJu
SXRlcmF0b3JSZXN1bHRJc09iamVjdC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRU
aHJvd1R5cGVFcnJvcihBU0NJSUxpdGVyYWwoIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMg
bm90IGFuIG9iamVjdC4iKSk7CiAKICAgICAgICAgICAgICAgICAgICAgZW1pdExhYmVsKHJldHVy
bkl0ZXJhdG9yUmVzdWx0SXNPYmplY3QuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBSZWZQ
dHI8TGFiZWw+IHJldHVybkZyb21HZW5lcmF0b3IgPSBuZXdMYWJlbCgpOwotICAgICAgICAgICAg
ICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0R2V0QnlJZChuZXdUZW1wb3JhcnkoKSwgcmV0dXJu
SXRlcmF0b3JSZXN1bHQuZ2V0KCksIHByb3BlcnR5TmFtZXMoKS5kb25lKSwgcmV0dXJuRnJvbUdl
bmVyYXRvci5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRH
ZXRCeUlkKG5ld1RlbXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLmRvbmUp
LCByZXR1cm5Gcm9tR2VuZXJhdG9yLmdldCgpKTsKIAotICAgICAgICAgICAgICAgICAgICBlbWl0
R2V0QnlJZCh2YWx1ZS5nZXQoKSwgcmV0dXJuSXRlcmF0b3JSZXN1bHQuZ2V0KCksIHByb3BlcnR5
TmFtZXMoKS52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdl
dCgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKICAgICAgICAgICAgICAg
ICAgICAgZW1pdEp1bXAobG9vcFN0YXJ0LmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBl
bWl0TGFiZWwocmV0dXJuRnJvbUdlbmVyYXRvci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCByZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSwgcHJv
cGVydHlOYW1lcygpLnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdEdldEJ5SWQodmFs
dWUuZ2V0KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkudmFsdWUpOwogCi0gICAgICAg
ICAgICAgICAgICAgIC8vIEZhbGx0aHJvdWdoIHRvIHJldHVyblNlcXVlbmNlLgotICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5TZXF1ZW5jZS5nZXQo
KSk7Ci0gICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlbWl0TGFiZWwocmV0
dXJuU2VxdWVuY2UuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbkZpbmFsbHlC
bG9jaygpKQogICAgICAgICAgICAgICAgICAgICAgICAgZW1pdFBvcFNjb3BlcyhzY29wZVJlZ2lz
dGVyKCksIDApOwogICAgICAgICAgICAgICAgICAgICBlbWl0UmV0dXJuKHZhbHVlLmdldCgpKTsK
QEAgLTQ0OTMsMTIgKzQ0ODgsMTIgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgZW1pdExhYmVsKG5leHRFbGVtZW50LmdldCgpKTsKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVl
LmdldCgpLCBpdGVyYXRvci5nZXQoKSwgdmFsdWUuZ2V0KCksIG5vZGUpOwotICAgICAgICAgICAg
ICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRHZXRCeUlkKG5ld1RlbXBvcmFyeSgpLCB2YWx1ZS5nZXQo
KSwgcHJvcGVydHlOYW1lcygpLmRvbmUpLCBsb29wRG9uZS5nZXQoKSk7Ci0gICAgICAgICAgICAg
ICAgZW1pdEdldEJ5SWQodmFsdWUuZ2V0KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCku
dmFsdWUpOwotICAgICAgICAgICAgICAgIGVtaXRKdW1wKGxvb3BTdGFydC5nZXQoKSk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVlLmdl
dCgpLCBpdGVyYXRvci5nZXQoKSwgdmFsdWUuZ2V0KCksIG5vZGUpOworCisgICAgICAgICAgICBl
bWl0TGFiZWwoYnJhbmNoT25SZXN1bHQuZ2V0KCkpOworICAgICAgICAgICAgZW1pdEp1bXBJZlRy
dWUoZW1pdEdldEJ5SWQobmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVz
KCkuZG9uZSksIGxvb3BEb25lLmdldCgpKTsKKyAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVl
LmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKKyAgICAgICAgICAg
IGVtaXRKdW1wKGxvb3BTdGFydC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgZW1pdExhYmVs
KGxvb3BEb25lLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmgKaW5kZXggZmYxMDcyYTUyMTY1ZGQxN2RlZTA5
NjdkZWU3YjhhZTQ4OTBmMmQ0Ni4uMzZmNjFjNWYyMGY1NmJlZmQ2YzU1Nzg0MmIxOWUzOWIxOWEz
YTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmF0
b3JGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJh
dG9yRnVuY3Rpb24uaApAQCAtNTAsNiArNTAsMTEgQEAgY2xhc3MgSlNHZW5lcmF0b3JGdW5jdGlv
biA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKICAgICAgICAgVGhyb3dNb2RlID0gMgogICAgIH07CiAK
KyAgICBlbnVtIGNsYXNzIEdlbmVyYXRvclN0YXRlIDogaW50MzJfdCB7CisgICAgICAgIENvbXBs
ZXRlZCA9IC0xLAorICAgICAgICBFeGVjdXRpbmcgPSAtMiwKKyAgICB9OworCiAgICAgY29uc3Qg
c3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAK
ICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2VuZXJhdG9yLXlpZWxkLXN0YXIuanMKaW5kZXggNDVhYmVm
YTA5YzI5MWUzYzc5NjJiM2IzNzNjNTA4ODYyZDY5OGI1Yi4uNzQ4YTgzNWEzNzI5MjU4YzVkZDU0
MGY3NmY1ODliN2NmZGZiNjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dlbmVyYXRvci15aWVsZC1zdGFyLmpzCkBAIC0yNjMsMTQgKzI2
MywxNyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKICAgICBm
dW5jdGlvbiAqZ2VuKCkKICAgICB7CiAgICAgICAgIGxldCBpdGVyID0gbmV3IEl0ZXJhdG9yKCk7
Ci0gICAgICAgIHlpZWxkICogaXRlcjsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHlpZWxkICogaXRl
cjsKKyAgICAgICAgc2hvdWxkQmUocmVzdWx0LCA0Mik7CisgICAgICAgIHlpZWxkIDIxOwogICAg
IH0KIAogICAgIGxldCBnID0gZ2VuKCk7CiAgICAgc2hvdWxkQmUoZy5uZXh0KDApLnZhbHVlLCB1
bmRlZmluZWQpOwogICAgIHNob3VsZEJlKGcubmV4dCgxKS52YWx1ZSwgMSk7CiAgICAgc2hvdWxk
QmUoZy5uZXh0KDIpLnZhbHVlLCAyKTsKLSAgICBzaG91bGRCZShnLnRocm93KDQyKS52YWx1ZSwg
NDIpOworICAgIHNob3VsZEJlKGcudGhyb3coNDIpLnZhbHVlLCAyMSk7CisgICAgc2hvdWxkQmUo
Zy5uZXh0KCkuZG9uZSwgdHJ1ZSk7CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBn
LnRocm93KDQ0KTsKICAgICB9LCBgNDRgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MveWllbGQtc3Rhci10aHJvdy1jb250aW51ZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MveWllbGQtc3Rhci10aHJvdy1jb250aW51ZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NmVmYWE2ZTdjODlmYmRlZDNmNDVhNmI4NDQ3NWNkNGU1NTQxNTFkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy95aWVsZC1z
dGFyLXRocm93LWNvbnRpbnVlLmpzCkBAIC0wLDAgKzEsNzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJv
clRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAg
ICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVl
OworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigibm90IHRocm93biIpOworICAgIGlmIChTdHJpbmcoZXJyb3Ip
ICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAk
e1N0cmluZyhlcnJvcil9YCk7Cit9CisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gKiBn
ZW5lcmF0b3IoKSB7CisgICAgICAgIHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB5aWVsZCAiZm9vIjsKKyAgICAgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSgpKTsKKyAgICAgICAgLy8gT0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQg
ImJhciI7CisgICAgfQorICAgIHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0
KCk7CisgICAgc2hvdWxkQmUoaXRlclsidGhyb3ciXSgpLnZhbHVlLCAiYmFyIik7Cit9KCkpOwor
CisoZnVuY3Rpb24gKCkgeworICAgIGZ1bmN0aW9uICogZ2VuZXJhdG9yKCkgeworICAgICAgICB5
aWVsZCAqIChmdW5jdGlvbiAqICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgeWllbGQgImZvbyI7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAg
ICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSgpKTsKKyAgICAgICAgLy8gT0ss
IGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7CisgICAgfQorICAgIHZh
ciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hvdWxkVGhyb3co
KCkgPT4geworICAgICAgICBpdGVyWyJ0aHJvdyJdKG5ldyBFcnJvcigiTkciKSk7CisgICAgfSwg
YEVycm9yOiBOR2ApOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiAqIGdl
bmVyYXRvcigpIHsKKyAgICAgICAgeWllbGQgKiAoZnVuY3Rpb24gKiAoKSB7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIHlpZWxkICJmb28iOworICAgICAgICAgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgeWllbGQgImNvY29hIjsKKyAgICAg
ICAgfSgpKTsKKyAgICAgICAgLy8gT0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWll
bGQgImJhciI7CisgICAgfQorICAgIHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5u
ZXh0KCk7CisgICAgc2hvdWxkQmUoaXRlclsidGhyb3ciXSgpLnZhbHVlLCAiY29jb2EiKTsKKyAg
ICBzaG91bGRCZShpdGVyLm5leHQoKS52YWx1ZSwgImJhciIpOworfSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276395</attachid>
            <date>2016-04-14 06:37:06 -0700</date>
            <delta_ts>2016-04-14 06:40:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156576-20160414223717.patch</filename>
            <type>text/plain</type>
            <size>17124</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MzE5OWVhNGQ2OTAxOTIwOTMwMjdiYjZiMjRhZDg5YzYzZDlhODcyLi41MzEzYzlkOGEwOWY3YWFk
MzZjYmEzZDc4OTkzZjY2MDg1NzAyOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wNC0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM3XSB5aWVsZCBzdGFyIHNob3VsZCBub3QgcmV0dXJuIGlmIHRo
ZSBpbm5lciBpdGVyYXRvci50aHJvdyByZXR1cm5zIHsgZG9uZTogdHJ1ZSB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY1NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHNsaWdodCBnZW5l
cmF0b3IgZml4IGluIEVTNy4gV2hlbiBjYWxsaW5nIGdlbmVyYXRvci50aHJvdygpLAorICAgICAg
ICB0aGUgeWllbGQtc3RhciBzaG91bGQgY2FsbCB0aGUgdGhyb3coKSBvZiB0aGUgaW5uZXIgZ2Vu
ZXJhdG9yLiBBdCB0aGF0CisgICAgICAgIHRpbWUsIHdoZW4gdGhlIHJlc3VsdCBvZiB0aHJvdygp
IGlzIHsgZG9uZTogdHJ1ZX0sIHRoZSBnZW5lcmF0b3Igc2hvdWxkCisgICAgICAgIG5vdCBzdG9w
IGl0c2VsZi4KKworICAgICAgICAgICAgZnVuY3Rpb24gKiBnZW4oKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgNDI7CisgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH0KKyAgICAgICAgICAgICAgICB9KCkpOworICAg
ICAgICAgICAgICAgIC8vIENvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgICAgICAgICB5aWVs
ZCA0MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IGcgPSBnZW4oKTsKKyAgICAg
ICAgICAgIGcubmV4dCgpOworICAgICAgICAgICAgc2hvdWxkQmUoZy50aHJvdygpLnZhbHVlLCA0
Mik7CisKKworICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGdlbmVyYXRvclJlc3VtZSk6CisgICAgICAgIChuZXh0KToKKyAgICAgICAgKHJldHVybik6
CisgICAgICAgICh0aHJvdyk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk6OkJ5
dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlSW50
cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWll
bGQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5oOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qczoKKyAgICAgICAgKGdlbik6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL3lpZWxkLXN0YXItdGhyb3ctY29udGludWUuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2VuZXJhdG9yKToKKyAgICAgICAgKHNo
b3VsZFRocm93KToKKwogMjAxNi0wNC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIENNYWtlIE1pbmlCcm93c2VyIHNob3VsZCBiZSBhbiBh
cHAgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2Vu
ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVy
YXRvclByb3RvdHlwZS5qcwppbmRleCA1OTdhODgyMWRlY2FkZDk1MzllNjJhMjllMzQwMWMwZTZk
ZGMwYzZmLi42OTQ2M2MzMzYwMmUyOGY3ZGQ0MjlhZDIzNDZkYjFhN2U1ZWVkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUu
anMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOSwxNSArMjksNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUo
Z2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwog
Ci0gICAgLy8gR2VuZXJhdG9yU3RhdGUuCi0gICAgY29uc3QgQ29tcGxldGVkID0gLTE7Ci0gICAg
Y29uc3QgRXhlY3V0aW5nID0gLTI7Ci0KLSAgICAvLyBSZXN1bWVNb2RlLgotICAgIGNvbnN0IE5v
cm1hbE1vZGUgPSAwOwotICAgIGNvbnN0IFJldHVybk1vZGUgPSAxOwotICAgIGNvbnN0IFRocm93
TW9kZSA9IDI7Ci0KICAgICBsZXQgc3RhdGUgPSBnZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlOwog
ICAgIGxldCBkb25lID0gZmFsc2U7CiAgICAgbGV0IHZhbHVlID0gQHVuZGVmaW5lZDsKQEAgLTQ1
LDI2ICszNiwyNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFs
dWUsIHJlc3VtZU1vZGUpCiAgICAgaWYgKHR5cGVvZiBzdGF0ZSAhPT0gJ251bWJlcicpCiAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJ8dGhpc3wgc2hvdWxkIGJlIGEgZ2VuZXJhdG9yIik7
CiAKLSAgICBpZiAoc3RhdGUgPT09IEV4ZWN1dGluZykKKyAgICBpZiAoc3RhdGUgPT09IEBHZW5l
cmF0b3JTdGF0ZUV4ZWN1dGluZykKICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkdlbmVy
YXRvciBpcyBleGVjdXRpbmciKTsKIAotICAgIGlmIChzdGF0ZSA9PT0gQ29tcGxldGVkKSB7Ci0g
ICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBUaHJvd01vZGUpCisgICAgaWYgKHN0YXRlID09PSBA
R2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQpIHsKKyAgICAgICAgaWYgKHJlc3VtZU1vZGUgPT09IEBH
ZW5lcmF0b3JSZXN1bWVNb2RlVGhyb3cpCiAgICAgICAgICAgICB0aHJvdyBzZW50VmFsdWU7CiAK
ICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBSZXR1cm5N
b2RlKQorICAgICAgICBpZiAocmVzdW1lTW9kZSA9PT0gQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1
cm4pCiAgICAgICAgICAgICB2YWx1ZSA9IHNlbnRWYWx1ZTsKICAgICB9IGVsc2UgewogICAgICAg
ICB0cnkgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IEV4ZWN1dGlu
ZzsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9yU3Rh
dGVFeGVjdXRpbmc7CiAgICAgICAgICAgICB2YWx1ZSA9IGdlbmVyYXRvci5AZ2VuZXJhdG9yTmV4
dC5AY2FsbChnZW5lcmF0b3IuQGdlbmVyYXRvclRoaXMsIGdlbmVyYXRvciwgc3RhdGUsIHNlbnRW
YWx1ZSwgcmVzdW1lTW9kZSk7Ci0gICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLkBnZW5lcmF0b3JT
dGF0ZSA9PT0gRXhlY3V0aW5nKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0
b3JTdGF0ZSA9IENvbXBsZXRlZDsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuQGdlbmVyYXRv
clN0YXRlID09PSBAR2VuZXJhdG9yU3RhdGVFeGVjdXRpbmcpIHsKKyAgICAgICAgICAgICAgICBn
ZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlID0gQEdlbmVyYXRvclN0YXRlQ29tcGxldGVkOwogICAg
ICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGNhdGNo
IChlcnJvcikgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IENvbXBs
ZXRlZDsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9y
U3RhdGVDb21wbGV0ZWQ7CiAgICAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICAgfQogICAg
IH0KQEAgLTc1LDE5ICs2NiwxOSBAQCBmdW5jdGlvbiBuZXh0KHZhbHVlKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVlLCAvKiBO
b3JtYWxNb2RlICovIDApOworICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVl
LCBAR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCk7CiB9CiAKIGZ1bmN0aW9uIHJldHVybih2YWx1
ZSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4gQGdlbmVyYXRvclJlc3VtZSh0
aGlzLCB2YWx1ZSwgLyogUmV0dXJuTW9kZSAqLyAxKTsKKyAgICByZXR1cm4gQGdlbmVyYXRvclJl
c3VtZSh0aGlzLCB2YWx1ZSwgQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1cm4pOwogfQogCiBmdW5j
dGlvbiB0aHJvdyhleGNlcHRpb24pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJu
IEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCAvKiBUaHJvd01vZGUgKi8gMik7Cisg
ICAgcmV0dXJuIEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCBAR2VuZXJhdG9yUmVz
dW1lTW9kZVRocm93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAppbmRleCBkNTg1NGIwYzFl
NDA2NjlkY2Y1ZjFhODQ2MjA2YTdiYjY5MDRhMjRhLi43Yzc1ODc5ZmFmNWU2NWMzYTUwZDU5ZDU3
MzM1ZDljMTVjZDMyMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2Vu
ZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKICNpbmNsdWRlICJOb2Rl
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAgLTU4LDYgKzU5LDExIEBACiAgICAg
bV9zeW1ib2xNYXRjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGljX2Nhc3Q8
U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPm1hdGNoU3ltYm9sLmltcGwoKSkpKTsK
ICAgICBtX3N5bWJvbFNlYXJjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGlj
X2Nhc3Q8U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPnNlYXJjaFN5bWJvbC5pbXBs
KCkpKSk7CiAgICAgbV9zeW1ib2xTcGVjaWVzLnNldChtX3ZtLCBTeW1ib2w6OmNyZWF0ZShtX3Zt
LCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm1fdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5
bWJvbC5pbXBsKCkpKSk7CisgICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlTm9ybWFsLnNldChtX3Zt
LCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5l
cmF0b3JSZXN1bWVNb2RlOjpOb3JtYWxNb2RlKSkpOworICAgIG1fR2VuZXJhdG9yUmVzdW1lTW9k
ZVRocm93LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRv
ckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpUaHJvd01vZGUpKSk7CisgICAgbV9HZW5l
cmF0b3JSZXN1bWVNb2RlUmV0dXJuLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQz
Ml90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpSZXR1cm5Nb2Rl
KSkpOworICAgIG1fR2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0
YXRpY19jYXN0PGludDMyX3Q+KEpTR2VuZXJhdG9yRnVuY3Rpb246OkdlbmVyYXRvclN0YXRlOjpD
b21wbGV0ZWQpKSk7CisgICAgbV9HZW5lcmF0b3JTdGF0ZUV4ZWN1dGluZy5zZXQobV92bSwganNO
dW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNHZW5lcmF0b3JGdW5jdGlvbjo6R2VuZXJhdG9y
U3RhdGU6OkV4ZWN1dGluZykpKTsKIH0KIAogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjpFbWl0dGVy
VHlwZSBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5Ojpsb29rdXAoY29uc3QgSWRlbnRpZmllciYg
aWRlbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAppbmRleCAxMmJhMDlkMjJhYTA5NDEyYTc0
ZjFjYmQ0ZTM4ZjQyMDE0NGZlM2VjLi41NmQwMmJhY2Y5ZjE4OWRmNzliYzBmYjM2ZGNkMThiZDg3
NDhlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKQEAgLTYxLDYgKzYxLDEyIEBACiAgICAgbWFj
cm8oc3ltYm9sTWF0Y2gpIFwKICAgICBtYWNybyhzeW1ib2xTZWFyY2gpIFwKICAgICBtYWNybyhz
eW1ib2xTcGVjaWVzKSBcCisgICAgbWFjcm8oR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCkgXAor
ICAgIG1hY3JvKEdlbmVyYXRvclJlc3VtZU1vZGVUaHJvdykgXAorICAgIG1hY3JvKEdlbmVyYXRv
clJlc3VtZU1vZGVSZXR1cm4pIFwKKyAgICBtYWNybyhHZW5lcmF0b3JTdGF0ZUNvbXBsZXRlZCkg
XAorICAgIG1hY3JvKEdlbmVyYXRvclN0YXRlRXhlY3V0aW5nKSBcCisKIAogY2xhc3MgQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDExY2Y3M2NhMjMzYmFiOTE4
NjQ4MzU4ODgzYTYzNjk5YzljNzYyODYuLmM3OGM3MmY4OTExNzc0ZDBiYTI1MzhkMDY1ZGI0ODBk
OWQxMWU2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC00NDA2LDYgKzQ0MDYsNyBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0ZXJJRCogYXJn
dW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgZW1pdExhYmVsKGxvb3BTdGFydC5nZXQoKSk7
CiAgICAgICAgICAgICBlbWl0TG9vcEhpbnQoKTsKIAorICAgICAgICAgICAgUmVmUHRyPExhYmVs
PiBicmFuY2hPblJlc3VsdCA9IG5ld0xhYmVsKCk7CiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgZW1pdFlpZWxkUG9pbnQodmFsdWUuZ2V0KCkpOwogCkBAIC00NDIyLDkgKzQ0MjMsNiBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0
ZXJJRCogYXJndW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhy
b3VnaCB0byBUaHJvd01vZGUuCiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
UmVmUHRyPExhYmVsPiByZXR1cm5TZXF1ZW5jZSA9IG5ld0xhYmVsKCk7Ci0gICAgICAgICAgICAg
ICAgUmVmUHRyPExhYmVsPiByZXR1cm5XaXRoSXRlcmF0b3JSZXN1bHQgPSBuZXdMYWJlbCgpOwot
ICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXR1cm5JdGVyYXRvclJlc3VsdCA9
IG5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgICAgIC8vIFRocm93LgogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPExhYmVsPiB0aHJvd01ldGhvZEZvdW5k
ID0gbmV3TGFiZWwoKTsKQEAgLTQ0MzgsNTAgKzQ0MzYsNDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJv
d2FibGUKICAgICAgICAgICAgICAgICAgICAgQ2FsbEFyZ3VtZW50cyB0aHJvd0FyZ3VtZW50cygq
dGhpcywgbnVsbHB0ciwgMSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRNb3ZlKHRocm93QXJn
dW1lbnRzLnRoaXNSZWdpc3RlcigpLCBpdGVyYXRvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGVtaXRNb3ZlKHRocm93QXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCksIGdlbmVyYXRv
clZhbHVlUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRDYWxsKHJldHVybkl0
ZXJhdG9yUmVzdWx0LmdldCgpLCB0aHJvd01ldGhvZC5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9u
LCB0aHJvd0FyZ3VtZW50cywgbm9kZS0+ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2Rl
LT5kaXZvdEVuZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXAocmV0dXJuV2l0aEl0
ZXJhdG9yUmVzdWx0LmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdENhbGwodmFsdWUu
Z2V0KCksIHRocm93TWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHRocm93QXJndW1l
bnRzLCBub2RlLT5kaXZvdCgpLCBub2RlLT5kaXZvdFN0YXJ0KCksIG5vZGUtPmRpdm90RW5kKCkp
OworCisgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRJc09iamVjdChuZXdU
ZW1wb3JhcnkoKSwgdmFsdWUuZ2V0KCkpLCBicmFuY2hPblJlc3VsdC5nZXQoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcihBU0NJSUxpdGVyYWwoIkl0ZXJhdG9yIHJl
c3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVjdC4iKSk7CiAgICAgICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAgICAgLy8gUmV0dXJuLgogICAgICAgICAgICAgICAgIGVtaXRMYWJlbChy
ZXR1cm5MYWJlbC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgeworCiAgICAgICAgICAgICAgICAg
ICAgIFJlZlB0cjxMYWJlbD4gcmV0dXJuTWV0aG9kRm91bmQgPSBuZXdMYWJlbCgpOwogICAgICAg
ICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmV0dXJuTWV0aG9kID0gZW1pdEdldEJ5
SWQobmV3VGVtcG9yYXJ5KCksIGl0ZXJhdG9yLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkucmV0dXJu
S2V5d29yZCk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZGYWxzZShlbWl0SXNVbmRl
ZmluZWQobmV3VGVtcG9yYXJ5KCksIHJldHVybk1ldGhvZC5nZXQoKSksIHJldHVybk1ldGhvZEZv
dW5kLmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBlbWl0TW92ZSh2YWx1ZS5nZXQoKSwg
Z2VuZXJhdG9yVmFsdWVSZWdpc3RlcigpKTsKKworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8
TGFiZWw+IHJldHVyblNlcXVlbmNlID0gbmV3TGFiZWwoKTsKICAgICAgICAgICAgICAgICAgICAg
ZW1pdEp1bXAocmV0dXJuU2VxdWVuY2UuZ2V0KCkpOwogCiAgICAgICAgICAgICAgICAgICAgIGVt
aXRMYWJlbChyZXR1cm5NZXRob2RGb3VuZC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIENh
bGxBcmd1bWVudHMgcmV0dXJuQXJndW1lbnRzKCp0aGlzLCBudWxscHRyLCAxKTsKICAgICAgICAg
ICAgICAgICAgICAgZW1pdE1vdmUocmV0dXJuQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBpdGVy
YXRvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRNb3ZlKHJldHVybkFyZ3VtZW50
cy5hcmd1bWVudFJlZ2lzdGVyKDApLCBnZW5lcmF0b3JWYWx1ZVJlZ2lzdGVyKCkpOwotICAgICAg
ICAgICAgICAgICAgICBlbWl0Q2FsbChyZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSwgcmV0dXJu
TWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHJldHVybkFyZ3VtZW50cywgbm9kZS0+
ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2RlLT5kaXZvdEVuZCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZW1pdENhbGwodmFsdWUuZ2V0KCksIHJldHVybk1ldGhvZC5nZXQoKSwgTm9F
eHBlY3RlZEZ1bmN0aW9uLCByZXR1cm5Bcmd1bWVudHMsIG5vZGUtPmRpdm90KCksIG5vZGUtPmRp
dm90U3RhcnQoKSwgbm9kZS0+ZGl2b3RFbmQoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgLy8g
RmFsbHRocm91Z2ggdG8gcmV0dXJuV2l0aEl0ZXJhdG9yUmVzdWx0LgotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5XaXRoSXRlcmF0b3JSZXN1bHQu
Z2V0KCkpOwotICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPExh
YmVsPiByZXR1cm5JdGVyYXRvclJlc3VsdElzT2JqZWN0ID0gbmV3TGFiZWwoKTsKLSAgICAgICAg
ICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2JqZWN0KG5ld1RlbXBvcmFyeSgpLCBy
ZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSksIHJldHVybkl0ZXJhdG9yUmVzdWx0SXNPYmplY3Qu
Z2V0KCkpOworICAgICAgICAgICAgICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0SXNPYmplY3Qo
bmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpKSwgcmV0dXJuSXRlcmF0b3JSZXN1bHRJc09iamVj
dC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcihBU0NJSUxp
dGVyYWwoIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVjdC4iKSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgZW1pdExhYmVsKHJldHVybkl0ZXJhdG9yUmVzdWx0SXNPYmpl
Y3QuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBSZWZQdHI8TGFiZWw+IHJldHVybkZyb21H
ZW5lcmF0b3IgPSBuZXdMYWJlbCgpOwotICAgICAgICAgICAgICAgICAgICBlbWl0SnVtcElmVHJ1
ZShlbWl0R2V0QnlJZChuZXdUZW1wb3JhcnkoKSwgcmV0dXJuSXRlcmF0b3JSZXN1bHQuZ2V0KCks
IHByb3BlcnR5TmFtZXMoKS5kb25lKSwgcmV0dXJuRnJvbUdlbmVyYXRvci5nZXQoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRHZXRCeUlkKG5ld1RlbXBvcmFyeSgp
LCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLmRvbmUpLCByZXR1cm5Gcm9tR2VuZXJhdG9y
LmdldCgpKTsKIAotICAgICAgICAgICAgICAgICAgICBlbWl0R2V0QnlJZCh2YWx1ZS5nZXQoKSwg
cmV0dXJuSXRlcmF0b3JSZXN1bHQuZ2V0KCksIHByb3BlcnR5TmFtZXMoKS52YWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJv
cGVydHlOYW1lcygpLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXAobG9vcFN0
YXJ0LmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBlbWl0TGFiZWwocmV0dXJuRnJvbUdl
bmVyYXRvci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdl
dCgpLCByZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsK
LQotICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhyb3VnaCB0byByZXR1cm5TZXF1ZW5jZS4K
LSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVl
LmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKIAotICAgICAgICAg
ICAgICAgIGVtaXRMYWJlbChyZXR1cm5TZXF1ZW5jZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICBlbWl0TGFiZWwocmV0dXJuU2VxdWVuY2UuZ2V0KCkpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbkZpbmFsbHlCbG9jaygpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgZW1pdFBvcFNjb3BlcyhzY29wZVJlZ2lzdGVyKCksIDApOwogICAgICAgICAg
ICAgICAgICAgICBlbWl0UmV0dXJuKHZhbHVlLmdldCgpKTsKQEAgLTQ0OTMsMTIgKzQ0ODcsMTIg
QEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lz
dGVySUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ZW1pdExhYmVsKG5leHRFbGVtZW50LmdldCgpKTsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVlLmdldCgpLCBpdGVyYXRvci5nZXQo
KSwgdmFsdWUuZ2V0KCksIG5vZGUpOwotICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVt
aXRHZXRCeUlkKG5ld1RlbXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLmRv
bmUpLCBsb29wRG9uZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgZW1pdEdldEJ5SWQodmFsdWUu
Z2V0KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkudmFsdWUpOwotICAgICAgICAgICAg
ICAgIGVtaXRKdW1wKGxvb3BTdGFydC5nZXQoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVlLmdldCgpLCBpdGVyYXRvci5nZXQoKSwg
dmFsdWUuZ2V0KCksIG5vZGUpOworCisgICAgICAgICAgICBlbWl0TGFiZWwoYnJhbmNoT25SZXN1
bHQuZ2V0KCkpOworICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdEdldEJ5SWQobmV3VGVt
cG9yYXJ5KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkuZG9uZSksIGxvb3BEb25lLmdl
dCgpKTsKKyAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCB2YWx1ZS5nZXQoKSwg
cHJvcGVydHlOYW1lcygpLnZhbHVlKTsKKyAgICAgICAgICAgIGVtaXRKdW1wKGxvb3BTdGFydC5n
ZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgZW1pdExhYmVsKGxvb3BEb25lLmdldCgpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyYXRv
ckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyYXRvckZ1
bmN0aW9uLmgKaW5kZXggZmYxMDcyYTUyMTY1ZGQxN2RlZTA5NjdkZWU3YjhhZTQ4OTBmMmQ0Ni4u
MzZmNjFjNWYyMGY1NmJlZmQ2YzU1Nzg0MmIxOWUzOWIxOWEzYTkxOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24uaApAQCAtNTAs
NiArNTAsMTEgQEAgY2xhc3MgSlNHZW5lcmF0b3JGdW5jdGlvbiA6IHB1YmxpYyBKU0Z1bmN0aW9u
IHsKICAgICAgICAgVGhyb3dNb2RlID0gMgogICAgIH07CiAKKyAgICBlbnVtIGNsYXNzIEdlbmVy
YXRvclN0YXRlIDogaW50MzJfdCB7CisgICAgICAgIENvbXBsZXRlZCA9IC0xLAorICAgICAgICBF
eGVjdXRpbmcgPSAtMiwKKyAgICB9OworCiAgICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBERUNMQVJFX0VYUE9SVF9J
TkZPOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZW5l
cmF0b3IteWllbGQtc3Rhci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2VuZXJhdG9yLXlpZWxkLXN0YXIuanMKaW5kZXggNDVhYmVmYTA5YzI5MWUzYzc5NjJiM2IzNzNj
NTA4ODYyZDY5OGI1Yi4uNzQ4YTgzNWEzNzI5MjU4YzVkZDU0MGY3NmY1ODliN2NmZGZiNjUwZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZW5lcmF0b3It
eWllbGQtc3Rhci5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
bmVyYXRvci15aWVsZC1zdGFyLmpzCkBAIC0yNjMsMTQgKzI2MywxNyBAQCBmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKICAgICBmdW5jdGlvbiAqZ2VuKCkKICAgICB7
CiAgICAgICAgIGxldCBpdGVyID0gbmV3IEl0ZXJhdG9yKCk7Ci0gICAgICAgIHlpZWxkICogaXRl
cjsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHlpZWxkICogaXRlcjsKKyAgICAgICAgc2hvdWxkQmUo
cmVzdWx0LCA0Mik7CisgICAgICAgIHlpZWxkIDIxOwogICAgIH0KIAogICAgIGxldCBnID0gZ2Vu
KCk7CiAgICAgc2hvdWxkQmUoZy5uZXh0KDApLnZhbHVlLCB1bmRlZmluZWQpOwogICAgIHNob3Vs
ZEJlKGcubmV4dCgxKS52YWx1ZSwgMSk7CiAgICAgc2hvdWxkQmUoZy5uZXh0KDIpLnZhbHVlLCAy
KTsKLSAgICBzaG91bGRCZShnLnRocm93KDQyKS52YWx1ZSwgNDIpOworICAgIHNob3VsZEJlKGcu
dGhyb3coNDIpLnZhbHVlLCAyMSk7CisgICAgc2hvdWxkQmUoZy5uZXh0KCkuZG9uZSwgdHJ1ZSk7
CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBnLnRocm93KDQ0KTsKICAgICB9LCBg
NDRgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MveWll
bGQtc3Rhci10aHJvdy1jb250aW51ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MveWllbGQtc3Rhci10aHJvdy1jb250aW51ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVmYWE2ZTdj
ODlmYmRlZDNmNDVhNmI4NDQ3NWNkNGU1NTQxNTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy95aWVsZC1zdGFyLXRocm93LWNvbnRpbnVlLmpz
CkBAIC0wLDAgKzEsNzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBi
YWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93
KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAg
IHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7
CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
bm90IHRocm93biIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9
CisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gKiBnZW5lcmF0b3IoKSB7CisgICAgICAg
IHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
ICAgICB5aWVsZCAiZm9vIjsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSgpKTsKKyAgICAgICAgLy8gT0ss
IGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7CisgICAgfQorICAgIHZh
ciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hvdWxkQmUoaXRl
clsidGhyb3ciXSgpLnZhbHVlLCAiYmFyIik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAg
IGZ1bmN0aW9uICogZ2VuZXJhdG9yKCkgeworICAgICAgICB5aWVsZCAqIChmdW5jdGlvbiAqICgp
IHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgeWllbGQgImZvbyI7CisgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSgpKTsKKyAgICAgICAgLy8gT0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4K
KyAgICAgICAgeWllbGQgImJhciI7CisgICAgfQorICAgIHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7
CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBpdGVy
WyJ0aHJvdyJdKG5ldyBFcnJvcigiTkciKSk7CisgICAgfSwgYEVycm9yOiBOR2ApOworfSgpKTsK
KworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiAqIGdlbmVyYXRvcigpIHsKKyAgICAgICAg
eWllbGQgKiAoZnVuY3Rpb24gKiAoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgIHlpZWxkICJmb28iOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAg
fQorICAgICAgICAgICAgeWllbGQgImNvY29hIjsKKyAgICAgICAgfSgpKTsKKyAgICAgICAgLy8g
T0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7CisgICAgfQorICAg
IHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hvdWxkQmUo
aXRlclsidGhyb3ciXSgpLnZhbHVlLCAiY29jb2EiKTsKKyAgICBzaG91bGRCZShpdGVyLm5leHQo
KS52YWx1ZSwgImJhciIpOworfSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276396</attachid>
            <date>2016-04-14 06:40:15 -0700</date>
            <delta_ts>2016-04-18 00:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156576-20160414224027.patch</filename>
            <type>text/plain</type>
            <size>16962</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MzE5OWVhNGQ2OTAxOTIwOTMwMjdiYjZiMjRhZDg5YzYzZDlhODcyLi41MzEzYzlkOGEwOWY3YWFk
MzZjYmEzZDc4OTkzZjY2MDg1NzAyOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wNC0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM3XSB5aWVsZCBzdGFyIHNob3VsZCBub3QgcmV0dXJuIGlmIHRo
ZSBpbm5lciBpdGVyYXRvci50aHJvdyByZXR1cm5zIHsgZG9uZTogdHJ1ZSB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY1NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHNsaWdodCBnZW5l
cmF0b3IgZml4IGluIEVTNy4gV2hlbiBjYWxsaW5nIGdlbmVyYXRvci50aHJvdygpLAorICAgICAg
ICB0aGUgeWllbGQtc3RhciBzaG91bGQgY2FsbCB0aGUgdGhyb3coKSBvZiB0aGUgaW5uZXIgZ2Vu
ZXJhdG9yLiBBdCB0aGF0CisgICAgICAgIHRpbWUsIHdoZW4gdGhlIHJlc3VsdCBvZiB0aHJvdygp
IGlzIHsgZG9uZTogdHJ1ZX0sIHRoZSBnZW5lcmF0b3Igc2hvdWxkCisgICAgICAgIG5vdCBzdG9w
IGl0c2VsZi4KKworICAgICAgICAgICAgZnVuY3Rpb24gKiBnZW4oKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgNDI7CisgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH0KKyAgICAgICAgICAgICAgICB9KCkpOworICAg
ICAgICAgICAgICAgIC8vIENvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgICAgICAgICB5aWVs
ZCA0MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IGcgPSBnZW4oKTsKKyAgICAg
ICAgICAgIGcubmV4dCgpOworICAgICAgICAgICAgc2hvdWxkQmUoZy50aHJvdygpLnZhbHVlLCA0
Mik7CisKKworICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGdlbmVyYXRvclJlc3VtZSk6CisgICAgICAgIChuZXh0KToKKyAgICAgICAgKHJldHVybik6
CisgICAgICAgICh0aHJvdyk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk6OkJ5
dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlSW50
cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWll
bGQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5oOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qczoKKyAgICAgICAgKGdlbik6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL3lpZWxkLXN0YXItdGhyb3ctY29udGludWUuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2VuZXJhdG9yKToKKyAgICAgICAgKHNo
b3VsZFRocm93KToKKwogMjAxNi0wNC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIENNYWtlIE1pbmlCcm93c2VyIHNob3VsZCBiZSBhbiBh
cHAgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2Vu
ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVy
YXRvclByb3RvdHlwZS5qcwppbmRleCA1OTdhODgyMWRlY2FkZDk1MzllNjJhMjllMzQwMWMwZTZk
ZGMwYzZmLi42OTQ2M2MzMzYwMmUyOGY3ZGQ0MjlhZDIzNDZkYjFhN2U1ZWVkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUu
anMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOSwxNSArMjksNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUo
Z2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwog
Ci0gICAgLy8gR2VuZXJhdG9yU3RhdGUuCi0gICAgY29uc3QgQ29tcGxldGVkID0gLTE7Ci0gICAg
Y29uc3QgRXhlY3V0aW5nID0gLTI7Ci0KLSAgICAvLyBSZXN1bWVNb2RlLgotICAgIGNvbnN0IE5v
cm1hbE1vZGUgPSAwOwotICAgIGNvbnN0IFJldHVybk1vZGUgPSAxOwotICAgIGNvbnN0IFRocm93
TW9kZSA9IDI7Ci0KICAgICBsZXQgc3RhdGUgPSBnZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlOwog
ICAgIGxldCBkb25lID0gZmFsc2U7CiAgICAgbGV0IHZhbHVlID0gQHVuZGVmaW5lZDsKQEAgLTQ1
LDI2ICszNiwyNiBAQCBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFs
dWUsIHJlc3VtZU1vZGUpCiAgICAgaWYgKHR5cGVvZiBzdGF0ZSAhPT0gJ251bWJlcicpCiAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJ8dGhpc3wgc2hvdWxkIGJlIGEgZ2VuZXJhdG9yIik7
CiAKLSAgICBpZiAoc3RhdGUgPT09IEV4ZWN1dGluZykKKyAgICBpZiAoc3RhdGUgPT09IEBHZW5l
cmF0b3JTdGF0ZUV4ZWN1dGluZykKICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkdlbmVy
YXRvciBpcyBleGVjdXRpbmciKTsKIAotICAgIGlmIChzdGF0ZSA9PT0gQ29tcGxldGVkKSB7Ci0g
ICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBUaHJvd01vZGUpCisgICAgaWYgKHN0YXRlID09PSBA
R2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQpIHsKKyAgICAgICAgaWYgKHJlc3VtZU1vZGUgPT09IEBH
ZW5lcmF0b3JSZXN1bWVNb2RlVGhyb3cpCiAgICAgICAgICAgICB0aHJvdyBzZW50VmFsdWU7CiAK
ICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgIGlmIChyZXN1bWVNb2RlID09PSBSZXR1cm5N
b2RlKQorICAgICAgICBpZiAocmVzdW1lTW9kZSA9PT0gQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1
cm4pCiAgICAgICAgICAgICB2YWx1ZSA9IHNlbnRWYWx1ZTsKICAgICB9IGVsc2UgewogICAgICAg
ICB0cnkgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IEV4ZWN1dGlu
ZzsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9yU3Rh
dGVFeGVjdXRpbmc7CiAgICAgICAgICAgICB2YWx1ZSA9IGdlbmVyYXRvci5AZ2VuZXJhdG9yTmV4
dC5AY2FsbChnZW5lcmF0b3IuQGdlbmVyYXRvclRoaXMsIGdlbmVyYXRvciwgc3RhdGUsIHNlbnRW
YWx1ZSwgcmVzdW1lTW9kZSk7Ci0gICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLkBnZW5lcmF0b3JT
dGF0ZSA9PT0gRXhlY3V0aW5nKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0
b3JTdGF0ZSA9IENvbXBsZXRlZDsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuQGdlbmVyYXRv
clN0YXRlID09PSBAR2VuZXJhdG9yU3RhdGVFeGVjdXRpbmcpIHsKKyAgICAgICAgICAgICAgICBn
ZW5lcmF0b3IuQGdlbmVyYXRvclN0YXRlID0gQEdlbmVyYXRvclN0YXRlQ29tcGxldGVkOwogICAg
ICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGNhdGNo
IChlcnJvcikgewotICAgICAgICAgICAgZ2VuZXJhdG9yLkBnZW5lcmF0b3JTdGF0ZSA9IENvbXBs
ZXRlZDsKKyAgICAgICAgICAgIGdlbmVyYXRvci5AZ2VuZXJhdG9yU3RhdGUgPSBAR2VuZXJhdG9y
U3RhdGVDb21wbGV0ZWQ7CiAgICAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICAgfQogICAg
IH0KQEAgLTc1LDE5ICs2NiwxOSBAQCBmdW5jdGlvbiBuZXh0KHZhbHVlKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVlLCAvKiBO
b3JtYWxNb2RlICovIDApOworICAgIHJldHVybiBAZ2VuZXJhdG9yUmVzdW1lKHRoaXMsIHZhbHVl
LCBAR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCk7CiB9CiAKIGZ1bmN0aW9uIHJldHVybih2YWx1
ZSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4gQGdlbmVyYXRvclJlc3VtZSh0
aGlzLCB2YWx1ZSwgLyogUmV0dXJuTW9kZSAqLyAxKTsKKyAgICByZXR1cm4gQGdlbmVyYXRvclJl
c3VtZSh0aGlzLCB2YWx1ZSwgQEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1cm4pOwogfQogCiBmdW5j
dGlvbiB0aHJvdyhleGNlcHRpb24pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJu
IEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCAvKiBUaHJvd01vZGUgKi8gMik7Cisg
ICAgcmV0dXJuIEBnZW5lcmF0b3JSZXN1bWUodGhpcywgZXhjZXB0aW9uLCBAR2VuZXJhdG9yUmVz
dW1lTW9kZVRocm93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAppbmRleCBkNTg1NGIwYzFl
NDA2NjlkY2Y1ZjFhODQ2MjA2YTdiYjY5MDRhMjRhLi43Yzc1ODc5ZmFmNWU2NWMzYTUwZDU5ZDU3
MzM1ZDljMTVjZDMyMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2Vu
ZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKICNpbmNsdWRlICJOb2Rl
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAgLTU4LDYgKzU5LDExIEBACiAgICAg
bV9zeW1ib2xNYXRjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGljX2Nhc3Q8
U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPm1hdGNoU3ltYm9sLmltcGwoKSkpKTsK
ICAgICBtX3N5bWJvbFNlYXJjaC5zZXQobV92bSwgU3ltYm9sOjpjcmVhdGUobV92bSwgc3RhdGlj
X2Nhc3Q8U3ltYm9sSW1wbCY+KCptX3ZtLnByb3BlcnR5TmFtZXMtPnNlYXJjaFN5bWJvbC5pbXBs
KCkpKSk7CiAgICAgbV9zeW1ib2xTcGVjaWVzLnNldChtX3ZtLCBTeW1ib2w6OmNyZWF0ZShtX3Zt
LCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm1fdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5
bWJvbC5pbXBsKCkpKSk7CisgICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlTm9ybWFsLnNldChtX3Zt
LCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5l
cmF0b3JSZXN1bWVNb2RlOjpOb3JtYWxNb2RlKSkpOworICAgIG1fR2VuZXJhdG9yUmVzdW1lTW9k
ZVRocm93LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRv
ckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpUaHJvd01vZGUpKSk7CisgICAgbV9HZW5l
cmF0b3JSZXN1bWVNb2RlUmV0dXJuLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQz
Ml90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpSZXR1cm5Nb2Rl
KSkpOworICAgIG1fR2VuZXJhdG9yU3RhdGVDb21wbGV0ZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0
YXRpY19jYXN0PGludDMyX3Q+KEpTR2VuZXJhdG9yRnVuY3Rpb246OkdlbmVyYXRvclN0YXRlOjpD
b21wbGV0ZWQpKSk7CisgICAgbV9HZW5lcmF0b3JTdGF0ZUV4ZWN1dGluZy5zZXQobV92bSwganNO
dW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNHZW5lcmF0b3JGdW5jdGlvbjo6R2VuZXJhdG9y
U3RhdGU6OkV4ZWN1dGluZykpKTsKIH0KIAogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjpFbWl0dGVy
VHlwZSBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5Ojpsb29rdXAoY29uc3QgSWRlbnRpZmllciYg
aWRlbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAppbmRleCAxMmJhMDlkMjJhYTA5NDEyYTc0
ZjFjYmQ0ZTM4ZjQyMDE0NGZlM2VjLi41NmQwMmJhY2Y5ZjE4OWRmNzliYzBmYjM2ZGNkMThiZDg3
NDhlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKQEAgLTYxLDYgKzYxLDEyIEBACiAgICAgbWFj
cm8oc3ltYm9sTWF0Y2gpIFwKICAgICBtYWNybyhzeW1ib2xTZWFyY2gpIFwKICAgICBtYWNybyhz
eW1ib2xTcGVjaWVzKSBcCisgICAgbWFjcm8oR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCkgXAor
ICAgIG1hY3JvKEdlbmVyYXRvclJlc3VtZU1vZGVUaHJvdykgXAorICAgIG1hY3JvKEdlbmVyYXRv
clJlc3VtZU1vZGVSZXR1cm4pIFwKKyAgICBtYWNybyhHZW5lcmF0b3JTdGF0ZUNvbXBsZXRlZCkg
XAorICAgIG1hY3JvKEdlbmVyYXRvclN0YXRlRXhlY3V0aW5nKSBcCisKIAogY2xhc3MgQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDExY2Y3M2NhMjMzYmFiOTE4
NjQ4MzU4ODgzYTYzNjk5YzljNzYyODYuLjg0MTBlNWY2ZTNlOTZhNThlZmU2YTM4YzliZDUwYjAw
YjkxYzllNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC00NDA2LDYgKzQ0MDYsNyBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0ZXJJRCogYXJn
dW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgZW1pdExhYmVsKGxvb3BTdGFydC5nZXQoKSk7
CiAgICAgICAgICAgICBlbWl0TG9vcEhpbnQoKTsKIAorICAgICAgICAgICAgUmVmUHRyPExhYmVs
PiBicmFuY2hPblJlc3VsdCA9IG5ld0xhYmVsKCk7CiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgZW1pdFlpZWxkUG9pbnQodmFsdWUuZ2V0KCkpOwogCkBAIC00NDIyLDkgKzQ0MjMsNiBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0
ZXJJRCogYXJndW1lbnQsIFRocm93YWJsZQogICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhy
b3VnaCB0byBUaHJvd01vZGUuCiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
UmVmUHRyPExhYmVsPiByZXR1cm5TZXF1ZW5jZSA9IG5ld0xhYmVsKCk7Ci0gICAgICAgICAgICAg
ICAgUmVmUHRyPExhYmVsPiByZXR1cm5XaXRoSXRlcmF0b3JSZXN1bHQgPSBuZXdMYWJlbCgpOwot
ICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXR1cm5JdGVyYXRvclJlc3VsdCA9
IG5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgICAgIC8vIFRocm93LgogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPExhYmVsPiB0aHJvd01ldGhvZEZvdW5k
ID0gbmV3TGFiZWwoKTsKQEAgLTQ0MzgsOCArNDQzNiwxMCBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdERlbGVnYXRlWWllbGQoUmVnaXN0ZXJJRCogYXJndW1lbnQsIFRocm93
YWJsZQogICAgICAgICAgICAgICAgICAgICBDYWxsQXJndW1lbnRzIHRocm93QXJndW1lbnRzKCp0
aGlzLCBudWxscHRyLCAxKTsKICAgICAgICAgICAgICAgICAgICAgZW1pdE1vdmUodGhyb3dBcmd1
bWVudHMudGhpc1JlZ2lzdGVyKCksIGl0ZXJhdG9yLmdldCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgZW1pdE1vdmUodGhyb3dBcmd1bWVudHMuYXJndW1lbnRSZWdpc3RlcigwKSwgZ2VuZXJhdG9y
VmFsdWVSZWdpc3RlcigpKTsKLSAgICAgICAgICAgICAgICAgICAgZW1pdENhbGwocmV0dXJuSXRl
cmF0b3JSZXN1bHQuZ2V0KCksIHRocm93TWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24s
IHRocm93QXJndW1lbnRzLCBub2RlLT5kaXZvdCgpLCBub2RlLT5kaXZvdFN0YXJ0KCksIG5vZGUt
PmRpdm90RW5kKCkpOwotICAgICAgICAgICAgICAgICAgICBlbWl0SnVtcChyZXR1cm5XaXRoSXRl
cmF0b3JSZXN1bHQuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBlbWl0Q2FsbCh2YWx1ZS5n
ZXQoKSwgdGhyb3dNZXRob2QuZ2V0KCksIE5vRXhwZWN0ZWRGdW5jdGlvbiwgdGhyb3dBcmd1bWVu
dHMsIG5vZGUtPmRpdm90KCksIG5vZGUtPmRpdm90U3RhcnQoKSwgbm9kZS0+ZGl2b3RFbmQoKSk7
CisKKyAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2JqZWN0KG5ld1Rl
bXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSksIGJyYW5jaE9uUmVzdWx0LmdldCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZW1pdFRocm93VHlwZUVycm9yKEFTQ0lJTGl0ZXJhbCgiSXRlcmF0b3IgcmVz
dWx0IGludGVyZmFjZSBpcyBub3QgYW4gb2JqZWN0LiIpKTsKICAgICAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgICAgICAvLyBSZXR1cm4uCkBAIC00NDUwLDM4ICs0NDUwLDMxIEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGVsZWdhdGVZaWVsZChSZWdpc3RlcklEKiBh
cmd1bWVudCwgVGhyb3dhYmxlCiAgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZGYWxzZShl
bWl0SXNVbmRlZmluZWQobmV3VGVtcG9yYXJ5KCksIHJldHVybk1ldGhvZC5nZXQoKSksIHJldHVy
bk1ldGhvZEZvdW5kLmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBlbWl0TW92ZSh2YWx1
ZS5nZXQoKSwgZ2VuZXJhdG9yVmFsdWVSZWdpc3RlcigpKTsKKworICAgICAgICAgICAgICAgICAg
ICBSZWZQdHI8TGFiZWw+IHJldHVyblNlcXVlbmNlID0gbmV3TGFiZWwoKTsKICAgICAgICAgICAg
ICAgICAgICAgZW1pdEp1bXAocmV0dXJuU2VxdWVuY2UuZ2V0KCkpOwogCiAgICAgICAgICAgICAg
ICAgICAgIGVtaXRMYWJlbChyZXR1cm5NZXRob2RGb3VuZC5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIENhbGxBcmd1bWVudHMgcmV0dXJuQXJndW1lbnRzKCp0aGlzLCBudWxscHRyLCAxKTsK
ICAgICAgICAgICAgICAgICAgICAgZW1pdE1vdmUocmV0dXJuQXJndW1lbnRzLnRoaXNSZWdpc3Rl
cigpLCBpdGVyYXRvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRNb3ZlKHJldHVy
bkFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApLCBnZW5lcmF0b3JWYWx1ZVJlZ2lzdGVyKCkp
OwotICAgICAgICAgICAgICAgICAgICBlbWl0Q2FsbChyZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQo
KSwgcmV0dXJuTWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHJldHVybkFyZ3VtZW50
cywgbm9kZS0+ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2RlLT5kaXZvdEVuZCgpKTsK
LQotICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhyb3VnaCB0byByZXR1cm5XaXRoSXRlcmF0
b3JSZXN1bHQuCi0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbWl0Q2Fs
bCh2YWx1ZS5nZXQoKSwgcmV0dXJuTWV0aG9kLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIHJl
dHVybkFyZ3VtZW50cywgbm9kZS0+ZGl2b3QoKSwgbm9kZS0+ZGl2b3RTdGFydCgpLCBub2RlLT5k
aXZvdEVuZCgpKTsKIAotICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5XaXRoSXRlcmF0
b3JSZXN1bHQuZ2V0KCkpOwotICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
UmVmUHRyPExhYmVsPiByZXR1cm5JdGVyYXRvclJlc3VsdElzT2JqZWN0ID0gbmV3TGFiZWwoKTsK
LSAgICAgICAgICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2JqZWN0KG5ld1RlbXBv
cmFyeSgpLCByZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSksIHJldHVybkl0ZXJhdG9yUmVzdWx0
SXNPYmplY3QuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0
SXNPYmplY3QobmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpKSwgcmV0dXJuSXRlcmF0b3JSZXN1
bHRJc09iamVjdC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRUaHJvd1R5cGVFcnJv
cihBU0NJSUxpdGVyYWwoIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVj
dC4iKSk7CiAKICAgICAgICAgICAgICAgICAgICAgZW1pdExhYmVsKHJldHVybkl0ZXJhdG9yUmVz
dWx0SXNPYmplY3QuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBSZWZQdHI8TGFiZWw+IHJl
dHVybkZyb21HZW5lcmF0b3IgPSBuZXdMYWJlbCgpOwotICAgICAgICAgICAgICAgICAgICBlbWl0
SnVtcElmVHJ1ZShlbWl0R2V0QnlJZChuZXdUZW1wb3JhcnkoKSwgcmV0dXJuSXRlcmF0b3JSZXN1
bHQuZ2V0KCksIHByb3BlcnR5TmFtZXMoKS5kb25lKSwgcmV0dXJuRnJvbUdlbmVyYXRvci5nZXQo
KSk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRHZXRCeUlkKG5ld1Rl
bXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLmRvbmUpLCByZXR1cm5Gcm9t
R2VuZXJhdG9yLmdldCgpKTsKIAotICAgICAgICAgICAgICAgICAgICBlbWl0R2V0QnlJZCh2YWx1
ZS5nZXQoKSwgcmV0dXJuSXRlcmF0b3JSZXN1bHQuZ2V0KCksIHByb3BlcnR5TmFtZXMoKS52YWx1
ZSk7CisgICAgICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCB2YWx1ZS5n
ZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgZW1pdEp1
bXAobG9vcFN0YXJ0LmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICBlbWl0TGFiZWwocmV0
dXJuRnJvbUdlbmVyYXRvci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRHZXRCeUlk
KHZhbHVlLmdldCgpLCByZXR1cm5JdGVyYXRvclJlc3VsdC5nZXQoKSwgcHJvcGVydHlOYW1lcygp
LnZhbHVlKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBGYWxsdGhyb3VnaCB0byByZXR1cm5T
ZXF1ZW5jZS4KLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVtaXRHZXRC
eUlkKHZhbHVlLmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKIAot
ICAgICAgICAgICAgICAgIGVtaXRMYWJlbChyZXR1cm5TZXF1ZW5jZS5nZXQoKSk7Ci0gICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlbWl0TGFiZWwocmV0dXJuU2VxdWVuY2Uu
Z2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbkZpbmFsbHlCbG9jaygpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgZW1pdFBvcFNjb3BlcyhzY29wZVJlZ2lzdGVyKCksIDApOwog
ICAgICAgICAgICAgICAgICAgICBlbWl0UmV0dXJuKHZhbHVlLmdldCgpKTsKQEAgLTQ0OTMsMTIg
KzQ0ODYsMTIgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlp
ZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgZW1pdExhYmVsKG5leHRFbGVtZW50LmdldCgpKTsKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVlLmdldCgpLCBpdGVy
YXRvci5nZXQoKSwgdmFsdWUuZ2V0KCksIG5vZGUpOwotICAgICAgICAgICAgICAgIGVtaXRKdW1w
SWZUcnVlKGVtaXRHZXRCeUlkKG5ld1RlbXBvcmFyeSgpLCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlO
YW1lcygpLmRvbmUpLCBsb29wRG9uZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgZW1pdEdldEJ5
SWQodmFsdWUuZ2V0KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkudmFsdWUpOwotICAg
ICAgICAgICAgICAgIGVtaXRKdW1wKGxvb3BTdGFydC5nZXQoKSk7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBlbWl0SXRlcmF0b3JOZXh0V2l0aFZhbHVlKHZhbHVlLmdldCgpLCBpdGVyYXRv
ci5nZXQoKSwgdmFsdWUuZ2V0KCksIG5vZGUpOworCisgICAgICAgICAgICBlbWl0TGFiZWwoYnJh
bmNoT25SZXN1bHQuZ2V0KCkpOworICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdEdldEJ5
SWQobmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkuZG9uZSksIGxv
b3BEb25lLmdldCgpKTsKKyAgICAgICAgICAgIGVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCB2YWx1
ZS5nZXQoKSwgcHJvcGVydHlOYW1lcygpLnZhbHVlKTsKKyAgICAgICAgICAgIGVtaXRKdW1wKGxv
b3BTdGFydC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgZW1pdExhYmVsKGxvb3BEb25lLmdl
dCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyYXRvckZ1bmN0aW9uLmgKaW5kZXggZmYxMDcyYTUyMTY1ZGQxN2RlZTA5NjdkZWU3YjhhZTQ4
OTBmMmQ0Ni4uMzZmNjFjNWYyMGY1NmJlZmQ2YzU1Nzg0MmIxOWUzOWIxOWEzYTkxOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24u
aApAQCAtNTAsNiArNTAsMTEgQEAgY2xhc3MgSlNHZW5lcmF0b3JGdW5jdGlvbiA6IHB1YmxpYyBK
U0Z1bmN0aW9uIHsKICAgICAgICAgVGhyb3dNb2RlID0gMgogICAgIH07CiAKKyAgICBlbnVtIGNs
YXNzIEdlbmVyYXRvclN0YXRlIDogaW50MzJfdCB7CisgICAgICAgIENvbXBsZXRlZCA9IC0xLAor
ICAgICAgICBFeGVjdXRpbmcgPSAtMiwKKyAgICB9OworCiAgICAgY29uc3Qgc3RhdGljIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBERUNMQVJF
X0VYUE9SVF9JTkZPOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZW5lcmF0b3IteWllbGQtc3Rhci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2VuZXJhdG9yLXlpZWxkLXN0YXIuanMKaW5kZXggNDVhYmVmYTA5YzI5MWUzYzc5
NjJiM2IzNzNjNTA4ODYyZDY5OGI1Yi4uNzQ4YTgzNWEzNzI5MjU4YzVkZDU0MGY3NmY1ODliN2Nm
ZGZiNjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZW5lcmF0b3IteWllbGQtc3Rhci5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dlbmVyYXRvci15aWVsZC1zdGFyLmpzCkBAIC0yNjMsMTQgKzI2MywxNyBAQCBmdW5j
dGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKICAgICBmdW5jdGlvbiAqZ2Vu
KCkKICAgICB7CiAgICAgICAgIGxldCBpdGVyID0gbmV3IEl0ZXJhdG9yKCk7Ci0gICAgICAgIHlp
ZWxkICogaXRlcjsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHlpZWxkICogaXRlcjsKKyAgICAgICAg
c2hvdWxkQmUocmVzdWx0LCA0Mik7CisgICAgICAgIHlpZWxkIDIxOwogICAgIH0KIAogICAgIGxl
dCBnID0gZ2VuKCk7CiAgICAgc2hvdWxkQmUoZy5uZXh0KDApLnZhbHVlLCB1bmRlZmluZWQpOwog
ICAgIHNob3VsZEJlKGcubmV4dCgxKS52YWx1ZSwgMSk7CiAgICAgc2hvdWxkQmUoZy5uZXh0KDIp
LnZhbHVlLCAyKTsKLSAgICBzaG91bGRCZShnLnRocm93KDQyKS52YWx1ZSwgNDIpOworICAgIHNo
b3VsZEJlKGcudGhyb3coNDIpLnZhbHVlLCAyMSk7CisgICAgc2hvdWxkQmUoZy5uZXh0KCkuZG9u
ZSwgdHJ1ZSk7CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBnLnRocm93KDQ0KTsK
ICAgICB9LCBgNDRgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MveWllbGQtc3Rhci10aHJvdy1jb250aW51ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MveWllbGQtc3Rhci10aHJvdy1jb250aW51ZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NmVmYWE2ZTdjODlmYmRlZDNmNDVhNmI4NDQ3NWNkNGU1NTQxNTFkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy95aWVsZC1zdGFyLXRocm93LWNv
bnRpbnVlLmpzCkBAIC0wLDAgKzEsNzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNo
b3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZh
bHNlOworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBl
cnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibm90IHRocm93biIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1l
c3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJv
cil9YCk7Cit9CisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gKiBnZW5lcmF0b3IoKSB7
CisgICAgICAgIHlpZWxkICogKGZ1bmN0aW9uICogKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICB5aWVsZCAiZm9vIjsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSgpKTsKKyAgICAg
ICAgLy8gT0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7CisgICAg
fQorICAgIHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hv
dWxkQmUoaXRlclsidGhyb3ciXSgpLnZhbHVlLCAiYmFyIik7Cit9KCkpOworCisoZnVuY3Rpb24g
KCkgeworICAgIGZ1bmN0aW9uICogZ2VuZXJhdG9yKCkgeworICAgICAgICB5aWVsZCAqIChmdW5j
dGlvbiAqICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgeWllbGQgImZv
byI7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSgpKTsKKyAgICAgICAgLy8gT0ssIGNvbnRpbnVlIGV4
ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7CisgICAgfQorICAgIHZhciBpdGVyID0gZ2Vu
ZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAg
ICAgICBpdGVyWyJ0aHJvdyJdKG5ldyBFcnJvcigiTkciKSk7CisgICAgfSwgYEVycm9yOiBOR2Ap
OworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiAqIGdlbmVyYXRvcigpIHsK
KyAgICAgICAgeWllbGQgKiAoZnVuY3Rpb24gKiAoKSB7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIHlpZWxkICJmb28iOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgeWllbGQgImNvY29hIjsKKyAgICAgICAgfSgpKTsKKyAg
ICAgICAgLy8gT0ssIGNvbnRpbnVlIGV4ZWN1dGluZy4KKyAgICAgICAgeWllbGQgImJhciI7Cisg
ICAgfQorICAgIHZhciBpdGVyID0gZ2VuZXJhdG9yKCk7CisgICAgaXRlci5uZXh0KCk7CisgICAg
c2hvdWxkQmUoaXRlclsidGhyb3ciXSgpLnZhbHVlLCAiY29jb2EiKTsKKyAgICBzaG91bGRCZShp
dGVyLm5leHQoKS52YWx1ZSwgImJhciIpOworfSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>