<?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>150667</bug_id>
          
          <creation_ts>2015-10-29 04:21:03 -0700</creation_ts>
          <short_desc>[Streams API] Turn WS states into integers and fix state initialization</short_desc>
          <delta_ts>2015-10-29 09:52:34 -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="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137496</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-29 04:21:03 -0700</bug_when>
    <thetext>[Streams API] Turn WS states into integers and fix state initialization</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137498</commentid>
    <comment_count>1</comment_count>
      <attachid>264311</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-29 04:27:41 -0700</bug_when>
    <thetext>Created attachment 264311
Patch

I wasn&apos;t sure if I should rework the rs states or keep them separated. I finally decided to go got reworking them though I don&apos;t have a string opinion about it. Turned ws states into integer values and also fixed the state not being initialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137504</commentid>
    <comment_count>2</comment_count>
      <attachid>264311</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-29 05:02:09 -0700</bug_when>
    <thetext>Comment on attachment 264311
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:-329
&gt; -    // TODO: ASSERT(stream.@state !== @readableStreamErrored);

If we should use FIXME, maybe change the ones that got changed accordingly

&gt; Source/WebCore/Modules/streams/WritableStream.js:195
&gt; +    }

Might want to rewrite this with return and assert(false)

&gt; Source/WebCore/bindings/js/JSDOMWindowBase.cpp:95
&gt; +        GlobalPropertyInfo(static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().streamWritablePrivateName(), jsNumber(6), DontDelete | ReadOnly),

Somehow we should automate this private enumeration step.
That said, this seems good enough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137508</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-29 05:21:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:-329
&gt; &gt; -    // TODO: ASSERT(stream.@state !== @readableStreamErrored);
&gt; 
&gt; If we should use FIXME, maybe change the ones that got changed accordingly

I&apos;ll change the ones that appear in the patch, but I was planning to do a wider style change so I&apos;ll fix the others later.

&gt; &gt; Source/WebCore/Modules/streams/WritableStream.js:195
&gt; &gt; +    }
&gt; 
&gt; Might want to rewrite this with return and assert(false)

I thought of that too, but I liked it more this because assert(false) seems dirty. I could do write assert_not_reached. Please, let me know if you prefer to leave it as it is now or an assert_not_reached.

&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowBase.cpp:95
&gt; &gt; +        GlobalPropertyInfo(static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().streamWritablePrivateName(), jsNumber(6), DontDelete | ReadOnly),
&gt; 
&gt; Somehow we should automate this private enumeration step.
&gt; That said, this seems good enough

I thought of that too when I was touching this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137533</commentid>
    <comment_count>4</comment_count>
      <attachid>264319</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-29 08:55:49 -0700</bug_when>
    <thetext>Created attachment 264319
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137535</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-29 09:12:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; If we should use FIXME, maybe change the ones that got changed accordingly
&gt; 
&gt; I&apos;ll change the ones that appear in the patch, but I was planning to do a
&gt; wider style change so I&apos;ll fix the others later.

Changed the ones affected and things around for coherence.

&gt; &gt; &gt; Source/WebCore/Modules/streams/WritableStream.js:195
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Might want to rewrite this with return and assert(false)
&gt; 
&gt; I thought of that too, but I liked it more this because assert(false) seems
&gt; dirty. I could do write assert_not_reached. Please, let me know if you
&gt; prefer to leave it as it is now or an assert_not_reached.

Changed to return with assert_not_reached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137543</commentid>
    <comment_count>6</comment_count>
      <attachid>264319</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 09:52:30 -0700</bug_when>
    <thetext>Comment on attachment 264319
Patch for landing

Clearing flags on attachment: 264319

Committed r191730: &lt;http://trac.webkit.org/changeset/191730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137544</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 09:52:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264311</attachid>
            <date>2015-10-29 04:27:41 -0700</date>
            <delta_ts>2015-10-29 08:55:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150667-20151029122649.patch</filename>
            <type>text/plain</type>
            <size>21592</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBlMzQ4ZmQzMzk2ZTdk
MTBjM2M1YmZjY2QwYzM3ZTFiOWI4ODU3OS4uZTBiODRiYmNmNDkyOWYwNWE0NjljMWFkNDJiNDEw
NmQ1NmYzNWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTEwLTI5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0
cmVhbXMgQVBJXSBUdXJuIFdTIHN0YXRlcyBpbnRvIGludGVnZXJzIGFuZCBmaXggc3RhdGUgaW5p
dGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MDY2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBnb2FsIG9mIHRoaXMgcGF0Y2ggaXMgdHVybmluZyB0aGUgd3JpdGFibGUgc3RyZWFt
IHN0YXRlcyBpbnRvIGludGVnZXJzIGluc3RlYWQgb2Ygc3RyaW5ncy4KKworICAgICAgICBGaXJz
dCByZWFkYWJsZSBzdHJlYW0gc3RhdGVzIHdlcmUgcmV3b3JrZWQgdG8gYmUgc2hhcmVkIHdpdGgg
d3JpdGFibGUgc3RyZWFtIHRvbywgdGhleSBhcmUgbm93IGp1c3QgQHN0cmVhbSouCisKKyAgICAg
ICAgTmV4dCBzdGVwIHdhcyBoYXZpbmcgd3JpdGFibGUgc3RyZWFtIHVzaW5nIGludGVnZXJzIGlu
c3RlYWQgb2Ygc3RyaW5ncyBhbmQgdHJhbnNsYXRpbmcgdGhvc2UgaW50ZWdlcnMgYmFjayB0bwor
ICAgICAgICBzdHJpbmdzIHRvIGJlIGFibGUgdG8gcmV0dXJuIHRoZW0gY29ycmVjdGx5IHdpdGgg
dGhlIHdyaXRhYmxlIHN0cmVhbSBzdGF0ZSBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGhlIHN0YXRl
IGluaXRpYWxpemF0aW9uIHdhcyBmaXhlZCBhbmQgbm93IGl0IGlzIG5vdCBuZWVkZWQgdG8gY2hl
Y2sgZm9yIHRoZSBzdGF0ZSB0byBiZSB1bmRlZmluZWQuCisKKyAgICAgICAgUmV3b3JrLCBubyBu
ZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBN
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzOgorICAgICAgICAoZW5x
dWV1ZSk6CisgICAgICAgIChlcnJvcik6CisgICAgICAgIChjbG9zZSk6CisgICAgICAgICogTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgorICAgICAgICAocHJpdmF0
ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbVJlYWRlcik6CisgICAgICAgIChlcnJvclJlYWRhYmxl
U3RyZWFtKToKKyAgICAgICAgKGNhbmNlbFJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKGZpbmlz
aENsb3NpbmdSZWFkYWJsZVN0cmVhbSk6CisgICAgICAgIChjbG9zZVJlYWRhYmxlU3RyZWFtKToK
KyAgICAgICAgKGNsb3NlUmVhZGFibGVTdHJlYW1SZWFkZXIpOgorICAgICAgICAoZW5xdWV1ZUlu
UmVhZGFibGVTdHJlYW0pOgorICAgICAgICAocmVhZEZyb21SZWFkYWJsZVN0cmVhbVJlYWRlcik6
CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzOgorICAg
ICAgICAoY2FuY2VsKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0u
anM6CisgICAgICAgIChpbml0aWFsaXplV3JpdGFibGVTdHJlYW0pOgorICAgICAgICAoYWJvcnQp
OgorICAgICAgICAoY2xvc2UpOgorICAgICAgICAod3JpdGUpOgorICAgICAgICAoc3RhdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHN5bmNXcml0YWJsZVN0cmVhbVN0YXRlV2l0aFF1ZXVlKToKKyAgICAgICAgKGVycm9y
V3JpdGFibGVTdHJlYW0pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMTUtMTAt
MjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBTaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCBmYWlsdXJlIGluIFdlYkNvcmU6OmJhY2tncm91bmRSZWN0Rm9yQm94CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
anMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKaW5k
ZXggNWY1NmYxZWMyZjA2ZmU5ODljMGYxMDc0YzJlYmI0ODFjYzFjMDBiMi4uYjg5ZjYxMDI0MTBk
MDhkMjU2YzljODdjMzg3ZGRhMDllYzQ2Mzg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlv
biBpbml0aWFsaXplUmVhZGFibGVTdHJlYW0odW5kZXJseWluZ1NvdXJjZSwgc3RyYXRlZ3kpCiAg
ICAgdGhpcy5AdW5kZXJseWluZ1NvdXJjZSA9IHVuZGVybHlpbmdTb3VyY2U7CiAKICAgICB0aGlz
LkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOwotICAgIHRoaXMuQHN0YXRlID0gQHJlYWRhYmxlU3RyZWFt
UmVhZGFibGU7CisgICAgdGhpcy5Ac3RhdGUgPSBAc3RyZWFtUmVhZGFibGU7CiAgICAgdGhpcy5A
c3RhcnRlZCA9IGZhbHNlOwogICAgIHRoaXMuQGNsb3NlUmVxdWVzdGVkID0gZmFsc2U7CiAgICAg
dGhpcy5AcHVsbEFnYWluID0gZmFsc2U7CkBAIC02MCw3ICs2MCw3IEBAIGZ1bmN0aW9uIGluaXRp
YWxpemVSZWFkYWJsZVN0cmVhbSh1bmRlcmx5aW5nU291cmNlLCBzdHJhdGVneSkKICAgICAgICAg
X3RoaXMuQHN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICBAcmVxdWVzdFJlYWRhYmxlU3RyZWFtUHVs
bChfdGhpcyk7CiAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgICAgaWYgKF90aGlzLkBz
dGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFtUmVhZGFibGUpCisgICAgICAgIGlmIChfdGhpcy5Ac3Rh
dGUgPT09IEBzdHJlYW1SZWFkYWJsZSkKICAgICAgICAgICAgIEBlcnJvclJlYWRhYmxlU3RyZWFt
KF90aGlzLCBlcnJvcik7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzCmluZGV4IDk5ZjM3
YzllMjJmMTA0ODU2MmY5NDQ4NTNjNmFhZWVkZGE3ZDgxNTguLjI5MmU0NWZkNGEyZTFlNGU1OGYy
NTE3ZjJmMGFjYmM1MTQyMzU2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcwpAQCAtMzMsNyArMzMs
NyBAQCBmdW5jdGlvbiBlbnF1ZXVlKGNodW5rKQogICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJv
cigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ciIpOwogCiAgICAgdmFyIHN0cmVhbSA9IHRoaXMuQGNvbnRyb2xsZWRSZWFkYWJsZVN0cmVhbTsK
LSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFtRXJyb3JlZCkKKyAgICBp
ZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgIHRocm93IHN0cmVh
bS5Ac3RvcmVkRXJyb3I7CiAKICAgICBpZiAoc3RyZWFtLkBjbG9zZVJlcXVlc3RlZCkKQEAgLTUw
LDcgKzUwLDcgQEAgZnVuY3Rpb24gZXJyb3IoZXJyb3IpCiAgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGEgUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyIik7CiAKICAgICB2YXIgc3RyZWFtID0gdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3Ry
ZWFtOwotICAgIGlmIChzdHJlYW0uQHN0YXRlICE9PSBAcmVhZGFibGVTdHJlYW1SZWFkYWJsZSkK
KyAgICBpZiAoc3RyZWFtLkBzdGF0ZSAhPT0gQHN0cmVhbVJlYWRhYmxlKQogICAgICAgICB0aHJv
dyBuZXcgQFR5cGVFcnJvcigiUmVhYWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKTsKIAogICAg
IEBlcnJvclJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgZXJyb3IpOwpAQCAtNjcsNyArNjcsNyBAQCBm
dW5jdGlvbiBjbG9zZSgpCiAgICAgaWYgKHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpCiAgICAgICAg
IHRocm93IG5ldyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBhbHJlYWR5IHJlcXVlc3Rl
ZCB0byBjbG9zZSIpOwogCi0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVh
bUVycm9yZWQpCisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKQogICAg
ICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gaXMgYWxyZWFkeSBlcnJv
cmVkIik7CiAKICAgICBAY2xvc2VSZWFkYWJsZVN0cmVhbShzdHJlYW0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpz
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzCmluZGV4IDhhZDEzYTcwOWExODJkZDc1M2IxN2JjMDU2YmJjNzMxZTJkNTk3MGYuLjQyYzEx
OGU0MTk0NDAzMjA5YTI0NmEzMjg0YmYyMTg2MmQxNTlhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMK
QEAgLTM4LDIwICszOCwyMCBAQCBmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3Ry
ZWFtUmVhZGVyKHN0cmVhbSkKIAogICAgIHRoaXMuQHN0YXRlID0gc3RyZWFtLkBzdGF0ZTsKICAg
ICB0aGlzLkByZWFkUmVxdWVzdHMgPSBbXTsKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJl
YWRhYmxlU3RyZWFtUmVhZGFibGUpIHsKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVh
bVJlYWRhYmxlKSB7CiAgICAgICAgIHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0gPSBzdHJlYW07
CiAgICAgICAgIHRoaXMuQHN0b3JlZEVycm9yID0gdW5kZWZpbmVkOwogICAgICAgICBzdHJlYW0u
QHJlYWRlciA9IHRoaXM7CiAgICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2UgPSBAY3JlYXRlTmV3
U3RyZWFtc1Byb21pc2UoKTsKICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfQotICAgIGlmIChz
dHJlYW0uQHN0YXRlID09PSBAcmVhZGFibGVTdHJlYW1DbG9zZWQpIHsKKyAgICBpZiAoc3RyZWFt
LkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkgewogICAgICAgICB0aGlzLkBvd25lclJlYWRhYmxl
U3RyZWFtID0gbnVsbDsKICAgICAgICAgdGhpcy5Ac3RvcmVkRXJyb3IgPSB1bmRlZmluZWQ7CiAg
ICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAg
cmV0dXJuIHRoaXM7CiAgICAgfQotICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRlID09
PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKTsKKyAgICAvLyBUT0RPOiBBU1NFUlQoc3RyZWFtLkBz
dGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpOwogICAgIHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0g
PSBudWxsOwogICAgIHRoaXMuQHN0b3JlZEVycm9yID0gc3RyZWFtLkBzdG9yZWRFcnJvcjsKICAg
ICB0aGlzLkBjbG9zZWRQcm9taXNlID0gUHJvbWlzZS5yZWplY3Qoc3RyZWFtLkBzdG9yZWRFcnJv
cik7CkBAIC0xOTYsMTAgKzE5NiwxMCBAQCBmdW5jdGlvbiBlcnJvclJlYWRhYmxlU3RyZWFtKHN0
cmVhbSwgZXJyb3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8gVE9ETzogQVNTRVJU
KHN0cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxlKTsKKyAgICAvLyBUT0RP
OiBBU1NFUlQoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVJlYWRhYmxlKTsKICAgICBzdHJlYW0u
QHF1ZXVlID0gQG5ld1F1ZXVlKCk7CiAgICAgc3RyZWFtLkBzdG9yZWRFcnJvciA9IGVycm9yOwot
ICAgIHN0cmVhbS5Ac3RhdGUgPSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkOworICAgIHN0cmVhbS5A
c3RhdGUgPSBAc3RyZWFtRXJyb3JlZDsKIAogICAgIGlmICghc3RyZWFtLkByZWFkZXIpCiAgICAg
ICAgIHJldHVybjsKQEAgLTIxMiw3ICsyMTIsNyBAQCBmdW5jdGlvbiBlcnJvclJlYWRhYmxlU3Ry
ZWFtKHN0cmVhbSwgZXJyb3IpCiAKICAgICBAcmVsZWFzZVJlYWRhYmxlU3RyZWFtUmVhZGVyKHJl
YWRlcik7CiAgICAgcmVhZGVyLkBzdG9yZWRFcnJvciA9IGVycm9yOwotICAgIHJlYWRlci5Ac3Rh
dGUgPSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkOworICAgIHJlYWRlci5Ac3RhdGUgPSBAc3RyZWFt
RXJyb3JlZDsKIAogICAgIEByZWplY3RTdHJlYW1zUHJvbWlzZShyZWFkZXIuQGNsb3NlZFByb21p
c2UsIGVycm9yKTsKIH0KQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVhZGFi
bGVTdHJlYW1QdWxsKHN0cmVhbSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICBpZiAoc3Ry
ZWFtLkBzdGF0ZSAhPT0gQHJlYWRhYmxlU3RyZWFtUmVhZGFibGUpCisgICAgaWYgKHN0cmVhbS5A
c3RhdGUgIT09IEBzdHJlYW1SZWFkYWJsZSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChzdHJl
YW0uQGNsb3NlUmVxdWVzdGVkKQogICAgICAgICByZXR1cm47CkBAIC0yNzUsOSArMjc1LDkgQEAg
ZnVuY3Rpb24gY2FuY2VsUmVhZGFibGVTdHJlYW0oc3RyZWFtLCByZWFzb24pCiB7CiAgICAgInVz
ZSBzdHJpY3QiOwogCi0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbUNs
b3NlZCkKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwotICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAcmVh
ZGFibGVTdHJlYW1FcnJvcmVkKQorICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtRXJy
b3JlZCkKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHN0cmVhbS5Ac3RvcmVkRXJyb3Ip
OwogICAgIHN0cmVhbS5AcXVldWUgPSBAbmV3UXVldWUoKTsKICAgICBAZmluaXNoQ2xvc2luZ1Jl
YWRhYmxlU3RyZWFtKHN0cmVhbSk7CkBAIC0yODgsOCArMjg4LDggQEAgZnVuY3Rpb24gZmluaXNo
Q2xvc2luZ1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAg
ICAvLyBUT0RPOiBBU1NFUlQoc3RyZWFtLkBzdGF0ZSA9PT0gIEByZWFkYWJsZVN0cmVhbVJlYWRh
YmxlKTsKLSAgICBzdHJlYW0uQHN0YXRlID0gQHJlYWRhYmxlU3RyZWFtQ2xvc2VkOworICAgIC8v
IFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRlID09PSAgQHN0cmVhbVJlYWRhYmxlKTsKKyAgICBz
dHJlYW0uQHN0YXRlID0gQHN0cmVhbUNsb3NlZDsKICAgICB2YXIgcmVhZGVyID0gc3RyZWFtLkBy
ZWFkZXI7CiAgICAgaWYgKHJlYWRlcikKICAgICAgICAgQGNsb3NlUmVhZGFibGVTdHJlYW1SZWFk
ZXIocmVhZGVyKTsKQEAgLTMwMCw4ICszMDAsOCBAQCBmdW5jdGlvbiBjbG9zZVJlYWRhYmxlU3Ry
ZWFtKHN0cmVhbSkKICAgICAidXNlIHN0cmljdCI7CiAKICAgICAvLyBUT0RPLiBBU1NFUlQoIXN0
cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpOwotICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRl
ICE9PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKTsKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0g
QHJlYWRhYmxlU3RyZWFtQ2xvc2VkKQorICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRl
ICE9PSBAc3RyZWFtRXJyb3JlZCk7CisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1D
bG9zZWQpCiAgICAgICAgIHJldHVybjsgCiAgICAgc3RyZWFtLkBjbG9zZVJlcXVlc3RlZCA9IHRy
dWU7CiAgICAgaWYgKCFzdHJlYW0uQHF1ZXVlLmNvbnRlbnQubGVuZ3RoKQpAQCAtMzE3LDcgKzMx
Nyw3IEBAIGZ1bmN0aW9uIGNsb3NlUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVyKQogICAgICAg
ICBAcmVzb2x2ZVN0cmVhbXNQcm9taXNlKHJlcXVlc3RzW2luZGV4XSwge3ZhbHVlOnVuZGVmaW5l
ZCwgZG9uZTogdHJ1ZX0pOwogICAgIHJlYWRlci5AcmVhZFJlcXVlc3RzID0gW107CiAgICAgQHJl
bGVhc2VSZWFkYWJsZVN0cmVhbVJlYWRlcihyZWFkZXIpOwotICAgIHJlYWRlci5Ac3RhdGUgPSBA
cmVhZGFibGVTdHJlYW1DbG9zZWQ7CisgICAgcmVhZGVyLkBzdGF0ZSA9IEBzdHJlYW1DbG9zZWQ7
CiAgICAgQHJlc29sdmVTdHJlYW1zUHJvbWlzZShyZWFkZXIuQGNsb3NlZFByb21pc2UpOwogfQog
CkBAIC0zMjYsOCArMzI2LDggQEAgZnVuY3Rpb24gZW5xdWV1ZUluUmVhZGFibGVTdHJlYW0oc3Ry
ZWFtLCBjaHVuaykKICAgICAidXNlIHN0cmljdCI7CiAKICAgICAvLyBUT0RPOiBBU1NFUlQoIXN0
cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpOwotICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRl
ICE9PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKTsKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0g
QHJlYWRhYmxlU3RyZWFtQ2xvc2VkKQorICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRl
ICE9PSBAc3RyZWFtRXJyb3JlZCk7CisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1D
bG9zZWQpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgaWYgKEBpc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkKHN0cmVhbSkgJiYgc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5sZW5ndGgp
IHsKICAgICAgICAgQHJlc29sdmVTdHJlYW1zUHJvbWlzZShzdHJlYW0uQHJlYWRlci5AcmVhZFJl
cXVlc3RzLnNoaWZ0KCksIHt2YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7CkBAIC0zNTQsMTIg
KzM1NCwxMiBAQCBmdW5jdGlvbiByZWFkRnJvbVJlYWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRlcikK
IHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICBpZiAocmVhZGVyLkBzdGF0ZSA9PT0gQHJlYWRh
YmxlU3RyZWFtQ2xvc2VkKQorICAgIGlmIChyZWFkZXIuQHN0YXRlID09PSBAc3RyZWFtQ2xvc2Vk
KQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt2YWx1ZTogdW5kZWZpbmVkLCBkb25l
OiB0cnVlfSk7Ci0gICAgaWYgKHJlYWRlci5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbUVycm9y
ZWQpCisgICAgaWYgKHJlYWRlci5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKQogICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZWplY3QocmVhZGVyLkBzdG9yZWRFcnJvcik7CiAgICAgLy8gVE9ETzog
QVNTRVJUKCEhcmVhZGVyLkBvd25lclJlYWRhYmxlU3RyZWFtKTsKLSAgICAvLyBUT0RPOiBBU1NF
UlQocmVhZGVyLkBvd25lclJlYWRhYmxlU3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFt
UmVhZGFibGUpOworICAgIC8vIFRPRE86IEFTU0VSVChyZWFkZXIuQG93bmVyUmVhZGFibGVTdHJl
YW0uQHN0YXRlID09PSBAc3RyZWFtUmVhZGFibGUpOwogICAgIHZhciBzdHJlYW0gPSByZWFkZXIu
QG93bmVyUmVhZGFibGVTdHJlYW07CiAgICAgaWYgKHN0cmVhbS5AcXVldWUuY29udGVudC5sZW5n
dGgpIHsKICAgICAgICAgdmFyIGNodW5rID0gQGRlcXVldWVWYWx1ZShzdHJlYW0uQHF1ZXVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVJlYWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVJlYWRlci5qcwppbmRleCBjZTI3M2E4ZDliZTNmZjU0MzQ1OTAzNWY2NjU1ZmMxMTZkMTVjMGNi
Li5iZjIzNmQ0MTUwNTUwMTNiMGI1ZDg1YjRlYTU0ZWUyZjg0YWY5ZTU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpz
CkBAIC0zMiwxNCArMzIsMTQgQEAgZnVuY3Rpb24gY2FuY2VsKHJlYXNvbikKICAgICBpZiAoIUBp
c1JlYWRhYmxlU3RyZWFtUmVhZGVyKHRoaXMpKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QobmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJs
ZVN0cmVhbVJlYWRlciIpKTsKIAotICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3Ry
ZWFtQ2xvc2VkKQorICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSBA
cmVhZGFibGVTdHJlYW1FcnJvcmVkKQorICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbUVy
cm9yZWQpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh0aGlzLkBzdG9yZWRFcnJvcik7
CiAKICAgICAvLyBUT0RPIEFTU0VSVChAaXNSZWFkYWJsZVN0cmVhbSh0aGlzLkBvd25lclJlYWRh
YmxlU3RyZWFtKSk7Ci0gICAgLy8gVE9ETyBBU1NFUlQodGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVh
bS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxlKTsKKyAgICAvLyBUT0RPIEFTU0VS
VCh0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVJlYWRhYmxlKTsK
ICAgICByZXR1cm4gQGNhbmNlbFJlYWRhYmxlU3RyZWFtKHRoaXMuQG93bmVyUmVhZGFibGVTdHJl
YW0sIHJlYXNvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9Xcml0YWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9X
cml0YWJsZVN0cmVhbS5qcwppbmRleCBlZTEyMTMyMjM3NWMwNTc3OWJkNjUyZDcwY2RkMzgzN2U2
YmY2NWNhLi4xZThmMGRkYWM5MjA0YzBjZjhjOTA5NDJlODQ1YmM2ZjUwN2RkMjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCkBAIC00
NSw2ICs0NSw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVXcml0YWJsZVN0cmVhbSh1bmRlcmx5aW5n
U2luaywgc3RyYXRlZ3kpCiAgICAgdGhpcy5AY2xvc2VkUHJvbWlzZSA9IEBjcmVhdGVOZXdTdHJl
YW1zUHJvbWlzZSgpOwogICAgIHRoaXMuQHJlYWR5UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1
bmRlZmluZWQpOwogICAgIHRoaXMuQHF1ZXVlID0gQG5ld1F1ZXVlKCk7CisgICAgdGhpcy5Ac3Rh
dGUgPSBAc3RyZWFtV3JpdGFibGU7CiAgICAgdGhpcy5Ac3RhcnRlZCA9IGZhbHNlOwogICAgIHRo
aXMuQHdyaXRpbmcgPSBmYWxzZTsKIApAQCAtNzEsMTAgKzcyLDEwIEBAIGZ1bmN0aW9uIGFib3J0
KHJlYXNvbikKICAgICBpZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQogICAgICAgICByZXR1
cm4gUHJvbWlzZS5yZWplY3QobmV3IEBUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5hYm9y
dCBtZXRob2QgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0i
KSk7CiAKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09ICJjbG9zZWQiKQorICAgIGlmICh0aGlzLkBz
dGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1
bmRlZmluZWQpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSAiZXJyb3JlZCIpCisgICAgaWYg
KHRoaXMuQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVqZWN0KHRoaXMuQHN0b3JlZEVycm9yKTsKIAogICAgIEBlcnJvcldyaXRhYmxlU3RyZWFtLkBh
cHBseSh0aGlzLCBbcmVhc29uXSk7CkBAIC05MSwxNiArOTIsMTYgQEAgZnVuY3Rpb24gY2xvc2Uo
KQogICAgIGlmICghQGlzV3JpdGFibGVTdHJlYW0odGhpcykpCiAgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlamVjdChuZXcgQFR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLmNsb3NlIG1ldGhv
ZCBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXcml0YWJsZVN0cmVhbSIpKTsKIAot
ICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gImNsb3NlZCIgfHwgdGhpcy5Ac3RhdGUgPT09ICJjbG9z
aW5nIikKKyAgICBpZiAodGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zZWQgfHwgdGhpcy5Ac3Rh
dGUgPT09IEBzdHJlYW1DbG9zaW5nKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3
IEBUeXBlRXJyb3IoIkNhbm5vdCBjbG9zZSBhIFdyaXRhYmxlU3RyaW5nIHRoYXQgaXMgY2xvc2Vk
IG9yIGNsb3NpbmciKSk7CiAKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09ICJlcnJvcmVkIikKKyAg
ICBpZiAodGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKQogICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QodGhpcy5Ac3RvcmVkRXJyb3IpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09
PSAid2FpdGluZyIpCisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtV2FpdGluZykKICAg
ICAgICAgQHJlc29sdmVTdHJlYW1zUHJvbWlzZSh0aGlzLkByZWFkeVByb21pc2UsIHVuZGVmaW5l
ZCk7CiAKLSAgICB0aGlzLkBzdGF0ZSA9ICJjbG9zaW5nIjsKKyAgICB0aGlzLkBzdGF0ZSA9IEBz
dHJlYW1DbG9zaW5nOwogICAgIEBlbnF1ZXVlVmFsdWVXaXRoU2l6ZSh0aGlzLkBxdWV1ZSwgImNs
b3NlIiwgMCk7CiAgICAgQGNhbGxPclNjaGVkdWxlV3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUo
dGhpcyk7CiAKQEAgLTExNCwxNCArMTE1LDE0IEBAIGZ1bmN0aW9uIHdyaXRlKGNodW5rKQogICAg
IGlmICghQGlzV3JpdGFibGVTdHJlYW0odGhpcykpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
amVjdChuZXcgQFR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLmNsb3NlIG1ldGhvZCBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXcml0YWJsZVN0cmVhbSIpKTsKIAotICAgIGlm
ICh0aGlzLkBzdGF0ZSA9PT0gImNsb3NlZCIgfHwgdGhpcy5Ac3RhdGUgPT09ICJjbG9zaW5nIikK
KyAgICBpZiAodGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zZWQgfHwgdGhpcy5Ac3RhdGUgPT09
IEBzdHJlYW1DbG9zaW5nKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEBUeXBl
RXJyb3IoIkNhbm5vdCB3cml0ZSBvbiBhIFdyaXRhYmxlU3RyaW5nIHRoYXQgaXMgY2xvc2VkIG9y
IGNsb3NpbmciKSk7CiAKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09ICJlcnJvcmVkIikKKyAgICBp
ZiAodGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKQogICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZWplY3QodGhpcy5Ac3RvcmVkRXJyb3IpOwogCiAgICAgLy8gRklYTUUKLSAgICAvLyBhc3Nl
cnQodGhpcy5Ac3RhdGUgPT09ICJ3cml0YWJsZSIgfHwgdGhpcy5Ac3RhdGUgPT09ICJ3YWl0aW5n
IiB8fCB0aGlzLkBzdGF0ZSA9PT0gdW5kZWZpbmVkKTsKKyAgICAvLyBhc3NlcnQodGhpcy5Ac3Rh
dGUgPT09IEBzdHJlYW1Xcml0YWJsZSB8fCB0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbVdhaXRpbmcp
OwogCiAgICAgbGV0IGNodW5rU2l6ZSA9IDE7CiAgICAgaWYgKHRoaXMuQHN0cmF0ZWd5LnNpemUg
IT09IHVuZGVmaW5lZCkgewpAQCAtMTc0LDUgKzE3NSwyNyBAQCBmdW5jdGlvbiBzdGF0ZSgpCiAg
ICAgaWYgKCFAaXNXcml0YWJsZVN0cmVhbSh0aGlzKSkKICAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5zdGF0ZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKTsKIAotICAgIHJldHVybiB0aGlzLkBzdGF0
ZTsKKyAgICBsZXQgdmFsdWUgPSB1bmRlZmluZWQ7CisgICAgc3dpdGNoKHRoaXMuQHN0YXRlKSB7
CisgICAgY2FzZSBAc3RyZWFtQ2xvc2VkOgorICAgICAgICB2YWx1ZSA9ICJjbG9zZWQiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEBzdHJlYW1DbG9zaW5nOgorICAgICAgICB2YWx1ZSA9ICJj
bG9zaW5nIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBAc3RyZWFtRXJyb3JlZDoKKyAgICAg
ICAgdmFsdWUgPSAiZXJyb3JlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQHN0cmVhbVdh
aXRpbmc6CisgICAgICAgIHZhbHVlID0gIndhaXRpbmciOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEBzdHJlYW1Xcml0YWJsZToKKyAgICAgICAgdmFsdWUgPSAid3JpdGFibGUiOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICAvLyBGSVhNRQorICAgIC8vIGFzc2VydCh2YWx1ZSAhPT0g
dW5kZWZpbmVkKTsKKworICAgIHJldHVybiB2YWx1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qcwppbmRl
eCBhOWFlZTM0NDYwZjBkOTZiNzQ4MzE0NTYxOGMxMDhjZDA2ZDk0ZDcxLi4xYTBmZDBhZTU3YTli
ZTlhZGM1MjZkMjI1Y2E4MTMzY2I4MDZkNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC0zOCwx
NyArMzgsMTcgQEAgZnVuY3Rpb24gc3luY1dyaXRhYmxlU3RyZWFtU3RhdGVXaXRoUXVldWUoc3Ry
ZWFtKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSAi
Y2xvc2luZyIpCisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zaW5nKQogICAg
ICAgICByZXR1cm4gdW5kZWZpbmVkOwogCiAgICAgLy8gVE9ETwotICAgIC8vIGFzc2VydChzdHJl
YW0uQHN0YXRlID09PSAid3JpdGFibGUiIHx8IHN0cmVhbS5Ac3RhdGUgPT09ICJ3YWl0aW5nIiB8
fCBzdHJlYW0uQHN0YXRlID09PSB1bmRlZmluZWQpOworICAgIC8vIGFzc2VydChzdHJlYW0uQHN0
YXRlID09PSBAc3RyZWFtV3JpdGFibGUgfHwgc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVdhaXRp
bmcpOwogCiAgICAgaWYgKHN0cmVhbS5AcXVldWUuc2l6ZSA+IHN0cmVhbS5Ac3RyYXRlZ3kuaGln
aFdhdGVyTWFyaykgewotICAgICAgICBzdHJlYW0uQHN0YXRlID0gIndhaXRpbmciOworICAgICAg
ICBzdHJlYW0uQHN0YXRlID0gQHN0cmVhbVdhaXRpbmc7CiAgICAgICAgIHN0cmVhbS5AcmVhZHlQ
cm9taXNlID0gQGNyZWF0ZU5ld1N0cmVhbXNQcm9taXNlKCk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgc3RyZWFtLkBzdGF0ZSA9ICJ3cml0YWJsZSI7CisgICAgICAgIHN0cmVhbS5Ac3RhdGUgPSBA
c3RyZWFtV3JpdGFibGU7CiAgICAgICAgIEByZXNvbHZlU3RyZWFtc1Byb21pc2Uoc3RyZWFtLkBy
ZWFkeVByb21pc2UsIHVuZGVmaW5lZCk7CiAgICAgfQogCkBAIC01OSw3ICs1OSw3IEBAIGZ1bmN0
aW9uIGVycm9yV3JpdGFibGVTdHJlYW0oZSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICBp
ZiAodGhpcy5Ac3RhdGUgPT09ICJjbG9zZWQiIHx8IHRoaXMuQHN0YXRlID09PSAiZXJyb3JlZCIp
CisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkIHx8IHRoaXMuQHN0YXRlID09
PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICB3aGlsZSAo
dGhpcy5AcXVldWUuY29udGVudC5sZW5ndGggPiAwKSB7CiAgICAgICAgIHZhciB3cml0ZVJlY29y
ZCA9IEBkZXF1ZXVlVmFsdWUodGhpcy5AcXVldWUpOwpAQCAtNjcsMTAgKzY3LDEwIEBAIGZ1bmN0
aW9uIGVycm9yV3JpdGFibGVTdHJlYW0oZSkKICAgICAgICAgICAgIEByZWplY3RTdHJlYW1zUHJv
bWlzZSh3cml0ZVJlY29yZC5wcm9taXNlLCBlKTsKICAgICB9CiAgICAgdGhpcy5Ac3RvcmVkRXJy
b3IgPSBlOwotICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gIndhaXRpbmciKQorICAgIGlmICh0aGlz
LkBzdGF0ZSA9PT0gQHN0cmVhbVdhaXRpbmcpCiAgICAgICAgIEByZXNvbHZlU3RyZWFtc1Byb21p
c2UodGhpcy5AcmVhZHlQcm9taXNlLCB1bmRlZmluZWQpOwogICAgIEByZWplY3RTdHJlYW1zUHJv
bWlzZSh0aGlzLkBjbG9zZWRQcm9taXNlLCBlKTsKLSAgICB0aGlzLkBzdGF0ZSA9ICJlcnJvcmVk
IjsKKyAgICB0aGlzLkBzdGF0ZSA9IEBzdHJlYW1FcnJvcmVkOwogICAgIHJldHVybiB1bmRlZmlu
ZWQ7CiB9CiAKQEAgLTkyLDcgKzkyLDcgQEAgZnVuY3Rpb24gd3JpdGFibGVTdHJlYW1BZHZhbmNl
UXVldWUoc3RyZWFtKQogICAgIGNvbnN0IHdyaXRlUmVjb3JkID0gQHBlZWtRdWV1ZVZhbHVlKHN0
cmVhbS5AcXVldWUpOwogICAgIGlmICh3cml0ZVJlY29yZCA9PT0gImNsb3NlIikgewogICAgICAg
ICAvLyBGSVhNRQotICAgICAgICAvLyBhc3NlcnQoc3RyZWFtLkBzdGF0ZSA9PT0gImNsb3Npbmci
KTsKKyAgICAgICAgLy8gYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zaW5nKTsK
ICAgICAgICAgQGRlcXVldWVWYWx1ZShzdHJlYW0uQHF1ZXVlKTsKICAgICAgICAgLy8gRklYTUUK
ICAgICAgICAgLy8gYXNzZXJ0KHN0cmVhbS5AcXVldWUuY29udGVudC5sZW5ndGggPT09IDApOwpA
QCAtMTAzLDcgKzEwMyw3IEBAIGZ1bmN0aW9uIHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0
cmVhbSkKICAgICBzdHJlYW0uQHdyaXRpbmcgPSB0cnVlOwogICAgIEBwcm9taXNlSW52b2tlT3JO
b29wKHN0cmVhbS5AdW5kZXJseWluZ1NpbmssICJ3cml0ZSIsIFt3cml0ZVJlY29yZC5jaHVua10p
LnRoZW4oCiAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKHN0cmVhbS5Ac3Rh
dGUgPT09ICJlcnJvcmVkIikKKyAgICAgICAgICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3Ry
ZWFtRXJyb3JlZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdHJlYW0u
QHdyaXRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIEByZXNvbHZlU3RyZWFtc1Byb21pc2Uod3Jp
dGVSZWNvcmQucHJvbWlzZSwgdW5kZWZpbmVkKTsKQEAgLTEyMiwxNSArMTIyLDE1IEBAIGZ1bmN0
aW9uIHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVhbSkKIGZ1bmN0aW9uIGNsb3NlV3Jp
dGFibGVTdHJlYW0oc3RyZWFtKQogewogICAgIC8vIEZJWE1FCi0gICAgLy8gYXNzZXJ0KHN0cmVh
bS5Ac3RhdGUgPT09ICJjbG9zaW5nIik7CisgICAgLy8gYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgPT09
IEBzdHJlYW1DbG9zaW5nKTsKICAgICBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVy
bHlpbmdTaW5rLCAiY2xvc2UiKS50aGVuKAogICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSAiZXJyb3JlZCIpCisgICAgICAgICAgICBpZiAoc3Ry
ZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgLy8gRklYTUUKLSAgICAgICAgICAgIC8vIGFzc2VydChzdHJlYW0uQHN0YXRl
ID09PSAiY2xvc2luZyIpOworICAgICAgICAgICAgLy8gYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgPT09
IEBzdHJlYW1DbG9zaW5nKTsKICAgICAgICAgICAgIEByZXNvbHZlU3RyZWFtc1Byb21pc2Uoc3Ry
ZWFtLkBjbG9zZWRQcm9taXNlLCB1bmRlZmluZWQpOwotICAgICAgICAgICAgc3RyZWFtLkBzdGF0
ZSA9ICJjbG9zZWQiOworICAgICAgICAgICAgc3RyZWFtLkBzdGF0ZSA9IEBzdHJlYW1DbG9zZWQ7
CiAgICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgIEBlcnJvcldy
aXRhYmxlU3RyZWFtLkBhcHBseShzdHJlYW0sIFtyXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBiZGRjMjBjZmU2Mjc2ZDU2YmNjY2Q5
OTcxYzQ2YjVmZDI5NTg3OGVlLi42NGFhYjZlMGQzM2E5MDZkM2MwMjE2YjFjN2VjZThmOGU4OGI5
NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAKQEAgLTg3LDkgKzg3LDEyIEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+ZG9jdW1lbnQsIGpzTnVsbCgpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
d2luZG93LCBtX3NoZWxsLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogI2lmIEVOQUJMRShTVFJF
QU1TX0FQSSkKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJlYWRhYmxlU3RyZWFtQ2xv
c2VkUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZt
LmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5yZWFkYWJsZVN0cmVhbUVycm9yZWRQcml2YXRl
TmFtZSgpLCBqc051bWJlcigyKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpLnJlYWRhYmxlU3RyZWFtUmVhZGFibGVQcml2YXRlTmFtZSgpLCBq
c051bWJlcigzKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0
aW5OYW1lcygpLnN0cmVhbUNsb3NlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDEpLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc3RyZWFtQ2xv
c2luZ1ByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDIpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc3RyZWFtRXJyb3JlZFByaXZhdGVOYW1lKCks
IGpzTnVtYmVyKDMpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8oc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVp
bHRpbk5hbWVzKCkuc3RyZWFtUmVhZGFibGVQcml2YXRlTmFtZSgpLCBqc051bWJlcig0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnN0cmVh
bVdhaXRpbmdQcml2YXRlTmFtZSgpLCBqc051bWJlcig1KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRh
Kj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnN0cmVhbVdyaXRhYmxlUHJpdmF0ZU5h
bWUoKSwganNOdW1iZXIoNiksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEp
LT5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlTmFtZSgpLCBj
cmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3Iodm0sICp0aGlz
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygp
LlJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZU5hbWUoKSwgY3JlYXRlUmVhZGFibGVTdHJlYW1S
ZWFkZXJQcml2YXRlQ29uc3RydWN0b3Iodm0sICp0aGlzKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKICNkZWZpbmUgREVDTEFSRV9HTE9CQUxfU1RBVElDKG5hbWUpXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDUyZmM3NWFkYWFl
ZDBmMjFlMmIxMzZkNTY1ZTUzOTA3Yjc2NmFjMjguLmI2ZDA2MThmZmY1ZTg3YzE1ZTI3YTRhYWJm
YjY3OTYzMDMxMmU1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKQEAgLTQxLDkgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIG1hY3JvKHB1bGxpbmcpIFwKICAgICBtYWNybyhwdWxsQWdhaW4pIFwKICAgICBtYWNybyhx
dWV1ZSkgXAotICAgIG1hY3JvKHJlYWRhYmxlU3RyZWFtQ2xvc2VkKSBcCi0gICAgbWFjcm8ocmVh
ZGFibGVTdHJlYW1FcnJvcmVkKSBcCi0gICAgbWFjcm8ocmVhZGFibGVTdHJlYW1SZWFkYWJsZSkg
XAogICAgIG1hY3JvKHJlYWRlcikgXAogICAgIG1hY3JvKHJlYWRSZXF1ZXN0cykgXAogICAgIG1h
Y3JvKHJlYWR5UHJvbWlzZSkgXApAQCAtNTIsNiArNDksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHN0YXJ0ZWRQcm9taXNlKSBcCiAgICAgbWFjcm8oc3RvcmVkRXJyb3IpIFwK
ICAgICBtYWNybyhzdHJhdGVneSkgXAorICAgIG1hY3JvKHN0cmVhbUNsb3NlZCkgXAorICAgIG1h
Y3JvKHN0cmVhbUNsb3NpbmcpIFwKKyAgICBtYWNybyhzdHJlYW1FcnJvcmVkKSBcCisgICAgbWFj
cm8oc3RyZWFtUmVhZGFibGUpIFwKKyAgICBtYWNybyhzdHJlYW1XYWl0aW5nKSBcCisgICAgbWFj
cm8oc3RyZWFtV3JpdGFibGUpIFwKICAgICBtYWNybyh1bmRlcmx5aW5nU2luaykgXAogICAgIG1h
Y3JvKHVuZGVybHlpbmdTb3VyY2UpIFwKICAgICBtYWNybyh3cml0aW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264319</attachid>
            <date>2015-10-29 08:55:49 -0700</date>
            <delta_ts>2015-10-29 09:52:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-150667-20151029165456.patch</filename>
            <type>text/plain</type>
            <size>21722</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBlMzQ4ZmQzMzk2ZTdk
MTBjM2M1YmZjY2QwYzM3ZTFiOWI4ODU3OS4uMjRlODRkZjkzYTdiMTM1YWQxZGU4ZDNmOTM2YTM5
NzE3ZmQwMWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTEwLTI5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0
cmVhbXMgQVBJXSBUdXJuIFdTIHN0YXRlcyBpbnRvIGludGVnZXJzIGFuZCBmaXggc3RhdGUgaW5p
dGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MDY2NworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAg
ICAgVGhlIGdvYWwgb2YgdGhpcyBwYXRjaCBpcyB0dXJuaW5nIHRoZSB3cml0YWJsZSBzdHJlYW0g
c3RhdGVzIGludG8gaW50ZWdlcnMgaW5zdGVhZCBvZiBzdHJpbmdzLgorCisgICAgICAgIEZpcnN0
IHJlYWRhYmxlIHN0cmVhbSBzdGF0ZXMgd2VyZSByZXdvcmtlZCB0byBiZSBzaGFyZWQgd2l0aCB3
cml0YWJsZSBzdHJlYW0gdG9vLCB0aGV5IGFyZSBub3cganVzdCBAc3RyZWFtKi4KKworICAgICAg
ICBOZXh0IHN0ZXAgd2FzIGhhdmluZyB3cml0YWJsZSBzdHJlYW0gdXNpbmcgaW50ZWdlcnMgaW5z
dGVhZCBvZiBzdHJpbmdzIGFuZCB0cmFuc2xhdGluZyB0aG9zZSBpbnRlZ2VycyBiYWNrIHRvCisg
ICAgICAgIHN0cmluZ3MgdG8gYmUgYWJsZSB0byByZXR1cm4gdGhlbSBjb3JyZWN0bHkgd2l0aCB0
aGUgd3JpdGFibGUgc3RyZWFtIHN0YXRlIGF0dHJpYnV0ZS4KKworICAgICAgICBUaGUgc3RhdGUg
aW5pdGlhbGl6YXRpb24gd2FzIGZpeGVkIGFuZCBub3cgaXQgaXMgbm90IG5lZWRlZCB0byBjaGVj
ayBmb3IgdGhlIHN0YXRlIHRvIGJlIHVuZGVmaW5lZC4KKworICAgICAgICBSZXdvcmssIG5vIG5l
dyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uanM6CisgICAgICAgIChpbml0aWFsaXplUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAqIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanM6CisgICAgICAgIChlbnF1
ZXVlKToKKyAgICAgICAgKGVycm9yKToKKyAgICAgICAgKGNsb3NlKToKKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanM6CisgICAgICAgIChwcml2YXRl
SW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtUmVhZGVyKToKKyAgICAgICAgKGVycm9yUmVhZGFibGVT
dHJlYW0pOgorICAgICAgICAoY2FuY2VsUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAoZmluaXNo
Q2xvc2luZ1JlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKGNsb3NlUmVhZGFibGVTdHJlYW0pOgor
ICAgICAgICAoY2xvc2VSZWFkYWJsZVN0cmVhbVJlYWRlcik6CisgICAgICAgIChlbnF1ZXVlSW5S
ZWFkYWJsZVN0cmVhbSk6CisgICAgICAgIChyZWFkRnJvbVJlYWRhYmxlU3RyZWFtUmVhZGVyKToK
KyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanM6CisgICAg
ICAgIChjYW5jZWwpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5q
czoKKyAgICAgICAgKGluaXRpYWxpemVXcml0YWJsZVN0cmVhbSk6CisgICAgICAgIChhYm9ydCk6
CisgICAgICAgIChjbG9zZSk6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChzdGF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgorICAg
ICAgICAoc3luY1dyaXRhYmxlU3RyZWFtU3RhdGVXaXRoUXVldWUpOgorICAgICAgICAoZXJyb3JX
cml0YWJsZVN0cmVhbSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKwogMjAxNS0xMC0y
OCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBuZXZl
ciBiZSByZWFjaGVkIGZhaWx1cmUgaW4gV2ViQ29yZTo6YmFja2dyb3VuZFJlY3RGb3JCb3gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5q
cyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwppbmRl
eCA1ZjU2ZjFlYzJmMDZmZTk4OWMwZjEwNzRjMmViYjQ4MWNjMWMwMGIyLi5iODlmNjEwMjQxMGQw
OGQyNTZjOWM4N2MzODdkZGEwOWVjNDYzODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9u
IGluaXRpYWxpemVSZWFkYWJsZVN0cmVhbSh1bmRlcmx5aW5nU291cmNlLCBzdHJhdGVneSkKICAg
ICB0aGlzLkB1bmRlcmx5aW5nU291cmNlID0gdW5kZXJseWluZ1NvdXJjZTsKIAogICAgIHRoaXMu
QHF1ZXVlID0gQG5ld1F1ZXVlKCk7Ci0gICAgdGhpcy5Ac3RhdGUgPSBAcmVhZGFibGVTdHJlYW1S
ZWFkYWJsZTsKKyAgICB0aGlzLkBzdGF0ZSA9IEBzdHJlYW1SZWFkYWJsZTsKICAgICB0aGlzLkBz
dGFydGVkID0gZmFsc2U7CiAgICAgdGhpcy5AY2xvc2VSZXF1ZXN0ZWQgPSBmYWxzZTsKICAgICB0
aGlzLkBwdWxsQWdhaW4gPSBmYWxzZTsKQEAgLTYwLDcgKzYwLDcgQEAgZnVuY3Rpb24gaW5pdGlh
bGl6ZVJlYWRhYmxlU3RyZWFtKHVuZGVybHlpbmdTb3VyY2UsIHN0cmF0ZWd5KQogICAgICAgICBf
dGhpcy5Ac3RhcnRlZCA9IHRydWU7CiAgICAgICAgIEByZXF1ZXN0UmVhZGFibGVTdHJlYW1QdWxs
KF90aGlzKTsKICAgICB9LCBmdW5jdGlvbihlcnJvcikgewotICAgICAgICBpZiAoX3RoaXMuQHN0
YXRlID09PSBAcmVhZGFibGVTdHJlYW1SZWFkYWJsZSkKKyAgICAgICAgaWYgKF90aGlzLkBzdGF0
ZSA9PT0gQHN0cmVhbVJlYWRhYmxlKQogICAgICAgICAgICAgQGVycm9yUmVhZGFibGVTdHJlYW0o
X3RoaXMsIGVycm9yKTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMKaW5kZXggOTlmMzdj
OWUyMmYxMDQ4NTYyZjk0NDg1M2M2YWFlZWRkYTdkODE1OC4uMjkyZTQ1ZmQ0YTJlMWU0ZTU4ZjI1
MTdmMmYwYWNiYzUxNDIzNTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzCkBAIC0zMyw3ICszMyw3
IEBAIGZ1bmN0aW9uIGVucXVldWUoY2h1bmspCiAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGEgUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
Iik7CiAKICAgICB2YXIgc3RyZWFtID0gdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtOwot
ICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKQorICAgIGlm
IChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgdGhyb3cgc3RyZWFt
LkBzdG9yZWRFcnJvcjsKIAogICAgIGlmIChzdHJlYW0uQGNsb3NlUmVxdWVzdGVkKQpAQCAtNTAs
NyArNTAsNyBAQCBmdW5jdGlvbiBlcnJvcihlcnJvcikKICAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIiKTsKIAogICAgIHZhciBzdHJlYW0gPSB0aGlzLkBjb250cm9sbGVkUmVhZGFibGVTdHJl
YW07Ci0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxlKQor
ICAgIGlmIChzdHJlYW0uQHN0YXRlICE9PSBAc3RyZWFtUmVhZGFibGUpCiAgICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKCJSZWFhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIpOwogCiAgICAg
QGVycm9yUmVhZGFibGVTdHJlYW0oc3RyZWFtLCBlcnJvcik7CkBAIC02Nyw3ICs2Nyw3IEBAIGZ1
bmN0aW9uIGNsb3NlKCkKICAgICBpZiAoc3RyZWFtLkBjbG9zZVJlcXVlc3RlZCkKICAgICAgICAg
dGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGFscmVhZHkgcmVxdWVzdGVk
IHRvIGNsb3NlIik7CiAKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFt
RXJyb3JlZCkKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBhbHJlYWR5IGVycm9y
ZWQiKTsKIAogICAgIEBjbG9zZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKaW5kZXggOGFkMTNhNzA5YTE4MmRkNzUzYjE3YmMwNTZiYmM3MzFlMmQ1OTcwZi4uZDJjOGE4
NWFlMjljZDE3MTJhNDA2ZWIyMmRlMjgwNzA3M2U4ZTExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwpA
QCAtMzgsMjAgKzM4LDIwIEBAIGZ1bmN0aW9uIHByaXZhdGVJbml0aWFsaXplUmVhZGFibGVTdHJl
YW1SZWFkZXIoc3RyZWFtKQogCiAgICAgdGhpcy5Ac3RhdGUgPSBzdHJlYW0uQHN0YXRlOwogICAg
IHRoaXMuQHJlYWRSZXF1ZXN0cyA9IFtdOwotICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAcmVh
ZGFibGVTdHJlYW1SZWFkYWJsZSkgeworICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFt
UmVhZGFibGUpIHsKICAgICAgICAgdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSA9IHN0cmVhbTsK
ICAgICAgICAgdGhpcy5Ac3RvcmVkRXJyb3IgPSB1bmRlZmluZWQ7CiAgICAgICAgIHN0cmVhbS5A
cmVhZGVyID0gdGhpczsKICAgICAgICAgdGhpcy5AY2xvc2VkUHJvbWlzZSA9IEBjcmVhdGVOZXdT
dHJlYW1zUHJvbWlzZSgpOwogICAgICAgICByZXR1cm4gdGhpczsKICAgICB9Ci0gICAgaWYgKHN0
cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbUNsb3NlZCkgeworICAgIGlmIChzdHJlYW0u
QHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkKSB7CiAgICAgICAgIHRoaXMuQG93bmVyUmVhZGFibGVT
dHJlYW0gPSBudWxsOwogICAgICAgICB0aGlzLkBzdG9yZWRFcnJvciA9IHVuZGVmaW5lZDsKICAg
ICAgICAgdGhpcy5AY2xvc2VkUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICBy
ZXR1cm4gdGhpczsKICAgICB9Ci0gICAgLy8gVE9ETzogQVNTRVJUKHN0cmVhbS5Ac3RhdGUgPT09
IEByZWFkYWJsZVN0cmVhbUVycm9yZWQpOworICAgIC8vIEZJWE1FOiBBU1NFUlQoc3RyZWFtLkBz
dGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpOwogICAgIHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0g
PSBudWxsOwogICAgIHRoaXMuQHN0b3JlZEVycm9yID0gc3RyZWFtLkBzdG9yZWRFcnJvcjsKICAg
ICB0aGlzLkBjbG9zZWRQcm9taXNlID0gUHJvbWlzZS5yZWplY3Qoc3RyZWFtLkBzdG9yZWRFcnJv
cik7CkBAIC0xOTYsMTAgKzE5NiwxMCBAQCBmdW5jdGlvbiBlcnJvclJlYWRhYmxlU3RyZWFtKHN0
cmVhbSwgZXJyb3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8gVE9ETzogQVNTRVJU
KHN0cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxlKTsKKyAgICAvLyBGSVhN
RTogQVNTRVJUKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSk7CiAgICAgc3RyZWFt
LkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOwogICAgIHN0cmVhbS5Ac3RvcmVkRXJyb3IgPSBlcnJvcjsK
LSAgICBzdHJlYW0uQHN0YXRlID0gQHJlYWRhYmxlU3RyZWFtRXJyb3JlZDsKKyAgICBzdHJlYW0u
QHN0YXRlID0gQHN0cmVhbUVycm9yZWQ7CiAKICAgICBpZiAoIXN0cmVhbS5AcmVhZGVyKQogICAg
ICAgICByZXR1cm47CkBAIC0yMTIsNyArMjEyLDcgQEAgZnVuY3Rpb24gZXJyb3JSZWFkYWJsZVN0
cmVhbShzdHJlYW0sIGVycm9yKQogCiAgICAgQHJlbGVhc2VSZWFkYWJsZVN0cmVhbVJlYWRlcihy
ZWFkZXIpOwogICAgIHJlYWRlci5Ac3RvcmVkRXJyb3IgPSBlcnJvcjsKLSAgICByZWFkZXIuQHN0
YXRlID0gQHJlYWRhYmxlU3RyZWFtRXJyb3JlZDsKKyAgICByZWFkZXIuQHN0YXRlID0gQHN0cmVh
bUVycm9yZWQ7CiAKICAgICBAcmVqZWN0U3RyZWFtc1Byb21pc2UocmVhZGVyLkBjbG9zZWRQcm9t
aXNlLCBlcnJvcik7CiB9CkBAIC0yMjEsNyArMjIxLDcgQEAgZnVuY3Rpb24gcmVxdWVzdFJlYWRh
YmxlU3RyZWFtUHVsbChzdHJlYW0pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgaWYgKHN0
cmVhbS5Ac3RhdGUgIT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxlKQorICAgIGlmIChzdHJlYW0u
QHN0YXRlICE9PSBAc3RyZWFtUmVhZGFibGUpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoc3Ry
ZWFtLkBjbG9zZVJlcXVlc3RlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjc1LDkgKzI3NSw5IEBA
IGZ1bmN0aW9uIGNhbmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgcmVhc29uKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKIAotICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAcmVhZGFibGVTdHJlYW1D
bG9zZWQpCisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zZWQpCiAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJl
YWRhYmxlU3RyZWFtRXJyb3JlZCkKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVy
cm9yZWQpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChzdHJlYW0uQHN0b3JlZEVycm9y
KTsKICAgICBzdHJlYW0uQHF1ZXVlID0gQG5ld1F1ZXVlKCk7CiAgICAgQGZpbmlzaENsb3NpbmdS
ZWFkYWJsZVN0cmVhbShzdHJlYW0pOwpAQCAtMjg4LDggKzI4OCw4IEBAIGZ1bmN0aW9uIGZpbmlz
aENsb3NpbmdSZWFkYWJsZVN0cmVhbShzdHJlYW0pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0g
ICAgLy8gVE9ETzogQVNTRVJUKHN0cmVhbS5Ac3RhdGUgPT09ICBAcmVhZGFibGVTdHJlYW1SZWFk
YWJsZSk7Ci0gICAgc3RyZWFtLkBzdGF0ZSA9IEByZWFkYWJsZVN0cmVhbUNsb3NlZDsKKyAgICAv
LyBGSVhNRTogQVNTRVJUKHN0cmVhbS5Ac3RhdGUgPT09ICBAc3RyZWFtUmVhZGFibGUpOworICAg
IHN0cmVhbS5Ac3RhdGUgPSBAc3RyZWFtQ2xvc2VkOwogICAgIHZhciByZWFkZXIgPSBzdHJlYW0u
QHJlYWRlcjsKICAgICBpZiAocmVhZGVyKQogICAgICAgICBAY2xvc2VSZWFkYWJsZVN0cmVhbVJl
YWRlcihyZWFkZXIpOwpAQCAtMjk5LDkgKzI5OSw5IEBAIGZ1bmN0aW9uIGNsb3NlUmVhZGFibGVT
dHJlYW0oc3RyZWFtKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIC8vIFRPRE8uIEFTU0VS
VCghc3RyZWFtLkBjbG9zZVJlcXVlc3RlZCk7Ci0gICAgLy8gVE9ETzogQVNTRVJUKHN0cmVhbS5A
c3RhdGUgIT09IEByZWFkYWJsZVN0cmVhbUVycm9yZWQpOwotICAgIGlmIChzdHJlYW0uQHN0YXRl
ID09PSBAcmVhZGFibGVTdHJlYW1DbG9zZWQpCisgICAgLy8gRklYTUU6IEFTU0VSVCghc3RyZWFt
LkBjbG9zZVJlcXVlc3RlZCk7CisgICAgLy8gRklYTUU6IEFTU0VSVChzdHJlYW0uQHN0YXRlICE9
PSBAc3RyZWFtRXJyb3JlZCk7CisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9z
ZWQpCiAgICAgICAgIHJldHVybjsgCiAgICAgc3RyZWFtLkBjbG9zZVJlcXVlc3RlZCA9IHRydWU7
CiAgICAgaWYgKCFzdHJlYW0uQHF1ZXVlLmNvbnRlbnQubGVuZ3RoKQpAQCAtMzE3LDcgKzMxNyw3
IEBAIGZ1bmN0aW9uIGNsb3NlUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVyKQogICAgICAgICBA
cmVzb2x2ZVN0cmVhbXNQcm9taXNlKHJlcXVlc3RzW2luZGV4XSwge3ZhbHVlOnVuZGVmaW5lZCwg
ZG9uZTogdHJ1ZX0pOwogICAgIHJlYWRlci5AcmVhZFJlcXVlc3RzID0gW107CiAgICAgQHJlbGVh
c2VSZWFkYWJsZVN0cmVhbVJlYWRlcihyZWFkZXIpOwotICAgIHJlYWRlci5Ac3RhdGUgPSBAcmVh
ZGFibGVTdHJlYW1DbG9zZWQ7CisgICAgcmVhZGVyLkBzdGF0ZSA9IEBzdHJlYW1DbG9zZWQ7CiAg
ICAgQHJlc29sdmVTdHJlYW1zUHJvbWlzZShyZWFkZXIuQGNsb3NlZFByb21pc2UpOwogfQogCkBA
IC0zMjUsOSArMzI1LDkgQEAgZnVuY3Rpb24gZW5xdWV1ZUluUmVhZGFibGVTdHJlYW0oc3RyZWFt
LCBjaHVuaykKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICAvLyBUT0RPOiBBU1NFUlQoIXN0
cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpOwotICAgIC8vIFRPRE86IEFTU0VSVChzdHJlYW0uQHN0YXRl
ICE9PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKTsKLSAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0g
QHJlYWRhYmxlU3RyZWFtQ2xvc2VkKQorICAgIC8vIEZJWE1FOiBBU1NFUlQoIXN0cmVhbS5AY2xv
c2VSZXF1ZXN0ZWQpOworICAgIC8vIEZJWE1FOiBBU1NFUlQoc3RyZWFtLkBzdGF0ZSAhPT0gQHN0
cmVhbUVycm9yZWQpOworICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkKQog
ICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgIGlmIChAaXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZChzdHJlYW0pICYmIHN0cmVhbS5AcmVhZGVyLkByZWFkUmVxdWVzdHMubGVuZ3RoKSB7CiAgICAg
ICAgIEByZXNvbHZlU3RyZWFtc1Byb21pc2Uoc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5z
aGlmdCgpLCB7dmFsdWU6IGNodW5rLCBkb25lOiBmYWxzZX0pOwpAQCAtMzU0LDEyICszNTQsMTIg
QEAgZnVuY3Rpb24gcmVhZEZyb21SZWFkYWJsZVN0cmVhbVJlYWRlcihyZWFkZXIpCiB7CiAgICAg
InVzZSBzdHJpY3QiOwogCi0gICAgaWYgKHJlYWRlci5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVh
bUNsb3NlZCkKKyAgICBpZiAocmVhZGVyLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7dmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZX0p
OwotICAgIGlmIChyZWFkZXIuQHN0YXRlID09PSBAcmVhZGFibGVTdHJlYW1FcnJvcmVkKQorICAg
IGlmIChyZWFkZXIuQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KHJlYWRlci5Ac3RvcmVkRXJyb3IpOwotICAgIC8vIFRPRE86IEFTU0VSVCgh
IXJlYWRlci5Ab3duZXJSZWFkYWJsZVN0cmVhbSk7Ci0gICAgLy8gVE9ETzogQVNTRVJUKHJlYWRl
ci5Ab3duZXJSZWFkYWJsZVN0cmVhbS5Ac3RhdGUgPT09IEByZWFkYWJsZVN0cmVhbVJlYWRhYmxl
KTsKKyAgICAvLyBGSVhNRTogQVNTRVJUKCEhcmVhZGVyLkBvd25lclJlYWRhYmxlU3RyZWFtKTsK
KyAgICAvLyBGSVhNRTogQVNTRVJUKHJlYWRlci5Ab3duZXJSZWFkYWJsZVN0cmVhbS5Ac3RhdGUg
PT09IEBzdHJlYW1SZWFkYWJsZSk7CiAgICAgdmFyIHN0cmVhbSA9IHJlYWRlci5Ab3duZXJSZWFk
YWJsZVN0cmVhbTsKICAgICBpZiAoc3RyZWFtLkBxdWV1ZS5jb250ZW50Lmxlbmd0aCkgewogICAg
ICAgICB2YXIgY2h1bmsgPSBAZGVxdWV1ZVZhbHVlKHN0cmVhbS5AcXVldWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpz
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpz
CmluZGV4IGNlMjczYThkOWJlM2ZmNTQzNDU5MDM1ZjY2NTVmYzExNmQxNWMwY2IuLjE3ZDliNzFm
ZjMxOGE1YmVlMjNhNzE2OGVjNGE2YzhmMGJhYWJmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMKQEAgLTMyLDE0
ICszMiwxNCBAQCBmdW5jdGlvbiBjYW5jZWwocmVhc29uKQogICAgIGlmICghQGlzUmVhZGFibGVT
dHJlYW1SZWFkZXIodGhpcykpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgQFR5
cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyIikpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSBAcmVhZGFibGVTdHJlYW1DbG9zZWQp
CisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkKQogICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKCk7CiAKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09IEByZWFkYWJsZVN0
cmVhbUVycm9yZWQpCisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHRoaXMuQHN0b3JlZEVycm9yKTsKIAotICAgIC8v
IFRPRE8gQVNTRVJUKEBpc1JlYWRhYmxlU3RyZWFtKHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0p
KTsKLSAgICAvLyBUT0RPIEFTU0VSVCh0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtLkBzdGF0ZSA9
PT0gQHJlYWRhYmxlU3RyZWFtUmVhZGFibGUpOworICAgIC8vIEZJWE1FOiBBU1NFUlQoQGlzUmVh
ZGFibGVTdHJlYW0odGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkpOworICAgIC8vIEZJWE1FOiBB
U1NFUlQodGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1SZWFkYWJs
ZSk7CiAgICAgcmV0dXJuIEBjYW5jZWxSZWFkYWJsZVN0cmVhbSh0aGlzLkBvd25lclJlYWRhYmxl
U3RyZWFtLCByZWFzb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvV3JpdGFibGVTdHJlYW0uanMKaW5kZXggZWUxMjEzMjIzNzVjMDU3NzliZDY1MmQ3MGNkZDM4
MzdlNmJmNjVjYS4uN2Y3MDE3ZGI2MjBlZDRjNGIyNWRhMzI1YzFkOWZjMjUyMzRkOWZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwpA
QCAtNDUsNiArNDUsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplV3JpdGFibGVTdHJlYW0odW5kZXJs
eWluZ1NpbmssIHN0cmF0ZWd5KQogICAgIHRoaXMuQGNsb3NlZFByb21pc2UgPSBAY3JlYXRlTmV3
U3RyZWFtc1Byb21pc2UoKTsKICAgICB0aGlzLkByZWFkeVByb21pc2UgPSBQcm9taXNlLnJlc29s
dmUodW5kZWZpbmVkKTsKICAgICB0aGlzLkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOworICAgIHRoaXMu
QHN0YXRlID0gQHN0cmVhbVdyaXRhYmxlOwogICAgIHRoaXMuQHN0YXJ0ZWQgPSBmYWxzZTsKICAg
ICB0aGlzLkB3cml0aW5nID0gZmFsc2U7CiAKQEAgLTcxLDEwICs3MiwxMCBAQCBmdW5jdGlvbiBh
Ym9ydChyZWFzb24pCiAgICAgaWYgKCFAaXNXcml0YWJsZVN0cmVhbSh0aGlzKSkKICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBAVHlwZUVycm9yKCJUaGUgV3JpdGFibGVTdHJlYW0u
YWJvcnQgbWV0aG9kIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFdyaXRhYmxlU3Ry
ZWFtIikpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSAiY2xvc2VkIikKKyAgICBpZiAodGhp
cy5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zZWQpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29s
dmUodW5kZWZpbmVkKTsKIAotICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gImVycm9yZWQiKQorICAg
IGlmICh0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlamVjdCh0aGlzLkBzdG9yZWRFcnJvcik7CiAKICAgICBAZXJyb3JXcml0YWJsZVN0cmVh
bS5AYXBwbHkodGhpcywgW3JlYXNvbl0pOwpAQCAtOTEsMTYgKzkyLDE2IEBAIGZ1bmN0aW9uIGNs
b3NlKCkKICAgICBpZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQogICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZWplY3QobmV3IEBUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5jbG9zZSBt
ZXRob2QgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7
CiAKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09ICJjbG9zZWQiIHx8IHRoaXMuQHN0YXRlID09PSAi
Y2xvc2luZyIpCisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkIHx8IHRoaXMu
QHN0YXRlID09PSBAc3RyZWFtQ2xvc2luZykKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0
KG5ldyBAVHlwZUVycm9yKCJDYW5ub3QgY2xvc2UgYSBXcml0YWJsZVN0cmluZyB0aGF0IGlzIGNs
b3NlZCBvciBjbG9zaW5nIikpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSAiZXJyb3JlZCIp
CisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVqZWN0KHRoaXMuQHN0b3JlZEVycm9yKTsKIAotICAgIGlmICh0aGlzLkBzdGF0
ZSA9PT0gIndhaXRpbmciKQorICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbVdhaXRpbmcp
CiAgICAgICAgIEByZXNvbHZlU3RyZWFtc1Byb21pc2UodGhpcy5AcmVhZHlQcm9taXNlLCB1bmRl
ZmluZWQpOwogCi0gICAgdGhpcy5Ac3RhdGUgPSAiY2xvc2luZyI7CisgICAgdGhpcy5Ac3RhdGUg
PSBAc3RyZWFtQ2xvc2luZzsKICAgICBAZW5xdWV1ZVZhbHVlV2l0aFNpemUodGhpcy5AcXVldWUs
ICJjbG9zZSIsIDApOwogICAgIEBjYWxsT3JTY2hlZHVsZVdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1
ZXVlKHRoaXMpOwogCkBAIC0xMTQsMTQgKzExNSwxNCBAQCBmdW5jdGlvbiB3cml0ZShjaHVuaykK
ICAgICBpZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQogICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZWplY3QobmV3IEBUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5jbG9zZSBtZXRob2Qg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7CiAKLSAg
ICBpZiAodGhpcy5Ac3RhdGUgPT09ICJjbG9zZWQiIHx8IHRoaXMuQHN0YXRlID09PSAiY2xvc2lu
ZyIpCisgICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkIHx8IHRoaXMuQHN0YXRl
ID09PSBAc3RyZWFtQ2xvc2luZykKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBA
VHlwZUVycm9yKCJDYW5ub3Qgd3JpdGUgb24gYSBXcml0YWJsZVN0cmluZyB0aGF0IGlzIGNsb3Nl
ZCBvciBjbG9zaW5nIikpOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSAiZXJyb3JlZCIpCisg
ICAgaWYgKHRoaXMuQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KHRoaXMuQHN0b3JlZEVycm9yKTsKIAogICAgIC8vIEZJWE1FCi0gICAgLy8g
YXNzZXJ0KHRoaXMuQHN0YXRlID09PSAid3JpdGFibGUiIHx8IHRoaXMuQHN0YXRlID09PSAid2Fp
dGluZyIgfHwgdGhpcy5Ac3RhdGUgPT09IHVuZGVmaW5lZCk7CisgICAgLy8gYXNzZXJ0KHRoaXMu
QHN0YXRlID09PSBAc3RyZWFtV3JpdGFibGUgfHwgdGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1XYWl0
aW5nKTsKIAogICAgIGxldCBjaHVua1NpemUgPSAxOwogICAgIGlmICh0aGlzLkBzdHJhdGVneS5z
aXplICE9PSB1bmRlZmluZWQpIHsKQEAgLTE3NCw1ICsxNzUsMjEgQEAgZnVuY3Rpb24gc3RhdGUo
KQogICAgIGlmICghQGlzV3JpdGFibGVTdHJlYW0odGhpcykpCiAgICAgICAgIHRocm93IG5ldyBA
VHlwZUVycm9yKCJUaGUgV3JpdGFibGVTdHJlYW0uc3RhdGUgZ2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mIFdyaXRhYmxlU3RyZWFtIik7CiAKLSAgICByZXR1cm4gdGhpcy5A
c3RhdGU7CisgICAgc3dpdGNoKHRoaXMuQHN0YXRlKSB7CisgICAgY2FzZSBAc3RyZWFtQ2xvc2Vk
OgorICAgICAgICByZXR1cm4gImNsb3NlZCI7CisgICAgY2FzZSBAc3RyZWFtQ2xvc2luZzoKKyAg
ICAgICAgcmV0dXJuICJjbG9zaW5nIjsKKyAgICBjYXNlIEBzdHJlYW1FcnJvcmVkOgorICAgICAg
ICByZXR1cm4gImVycm9yZWQiOworICAgIGNhc2UgQHN0cmVhbVdhaXRpbmc6CisgICAgICAgIHJl
dHVybiAid2FpdGluZyI7CisgICAgY2FzZSBAc3RyZWFtV3JpdGFibGU6CisgICAgICAgIHJldHVy
biAid3JpdGFibGUiOworICAgIH0KKworICAgIC8vIEZJWE1FCisgICAgLy8gYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7CisKKyAgICByZXR1cm4gdW5kZWZpbmVkOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmlu
ZGV4IGE5YWVlMzQ0NjBmMGQ5NmI3NDgzMTQ1NjE4YzEwOGNkMDZkOTRkNzEuLjAyYjU0YzcyZWE1
MGEzNDE1OTliNGE5MjQxNTQwZTRiMjJlOGI5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTM4
LDE3ICszOCwxNyBAQCBmdW5jdGlvbiBzeW5jV3JpdGFibGVTdHJlYW1TdGF0ZVdpdGhRdWV1ZShz
dHJlYW0pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09
ICJjbG9zaW5nIikKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NpbmcpCiAg
ICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAKLSAgICAvLyBUT0RPCi0gICAgLy8gYXNzZXJ0KHN0
cmVhbS5Ac3RhdGUgPT09ICJ3cml0YWJsZSIgfHwgc3RyZWFtLkBzdGF0ZSA9PT0gIndhaXRpbmci
IHx8IHN0cmVhbS5Ac3RhdGUgPT09IHVuZGVmaW5lZCk7CisgICAgLy8gRklYTUUKKyAgICAvLyBh
c3NlcnQoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVdyaXRhYmxlIHx8IHN0cmVhbS5Ac3RhdGUg
PT09IEBzdHJlYW1XYWl0aW5nKTsKIAogICAgIGlmIChzdHJlYW0uQHF1ZXVlLnNpemUgPiBzdHJl
YW0uQHN0cmF0ZWd5LmhpZ2hXYXRlck1hcmspIHsKLSAgICAgICAgc3RyZWFtLkBzdGF0ZSA9ICJ3
YWl0aW5nIjsKKyAgICAgICAgc3RyZWFtLkBzdGF0ZSA9IEBzdHJlYW1XYWl0aW5nOwogICAgICAg
ICBzdHJlYW0uQHJlYWR5UHJvbWlzZSA9IEBjcmVhdGVOZXdTdHJlYW1zUHJvbWlzZSgpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIHN0cmVhbS5Ac3RhdGUgPSAid3JpdGFibGUiOworICAgICAgICBz
dHJlYW0uQHN0YXRlID0gQHN0cmVhbVdyaXRhYmxlOwogICAgICAgICBAcmVzb2x2ZVN0cmVhbXNQ
cm9taXNlKHN0cmVhbS5AcmVhZHlQcm9taXNlLCB1bmRlZmluZWQpOwogICAgIH0KIApAQCAtNTks
NyArNTksNyBAQCBmdW5jdGlvbiBlcnJvcldyaXRhYmxlU3RyZWFtKGUpCiB7CiAgICAgInVzZSBz
dHJpY3QiOwogCi0gICAgaWYgKHRoaXMuQHN0YXRlID09PSAiY2xvc2VkIiB8fCB0aGlzLkBzdGF0
ZSA9PT0gImVycm9yZWQiKQorICAgIGlmICh0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCB8
fCB0aGlzLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgIHJldHVybiB1bmRlZmlu
ZWQ7CiAgICAgd2hpbGUgKHRoaXMuQHF1ZXVlLmNvbnRlbnQubGVuZ3RoID4gMCkgewogICAgICAg
ICB2YXIgd3JpdGVSZWNvcmQgPSBAZGVxdWV1ZVZhbHVlKHRoaXMuQHF1ZXVlKTsKQEAgLTY3LDEw
ICs2NywxMCBAQCBmdW5jdGlvbiBlcnJvcldyaXRhYmxlU3RyZWFtKGUpCiAgICAgICAgICAgICBA
cmVqZWN0U3RyZWFtc1Byb21pc2Uod3JpdGVSZWNvcmQucHJvbWlzZSwgZSk7CiAgICAgfQogICAg
IHRoaXMuQHN0b3JlZEVycm9yID0gZTsKLSAgICBpZiAodGhpcy5Ac3RhdGUgPT09ICJ3YWl0aW5n
IikKKyAgICBpZiAodGhpcy5Ac3RhdGUgPT09IEBzdHJlYW1XYWl0aW5nKQogICAgICAgICBAcmVz
b2x2ZVN0cmVhbXNQcm9taXNlKHRoaXMuQHJlYWR5UHJvbWlzZSwgdW5kZWZpbmVkKTsKICAgICBA
cmVqZWN0U3RyZWFtc1Byb21pc2UodGhpcy5AY2xvc2VkUHJvbWlzZSwgZSk7Ci0gICAgdGhpcy5A
c3RhdGUgPSAiZXJyb3JlZCI7CisgICAgdGhpcy5Ac3RhdGUgPSBAc3RyZWFtRXJyb3JlZDsKICAg
ICByZXR1cm4gdW5kZWZpbmVkOwogfQogCkBAIC05Miw3ICs5Miw3IEBAIGZ1bmN0aW9uIHdyaXRh
YmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVhbSkKICAgICBjb25zdCB3cml0ZVJlY29yZCA9IEBw
ZWVrUXVldWVWYWx1ZShzdHJlYW0uQHF1ZXVlKTsKICAgICBpZiAod3JpdGVSZWNvcmQgPT09ICJj
bG9zZSIpIHsKICAgICAgICAgLy8gRklYTUUKLSAgICAgICAgLy8gYXNzZXJ0KHN0cmVhbS5Ac3Rh
dGUgPT09ICJjbG9zaW5nIik7CisgICAgICAgIC8vIGFzc2VydChzdHJlYW0uQHN0YXRlID09PSBA
c3RyZWFtQ2xvc2luZyk7CiAgICAgICAgIEBkZXF1ZXVlVmFsdWUoc3RyZWFtLkBxdWV1ZSk7CiAg
ICAgICAgIC8vIEZJWE1FCiAgICAgICAgIC8vIGFzc2VydChzdHJlYW0uQHF1ZXVlLmNvbnRlbnQu
bGVuZ3RoID09PSAwKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBmdW5jdGlvbiB3cml0YWJsZVN0cmVh
bUFkdmFuY2VRdWV1ZShzdHJlYW0pCiAgICAgc3RyZWFtLkB3cml0aW5nID0gdHJ1ZTsKICAgICBA
cHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTaW5rLCAid3JpdGUiLCBbd3Jp
dGVSZWNvcmQuY2h1bmtdKS50aGVuKAogICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IGlmIChzdHJlYW0uQHN0YXRlID09PSAiZXJyb3JlZCIpCisgICAgICAgICAgICBpZiAoc3RyZWFt
LkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgc3RyZWFtLkB3cml0aW5nID0gZmFsc2U7CiAgICAgICAgICAgICBAcmVzb2x2ZVN0
cmVhbXNQcm9taXNlKHdyaXRlUmVjb3JkLnByb21pc2UsIHVuZGVmaW5lZCk7CkBAIC0xMjIsMTUg
KzEyMiwxNSBAQCBmdW5jdGlvbiB3cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZShzdHJlYW0pCiBm
dW5jdGlvbiBjbG9zZVdyaXRhYmxlU3RyZWFtKHN0cmVhbSkKIHsKICAgICAvLyBGSVhNRQotICAg
IC8vIGFzc2VydChzdHJlYW0uQHN0YXRlID09PSAiY2xvc2luZyIpOworICAgIC8vIGFzc2VydChz
dHJlYW0uQHN0YXRlID09PSBAc3RyZWFtQ2xvc2luZyk7CiAgICAgQHByb21pc2VJbnZva2VPck5v
b3Aoc3RyZWFtLkB1bmRlcmx5aW5nU2luaywgImNsb3NlIikudGhlbigKICAgICAgICAgZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gImVycm9yZWQiKQorICAg
ICAgICAgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIEZJWE1FCi0gICAgICAgICAgICAvLyBhc3Nl
cnQoc3RyZWFtLkBzdGF0ZSA9PT0gImNsb3NpbmciKTsKKyAgICAgICAgICAgIC8vIGFzc2VydChz
dHJlYW0uQHN0YXRlID09PSBAc3RyZWFtQ2xvc2luZyk7CiAgICAgICAgICAgICBAcmVzb2x2ZVN0
cmVhbXNQcm9taXNlKHN0cmVhbS5AY2xvc2VkUHJvbWlzZSwgdW5kZWZpbmVkKTsKLSAgICAgICAg
ICAgIHN0cmVhbS5Ac3RhdGUgPSAiY2xvc2VkIjsKKyAgICAgICAgICAgIHN0cmVhbS5Ac3RhdGUg
PSBAc3RyZWFtQ2xvc2VkOwogICAgICAgICB9LAogICAgICAgICBmdW5jdGlvbihyKSB7CiAgICAg
ICAgICAgICBAZXJyb3JXcml0YWJsZVN0cmVhbS5AYXBwbHkoc3RyZWFtLCBbcl0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYmRkYzIw
Y2ZlNjI3NmQ1NmJjY2NkOTk3MWM0NmI1ZmQyOTU4NzhlZS4uNjRhYWI2ZTBkMzNhOTA2ZDNjMDIx
NmIxYzdlY2U4ZjhlODhiOTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC04Nyw5ICs4NywxMiBAQCB2b2lkIEpTRE9NV2luZG93QmFz
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmRvY3VtZW50LCBqc051bGwo
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPndpbmRvdywgbV9zaGVsbCwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
ICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhzdGF0
aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5y
ZWFkYWJsZVN0cmVhbUNsb3NlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDEpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oc3RhdGljX2Nhc3Q8SlNW
TUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucmVhZGFibGVTdHJl
YW1FcnJvcmVkUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoMiksIERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5yZWFkYWJsZVN0cmVhbVJlYWRhYmxl
UHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoMyksIERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNs
aWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5zdHJlYW1DbG9zZWRQcml2YXRlTmFtZSgpLCBqc051
bWJlcigxKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5O
YW1lcygpLnN0cmVhbUNsb3NpbmdQcml2YXRlTmFtZSgpLCBqc051bWJlcigyKSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnN0cmVhbUVycm9y
ZWRQcml2YXRlTmFtZSgpLCBqc051bWJlcigzKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0u
Y2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnN0cmVhbVJlYWRhYmxlUHJpdmF0ZU5hbWUoKSwg
anNOdW1iZXIoNCksIERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS5zdHJlYW1XYWl0aW5nUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoNSksIERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhzdGF0aWNfY2Fz
dDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5zdHJlYW1X
cml0YWJsZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDYpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
UHJpdmF0ZU5hbWUoKSwgY3JlYXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0
cnVjdG9yKHZtLCAqdGhpcyksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyhzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEp
LT5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVOYW1lKCksIGNyZWF0
ZVJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKHZtLCAqdGhpcyksIERvbnRE
ZWxldGUgfCBSZWFkT25seSksCiAjZGVmaW5lIERFQ0xBUkVfR0xPQkFMX1NUQVRJQyhuYW1lKVwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApp
bmRleCA1MmZjNzVhZGFhZWQwZjIxZTJiMTM2ZDU2NWU1MzkwN2I3NjZhYzI4Li5iNmQwNjE4ZmZm
NWU4N2MxNWUyN2E0YWFiZmI2Nzk2MzAzMTJlNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC00MSw5ICs0MSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhwdWxsaW5nKSBcCiAgICAgbWFjcm8ocHVsbEFnYWlu
KSBcCiAgICAgbWFjcm8ocXVldWUpIFwKLSAgICBtYWNybyhyZWFkYWJsZVN0cmVhbUNsb3NlZCkg
XAotICAgIG1hY3JvKHJlYWRhYmxlU3RyZWFtRXJyb3JlZCkgXAotICAgIG1hY3JvKHJlYWRhYmxl
U3RyZWFtUmVhZGFibGUpIFwKICAgICBtYWNybyhyZWFkZXIpIFwKICAgICBtYWNybyhyZWFkUmVx
dWVzdHMpIFwKICAgICBtYWNybyhyZWFkeVByb21pc2UpIFwKQEAgLTUyLDYgKzQ5LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhzdGFydGVkUHJvbWlzZSkgXAogICAgIG1hY3Jv
KHN0b3JlZEVycm9yKSBcCiAgICAgbWFjcm8oc3RyYXRlZ3kpIFwKKyAgICBtYWNybyhzdHJlYW1D
bG9zZWQpIFwKKyAgICBtYWNybyhzdHJlYW1DbG9zaW5nKSBcCisgICAgbWFjcm8oc3RyZWFtRXJy
b3JlZCkgXAorICAgIG1hY3JvKHN0cmVhbVJlYWRhYmxlKSBcCisgICAgbWFjcm8oc3RyZWFtV2Fp
dGluZykgXAorICAgIG1hY3JvKHN0cmVhbVdyaXRhYmxlKSBcCiAgICAgbWFjcm8odW5kZXJseWlu
Z1NpbmspIFwKICAgICBtYWNybyh1bmRlcmx5aW5nU291cmNlKSBcCiAgICAgbWFjcm8od3JpdGlu
ZykgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>