<?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>65248</bug_id>
          
          <creation_ts>2011-07-27 05:05:28 -0700</creation_ts>
          <short_desc>WebSocket: Implement &quot;protocol&quot; attribute</short_desc>
          <delta_ts>2011-09-11 14:58:27 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>levin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442857</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-27 05:05:28 -0700</bug_when>
    <thetext>Current WebSocket API defines &quot;protocol&quot; attribute which, after the WebSocket connection is established, returns the value of Sec-WebSocket-Protocol header in server&apos;s response.

&lt;http://dev.w3.org/html5/websockets/&gt;

    interface WebSocket {
      ...
      readonly attribute DOMString protocol;
      ...
    };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449630</commentid>
    <comment_count>1</comment_count>
      <attachid>103587</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 00:02:17 -0700</bug_when>
    <thetext>Created attachment 103587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449645</commentid>
    <comment_count>2</comment_count>
      <attachid>103587</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-11 00:33:16 -0700</bug_when>
    <thetext>Comment on attachment 103587
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        Tests: http/tests/websocket/tests/hybi/no-subprotocol.html (added)
&gt; +               http/tests/websocket/tests/hybi/workers/no-subprotocol.html (added)
&gt; +               http/tests/websocket/tests/hixie76/undefined-attributes.html (updated)
&gt; +               http/tests/websocket/tests/hybi/multiple-subprotocols.html (updated)
&gt; +               http/tests/websocket/tests/hybi/workers/multiple-subprotocols.html (updated)
&gt; +

We need a test to try updating .protocol by a script.

&gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:231
&gt; -static void workerContextDidConnect(ScriptExecutionContext* context, RefPtr&lt;ThreadableWebSocketChannelClientWrapper&gt; workerClientWrapper)
&gt; +static void workerContextDidConnect(ScriptExecutionContext* context, PassRefPtr&lt;ThreadableWebSocketChannelClientWrapper&gt; workerClientWrapper, const String&amp; subprotocol)

Why did you change the RefPtr&lt;&gt; to PassRefPtr&lt;&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449661</commentid>
    <comment_count>3</comment_count>
      <attachid>103587</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 01:48:22 -0700</bug_when>
    <thetext>Comment on attachment 103587
Patch

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

&gt;&gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:231
&gt;&gt; +static void workerContextDidConnect(ScriptExecutionContext* context, PassRefPtr&lt;ThreadableWebSocketChannelClientWrapper&gt; workerClientWrapper, const String&amp; subprotocol)
&gt; 
&gt; Why did you change the RefPtr&lt;&gt; to PassRefPtr&lt;&gt;?

I updated this line because I was bugged by check-webkit-style about using RefPtr&lt;&gt; as an argument. Using PassRefPtr&lt;&gt; should be safe, because CrossThreadTask and CrossThreadCopier know how to pass a RefPtr across threads.

I think I should update other occurrences of RefPtr&lt;&gt; arguments in this file. I&apos;m not sure if it&apos;s fine to do in this patch, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449669</commentid>
    <comment_count>4</comment_count>
      <attachid>103587</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-11 02:14:44 -0700</bug_when>
    <thetext>Comment on attachment 103587
Patch

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

&gt;&gt;&gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:231
&gt;&gt;&gt; +static void workerContextDidConnect(ScriptExecutionContext* context, PassRefPtr&lt;ThreadableWebSocketChannelClientWrapper&gt; workerClientWrapper, const String&amp; subprotocol)
&gt;&gt; 
&gt;&gt; Why did you change the RefPtr&lt;&gt; to PassRefPtr&lt;&gt;?
&gt; 
&gt; I updated this line because I was bugged by check-webkit-style about using RefPtr&lt;&gt; as an argument. Using PassRefPtr&lt;&gt; should be safe, because CrossThreadTask and CrossThreadCopier know how to pass a RefPtr across threads.
&gt; 
&gt; I think I should update other occurrences of RefPtr&lt;&gt; arguments in this file. I&apos;m not sure if it&apos;s fine to do in this patch, though.

This change is unrelated to this bug, and the behavior will change a little. We had better handle it in a separated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449715</commentid>
    <comment_count>5</comment_count>
      <attachid>103608</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 06:09:54 -0700</bug_when>
    <thetext>Created attachment 103608
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449718</commentid>
    <comment_count>6</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 06:13:36 -0700</bug_when>
    <thetext>Patch v1 has a bug that assertion fails if &quot;protocol&quot; attribute is accessed after m_channel is released.

Patch v2 fixes this problem, and the tests in the patch are modified to check this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449719</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 06:13:54 -0700</bug_when>
    <thetext>Attachment 103608 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:231:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449720</commentid>
    <comment_count>8</comment_count>
      <attachid>103587</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 06:14:27 -0700</bug_when>
    <thetext>Comment on attachment 103587
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:16
&gt;&gt; +
&gt; 
&gt; We need a test to try updating .protocol by a script.

Patch v2 contains a new test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449721</commentid>
    <comment_count>9</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 06:15:20 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:231:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]

This should be fixed in bug 66047.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450284</commentid>
    <comment_count>10</comment_count>
      <attachid>103608</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-11 21:55:31 -0700</bug_when>
    <thetext>Comment on attachment 103608
Patch v2

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450295</commentid>
    <comment_count>11</comment_count>
      <attachid>103735</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-11 22:26:04 -0700</bug_when>
    <thetext>Created attachment 103735
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450313</commentid>
    <comment_count>12</comment_count>
      <attachid>103735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 23:45:09 -0700</bug_when>
    <thetext>Comment on attachment 103735
Patch for landing

Clearing flags on attachment: 103735

Committed r92946: &lt;http://trac.webkit.org/changeset/92946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450314</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 23:45:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465419</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-09-11 14:58:27 -0700</bug_when>
    <thetext>Note for future reviews: Check for additions of non-threadsafe objects (like String whose destructor is not threadsafe) into ThreadSafeRefCounted classes.

Filed https://bugs.webkit.org/show_bug.cgi?id=67908</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103587</attachid>
            <date>2011-08-11 00:02:17 -0700</date>
            <delta_ts>2011-08-11 06:14:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65248-20110811160215.patch</filename>
            <type>text/plain</type>
            <size>24593</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNWM0YjBjNmYyMjU2MTZkNDU3NjIw
MWJmMDU2YjMxYjkxY2QwNGNmLi5iZTRmNjE2NGU4NmYwM2ZiZjAwZDU0Yjk3NzQ1MDZlY2ZhYWY4
MWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDgtMTAgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgInByb3Rv
Y29sIiBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgIEFkZGVkIGEgdGVz
dCB0byBjaGVjayAicHJvdG9jb2wiIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJwcm90
b2NvbHMuaHRtbDoKKyAgICAgICAgVGhlIGF0dHJpYnV0ZSBzaG91bGQgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZyBhdCBmaXJzdC4gQWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQsCisg
ICAgICAgIGl0IHNob3VsZCByZXR1cm4gdGhlIHZhbHVlIG9mIFNlYy1XZWJTb2NrZXQtUHJvdG9j
b2wgaGVhZGVyIGluIHRoZSBzZXJ2ZXIncyBoYW5kc2hha2UgcmVzcG9uc2UuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvbm8t
c3VicHJvdG9jb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS93b3JrZXJzL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnBy
b3RvY29sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnByb3RvY29sLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvbXVs
dGlwbGUtc3VicHJvdG9jb2xzLmpzOgorICAgICAgICAod3Mub25vcGVuKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL25vLXN1YnBy
b3RvY29sLmpzOiBBZGRlZC4KKyAgICAgICAgKHdzLm9ub3Blbik6CisgICAgICAgICh3cy5vbmNs
b3NlKToKKwogMjAxMS0wOC0xMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYXV0by1jb21wbGV0aW9uIGZvciBzdHJpbmcgbGl0
ZXJhbHMgZG9lc24ndCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVk
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGVjNDlmNjI1MmJlYjE2ZmE0NjEwZTQ3Njdh
NDUwM2VlN2ZjMjY5ZTkuLjQwMjYzZWYzZWQxNGQ3YTdhODM4MzE4NGIwOGMxN2I1NmExMTM3M2Qg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvdW5kZWZpbmVkLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVkLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBUZXN0IFdlYlNvY2tldCBhdHRyaWJ1dGVzIHdoaWNo
IHNob3VsZCBub3QgYmUgZGVmaW5lZCB3aGVuIGhpeGllLTc2IHByb3RvY29sIGlzCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCiAKIFBBU1Mgd3MuYmluYXJ5VHlwZSBpcyB1bmRlZmluZWQuCitQ
QVNTIHdzLnByb3RvY29sIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0cmlidXRlcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0
cmlidXRlcy5odG1sCmluZGV4IDQ2ZWFhMGMwZjMwMmQ1MzYyMjMzMjIwOTI5YTljMzdmYzU0MTlj
MGQuLjNhOWY2NTY2MDhhMTkwZjkwNjVlN2JkMjMyZmE3NzExMTZlNzAzYTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVk
LWF0dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTEzLDYgKzEzLDcgQEAg
ZGVzY3JpcHRpb24oIlRlc3QgV2ViU29ja2V0IGF0dHJpYnV0ZXMgd2hpY2ggc2hvdWxkIG5vdCBi
ZSBkZWZpbmVkIHdoZW4gaGl4aWUtNzYKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3
LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2ltcGxlIik7CiAKIHNob3VsZEJl
VW5kZWZpbmVkKCJ3cy5iaW5hcnlUeXBlIik7CitzaG91bGRCZVVuZGVmaW5lZCgid3MucHJvdG9j
b2wiKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlw
bGUtc3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dAppbmRl
eCA5ZWVmZmQwMzZhOWI3ZmY5M2I2YmViYzJmNDkyODZiNzg0ODVkZGJmLi4xNTA3NDAzMWVmZGJk
MTg2MzZkN2I4YmM1M2I5N2ExYzJjOTdkMmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9t
dWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsOSBAQCBUZXN0IFdl
YlNvY2tldCBzdWJwcm90b2NvbCBuZWdvdGlhdGlvbi4KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCitQQVNTIHdzLnByb3RvY29sIGlzICIiCiBDb25uZWN0ZWQKK1BBU1Mgd3MucHJvdG9j
b2wgaXMgInN1cGVyY2hhdCIKIFJlY2VpdmVkOiBzdXBlcmNoYXQKIFBBU1MgcmVjZWl2ZWRNZXNz
YWdlIGlzICJzdXBlcmNoYXQiCiBDbG9zZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnBy
b3RvY29scy5odG1sCmluZGV4IDY2ZmM0YTdiZWIyYjRjMzViNWFlMTZkYjg1MjVmZmIwMTQwZTRk
YzMuLmU2MDA2YjZmZDRmODU4MmUxODk1Y2ExY2U1ZDZmY2Y3MTYzYWQ4NTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3Vi
cHJvdG9jb2xzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9tdWx0aXBsZS1zdWJwcm90b2NvbHMuaHRtbApAQCAtMTgsMTQgKzE4LDEyIEBAIHZh
ciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvcHJvdG9jb2wtdGVzdD9wCiB2YXIgY2xvc2VFdmVudDsKIHZhciByZWNlaXZlZE1lc3Nh
Z2U7CiAKLS8vIEZJWE1FOiBJbXBsZW1lbnQgV2ViU29ja2V0LnByb3RvY29sLgotLy8gc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygid3MucHJvdG9jb2wiLCAiIik7CiAKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBk
ZWJ1ZygiQ29ubmVjdGVkIik7Ci0gICAgLy8gRklYTUU6IERpdHRvLgotICAgIC8vIHNob3VsZEJl
RXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAic3VwZXJjaGF0Iik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICJzdXBlcmNoYXQiKTsKIH07CiAKIHdzLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWI0N2ViYWRiNGQyZjY0ZGUwNGRlNTVlNDAwMzcyZjlh
OGU5MDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorV2ViU29ja2V0J3MgcHJvdG9jb2wgYXR0cmlidXRlIHNob3VsZCBiZSBhbiBlbXB0eSBzdHJp
bmcgaWYgdGhlIHNlcnZlciBkaWQgbm90IHByb3ZpZGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBo
ZWFkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyB3cy5wcm90b2NvbCBp
cyAiIgorQ29ubmVjdGVkCitQQVNTIHdzLnByb3RvY29sIGlzICIiCitDbG9zZWQKK1BBU1MgY2xv
c2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEyOWY3MTA5MTU2M2I2ZWE3MjAxNjA5ZjlkNjc3OWE0NjUyNGE0YTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1
YnByb3RvY29sLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCJXZWJTb2Nr
ZXQncyBwcm90b2NvbCBhdHRyaWJ1dGUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUg
c2VydmVyIGRpZCBub3QgcHJvdmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlci4iKTsK
Kword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKwordmFyIHdzID0gbmV3
IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9zaW1w
bGUiKTsKK3ZhciBjbG9zZUV2ZW50OworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3Rv
Y29sIiwgIiIpOworCit3cy5vbm9wZW4gPSBmdW5jdGlvbigpCit7CisgICAgZGVidWcoIkNvbm5l
Y3RlZCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7Cit9
OworCit3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgZGVidWcoIkNsb3NlZCIp
OworICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQu
d2FzQ2xlYW4iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
d29ya2Vycy9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL211bHRpcGxlLXN1YnByb3Rv
Y29scy1leHBlY3RlZC50eHQKaW5kZXggYmEzN2YxMWFlZGFjZTI4YTlhOTQ4YTZhY2I2ZGRkZDQ1
ZmI3MTRlMC4uM2QxOTRhNzMzYmJiYjY1ZGM3MmVkMWNhZjg3MjE1NTI2N2VlNmFiYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJz
L211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL211bHRpcGxlLXN1YnByb3RvY29s
cy1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw5IEBAIFRlc3QgV2ViU29ja2V0IHN1YnByb3RvY29s
IG5lZ290aWF0aW9uIGluIHdvcmtlcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAor
UEFTUyBQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byAiIgogSU5GTzogQ29ubmVjdGVkCitQ
QVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvICJzdXBlcmNoYXQiCiBJTkZPOiBSZWNl
aXZlZDogc3VwZXJjaGF0CiBQQVNTIFBBU1M6IHJlY2VpdmVkTWVzc2FnZSBpcyBlcXVhbCB0byAi
c3VwZXJjaGF0IgogSU5GTzogQ2xvc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJz
L25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDI0NjEwNzdlNzM0NTQ3
ODAxZmVjNWM5MTYyMDc4YmM1ZjM3MmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnByb3RvY29sLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitXZWJTb2NrZXQncyBwcm90b2NvbCBhdHRyaWJ1
dGUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgc2VydmVyIGRpZCBub3QgcHJvdmlk
ZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCitQQVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvICIiCitJTkZPOiBDb25u
ZWN0ZWQKK1BBU1MgUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gIiIKK0lORk86IENsb3Nl
ZAorUEFTUyBQQVNTOiBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK0RPTkUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3Vi
cHJvdG9jb2wuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvd29ya2Vycy9uby1zdWJwcm90b2NvbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNDc3ODI4NmU3NDVj
ZjNkMTdlOGFiYTYxOTJhNTUzMTRjNmI4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wu
aHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oIldlYlNvY2tldCdz
IHByb3RvY29sIGF0dHJpYnV0ZSBzaG91bGQgYmUgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBzZXJ2
ZXIgZGlkIG5vdCBwcm92aWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyLiIpOworCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCitmdW5jdGlvbiBzdGFydHNX
aXRoKHN0ciwgcHJlZml4KQoreworICAgIHJldHVybiBzdHIuaW5kZXhPZihwcmVmaXgpID09IDA7
Cit9CisKK3ZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvbm8tc3VicHJvdG9jb2wu
anMiKTsKK3dvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgdmFyIG1l
c3NhZ2UgPSBldmVudC5kYXRhOworICAgIGlmIChzdGFydHNXaXRoKG1lc3NhZ2UsICJQQVNTIikp
CisgICAgICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7CisgICAgZWxzZSBpZiAoc3RhcnRzV2l0aCht
ZXNzYWdlLCAiRkFJTCIpKQorICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpCisgICAgZWxzZQor
ICAgICAgICBkZWJ1ZyhtZXNzYWdlKTsKKyAgICBpZiAobWVzc2FnZSA9PT0gIkRPTkUiKQorICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9y
ZXNvdXJjZXMvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90
b2NvbHMuanMKaW5kZXggZDRhODNlZTdmNzJjNTJmYzJhZWRlZjk1ZThiNWY1NTE3OWYzMjg5MC4u
NWNkY2NkNDMxY2M1NzA1NTBiYmZiZmU1NWQyY2RmYjhjNGU5OTg1YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNl
cy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2Nv
bHMuanMKQEAgLTEsMTkgKzEsMTcgQEAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3
LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvcHJvdG9j
b2wtdGVzdD9wcm90b2NvbD1zdXBlcmNoYXQiLCBbImNoYXQiLCAic3VwZXJjaGF0Il0pOwogCi0v
LyBGSVhNRTogSW1wbGVtZW50IFdlYlNvY2tldC5wcm90b2NvbC4KLS8vIGlmICh3cy5wcm90b2Nv
bCA9PT0gIiIpCi0vLyAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFs
IHRvIFwiXCIiKTsKLS8vIGVsc2UKLS8vICAgICBwb3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9j
b2wgc2hvdWxkIGJlIFwiXCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOworaWYg
KHdzLnByb3RvY29sID09PSAiIikKKyAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wg
aXMgZXF1YWwgdG8gXCJcIiIpOworZWxzZQorICAgIHBvc3RNZXNzYWdlKCJGQUlMOiB3cy5wcm90
b2NvbCBzaG91bGQgYmUgXCJcIiBidXQgd2FzIFwiIiArIHdzLnByb3RvY29sICsgIlwiIik7CiAK
IHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBwb3N0TWVzc2FnZSgiSU5GTzogQ29ubmVj
dGVkIik7Ci0gICAgLy8gRklYTUU6IERpdHRvLgotICAgIC8vIGlmICh3cy5wcm90b2NvbCA9PT0g
InN1cGVyY2hhdCIpCi0gICAgLy8gICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBp
cyBlcXVhbCB0byBcInN1cGVyY2hhdFwiIik7Ci0gICAgLy8gZWxzZQotICAgIC8vICAgICBwb3N0
TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwic3VwZXJjaGF0XCIgYnV0IHdh
cyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOworICAgIGlmICh3cy5wcm90b2NvbCA9PT0gInN1
cGVyY2hhdCIpCisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVh
bCB0byBcInN1cGVyY2hhdFwiIik7CisgICAgZWxzZQorICAgICAgICBwb3N0TWVzc2FnZSgiRkFJ
TDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwic3VwZXJjaGF0XCIgYnV0IHdhcyBcIiIgKyB3cy5w
cm90b2NvbCArICJcIiIpOwogfTsKIAogd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dv
cmtlcnMvcmVzb3VyY2VzL25vLXN1YnByb3RvY29sLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xY2UzN2ViZDBkMWY3Y2M0OTY2ODEzOGViNzM5NmYyOWY0YzliNDQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS93b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5qcwpAQCAtMCwwICsxLDI2IEBA
Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3NpbXBsZSIpOworCitpZiAod3MucHJvdG9jb2wg
PT09ICIiKQorICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBc
IlwiIik7CitlbHNlCisgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBi
ZSBcIlwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKword3Mub25vcGVuID0g
ZnVuY3Rpb24oKQoreworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBDb25uZWN0ZWQiKTsKKyAgICBp
ZiAod3MucHJvdG9jb2wgPT09ICIiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJv
dG9jb2wgaXMgZXF1YWwgdG8gXCJcIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2Uo
IkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9j
b2wgKyAiXCIiKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihjbG9zZUV2ZW50KQorewor
ICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBDbG9zZWQiKTsKKyAgICBpZiAoY2xvc2VFdmVudC53YXND
bGVhbiA9PT0gdHJ1ZSkKKyAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IGNsb3NlRXZlbnQud2Fz
Q2xlYW4gaXMgdHJ1ZSIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IGNs
b3NlRXZlbnQud2FzQ2xlYW4gc2hvdWxkIGJlIHRydWUgYnV0IHdhcyBcIiIgKyBjbG9zZUV2ZW50
Lndhc0NsZWFuICsgIlwiIik7CisKKyAgICBwb3N0TWVzc2FnZSgiRE9ORSIpOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBhZTc0Y2Q2M2QyZWM0MjJjYTI5MTE2OTQyMGJmZWY3ZGIwYTIzMWJkLi5hNTAyOGFm
NGQ4Yjk5ZWRkOTUwNDczZjg3YWNhYTk0ZTM3Y2IyNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMTEtMDgtMTAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgInByb3RvY29sIiBhdHRyaWJ1dGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjQ4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHJlYWQt
b25seSBhdHRyaWJ1dGUgInByb3RvY29sIiB0byBXZWJTb2NrZXQuIEl0IHJldHVybnMgYSBzdHJp
bmcgd2hpY2ggcmVwcmVzZW50cworICAgICAgICB0aGUgdmFsdWUgb2YgU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCBoZWFkZXIgaW4gdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2Nv
bC5odG1sIChhZGRlZCkKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvd29ya2Vycy9uby1zdWJwcm90b2NvbC5odG1sIChhZGRlZCkKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVkLWF0dHJpYnV0ZXMu
aHRtbCAodXBkYXRlZCkKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmh0bWwgKHVwZGF0ZWQpCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbXVsdGlwbGUtc3VicHJv
dG9jb2xzLmh0bWwgKHVwZGF0ZWQpCisKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgIEFkZGVkIHN1YnByb3RvY29sKCkgZnVuY3Rpb24u
IFRoaXMgZnVuY3Rpb24gaXMgbmFtZWQgZGlmZmVyZW50bHkgZnJvbSB0aGUgY291bnRlcnBhcnQg
b2YKKyAgICAgICAgV2ViU29ja2V0IGNsYXNzLCBiZWNhdXNlIHRoZSBuYW1lICJwcm90b2NvbCIg
Y2FuIGJlIGNvbmZ1c2VkIHdpdGggdGhlIFdlYlNvY2tldCBwcm90b2NvbC4KKyAgICAgICAgKiB3
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6
OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnN1YnByb3RvY29s
KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6c2V0U3VicHJvdG9jb2wpOgorICAgICAgICAqIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpwcm90b2NvbCk6CisgICAg
ICAgIFRoZSAicHJvdG9jb2wiIGF0dHJpYnV0ZSBpcyBhdmFpbGFibGUgb25seSB3aGVuIHRoZSBo
eWJpLTEwIHByb3RvY29sIGlzIGNob3Nlbi4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tl
dC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmlkbDoKKyAgICAgICAgKiB3ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6c3VicHJvdG9jb2wpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OnN1YnByb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OndvcmtlckNvbnRleHREaWRD
b25uZWN0KToKKyAgICAgICAgU3VicHJvdG9jb2wgdmFsdWUgaXMgc2F2ZWQgaW4gdGhlIGNsaWVu
dCB3cmFwcGVyIG9iamVjdCBhZnRlciB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMKKyAgICAg
ICAgZXN0YWJsaXNoZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ29ubmVjdCk6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDExLTA4LTEwICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhdXRv
LWNvbXBsZXRpb24gZm9yIHN0cmluZyBsaXRlcmFscyBkb2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCA1NjViMWVmNmIzNzczYTg4MTJhODRiZmExMTcwM2RmNDQ1MmNiZGY1Li5jZDljZTI1MmE0
Y2Q1YmQ2N2E3MzljZmM1MzMyNzA4ZTBlZDQ4Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC01MSw2ICs1
MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCB1c2VIaXhpZTc2UHJvdG9jb2woKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90b2NvbCgpID0gMDsgLy8g
V2lsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgZGlkQ29ubmVjdCgpIGNhbGxiYWNrIGlzIGludm9rZWQu
CiAgICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmNwcAppbmRleCBhYTA2MDllZGFlNjdhYTBkZjExY2YxNzIwZTMwZmY3MGEwYzMzYTEzLi4x
YTE3OWM5ODI5MjJkMTcyNGM0MzUzNWIyYzQ3ZDZlMjY1ZDYzM2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBAIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N5bmNNZXRob2RE
b25lKGZhbHNlKQogICAgICwgbV91c2VIaXhpZTc2UHJvdG9jb2wodHJ1ZSkKKyAgICAsIG1fc3Vi
cHJvdG9jb2woIiIpCiAgICAgLCBtX3NlbnQoZmFsc2UpCiAgICAgLCBtX2J1ZmZlcmVkQW1vdW50
KDApCiAgICAgLCBtX3N1c3BlbmRlZChmYWxzZSkKQEAgLTgwLDYgKzgxLDE2IEBAIHZvaWQgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRVc2VIaXhpZTc2UHJvdG9j
b2woYm9vbCB1c2VIaXhpCiAgICAgbV91c2VIaXhpZTc2UHJvdG9jb2wgPSB1c2VIaXhpZTc2UHJv
dG9jb2w7CiB9CiAKK1N0cmluZyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OnN1YnByb3RvY29sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdWJwcm90b2NvbDsKK30K
Kwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN1YnBy
b3RvY29sKGNvbnN0IFN0cmluZyYgc3VicHJvdG9jb2wpCit7CisgICAgbV9zdWJwcm90b2NvbCA9
IHN1YnByb3RvY29sOworfQorCiBib29sIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcjo6c2VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2VudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IDc0MzZhNjNmOGFmYWNkYWNhOGU5ZjE0ZmQ2
NWU4N2JhNmZlZjJkYjUuLmI1NGFjYTA3MGE5OTk4YzA4ZDEyOGQ4N2Q3ZmRlYTE4MDc4ZDMzMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaApAQCAtNTgsNiArNTgsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgdXNlSGl4aWU3NlByb3RvY29sKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRVc2VIaXhpZTc2UHJvdG9jb2woYm9vbCk7CiAKKyAgICAvLyBTdWJwcm90b2NvbCBpcyBj
YWNoZWQgdG9vLiBXaWxsIGJlIGF2YWlsYWJsZSB3aGVuIGRpZENvbm5lY3QoKSBjYWxsYmFjayBp
cyBpbnZva2VkLgorICAgIFN0cmluZyBzdWJwcm90b2NvbCgpIGNvbnN0OworICAgIHZvaWQgc2V0
U3VicHJvdG9jb2woY29uc3QgU3RyaW5nJik7CisKICAgICBib29sIHNlbnQoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNlbnQoYm9vbCk7CiAKQEAgLTg2LDYgKzkwLDcgQEAgcHJvdGVjdGVkOgogICAg
IFdlYlNvY2tldENoYW5uZWxDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9zeW5jTWV0aG9k
RG9uZTsKICAgICBib29sIG1fdXNlSGl4aWU3NlByb3RvY29sOworICAgIFN0cmluZyBtX3N1YnBy
b3RvY29sOwogICAgIGJvb2wgbV9zZW50OwogICAgIHVuc2lnbmVkIGxvbmcgbV9idWZmZXJlZEFt
b3VudDsKICAgICBib29sIG1fc3VzcGVuZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwCmluZGV4IGE1Yjg5NDkwMzE1ODAzNjcxYTI4MzBlMTFjNDYxY2UwNTNjMmM4MGEu
LjI1MTMyOWYwMWNmNzQ2ZmNjOWQ4M2Q4NWRhYzZkYjdhOWI5NTI0NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTI5Miw2ICsyOTIsMTUgQEAgdW5zaWduZWQg
bG9uZyBXZWJTb2NrZXQ6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKICAgICByZXR1cm4gbV9idWZm
ZXJlZEFtb3VudEFmdGVyQ2xvc2U7CiB9CiAKK1N0cmluZyBXZWJTb2NrZXQ6OnByb3RvY29sKCkg
Y29uc3QKK3sKKyAgICBpZiAobV9jaGFubmVsLT51c2VIaXhpZTc2UHJvdG9jb2woKSkKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpCisgICAg
ICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gbV9jaGFubmVsLT5zdWJwcm90b2NvbCgpOworfQor
CiBTdHJpbmcgV2ViU29ja2V0OjpiaW5hcnlUeXBlKCkgY29uc3QKIHsKICAgICBpZiAobV9jaGFu
bmVsLT51c2VIaXhpZTc2UHJvdG9jb2woKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5oCmluZGV4IGUxNWMxZTE4NTliNDIwMTZlN2RhMGRiZmU5MDYwZDEyZGNkODMxYjQuLjc3OWJl
Njg5OWFlNjkzZGZmMWNiNmY3NmFmMDViOTQ5ZmJlNmY3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaApAQCAtNzQsNiArNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBi
dWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCisgICAgICAgIFN0cmluZyBwcm90b2NvbCgpIGNvbnN0
OworCiAgICAgICAgIFN0cmluZyBiaW5hcnlUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0
QmluYXJ5VHlwZShjb25zdCBTdHJpbmcmIGJpbmFyeVR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDc1MmVmYWU0OWM1NTc3
ZThkNTM5MTFmMTBiNjU0ZWFiY2IwZGVkNzYuLjgxZDc1NjNmMDdjOTE0Mjc0NWY3ZjI5YjFjZTMy
NTVmNTZhNmVjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKQEAg
LTU4LDYgKzU4LDggQEAgbW9kdWxlIHdlYnNvY2tldHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNs
b3NlOwogCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1V
bmRlZmluZWRdIERPTVN0cmluZyBwcm90b2NvbDsKKwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsU3RyaW5nVG89VW5kZWZpbmVkXSBET01TdHJpbmcgYmluYXJ5VHlwZQogICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAzZDljNGE5MTQwZjliNTQxODY5MWZh
ZmMzZGM4YTAyZDNlZTMwMjEyLi45YWZjNzRjNWE3ZDhkNTk0ZjY5ZDQ2YmZkMjg1MjRkMmYxMmNi
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKQEAgLTEzMSw2ICsxMzEsMTcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICBtX2hhbmRsZSA9IFNv
Y2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgdGhpcyk7CiB9CiAK
K1N0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCit7CisgICAgTE9HKE5ldHdv
cmssICJXZWJTb2NrZXRDaGFubmVsICVwIHN1YnByb3RvY29sIiwgdGhpcyk7CisgICAgaWYgKCFt
X2hhbmRzaGFrZSB8fCBtX2hhbmRzaGFrZS0+bW9kZSgpICE9IFdlYlNvY2tldEhhbmRzaGFrZTo6
Q29ubmVjdGVkKQorICAgICAgICByZXR1cm4gIiI7CisgICAgU3RyaW5nIHNlcnZlclByb3RvY29s
ID0gbV9oYW5kc2hha2UtPnNlcnZlcldlYlNvY2tldFByb3RvY29sKCk7CisgICAgaWYgKHNlcnZl
clByb3RvY29sLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIHNlcnZl
clByb3RvY29sOworfQorCiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5k
ICVzIiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOWM2MTY3ZTJiMTlhZTBlMWQyMDU3NTll
ZGE3ZmVkMDVhYjZlNGViYi4uMGZkOTZmMTYxZWM0ZTk2NDllM2ViNGRjMDY3OGUxODc1MmQ2MzFm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAg
LTU2LDYgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCB1c2VIaXhpZTc2UHJvdG9jb2woKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOworICAgICAgICB2aXJ0dWFsIFN0cmlu
ZyBzdWJwcm90b2NvbCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOwogICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQo
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7IC8vIFN0YXJ0IGNsb3Npbmcg
aGFuZHNoYWtlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkMjlmNTdlNGJmZDI4
Y2E4OTJmMTM5NGUwNjljZDBhY2E3MDUxYTNiLi5kMTE1YmE2YzBlNzUxYzZmY2QzMWMxZjhlYmU4
ZjY2YmEwN2NjYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNzQsNiArNzQs
MTIgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHIKICAgICAgICAgbV9icmlkZ2UtPmNvbm5lY3Qo
dXJsLCBwcm90b2NvbCk7CiB9CiAKK1N0cmluZyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6c3VicHJvdG9jb2woKQoreworICAgIEFTU0VSVChtX3dvcmtlckNsaWVudFdyYXBwZXIp
OworICAgIHJldHVybiBtX3dvcmtlckNsaWVudFdyYXBwZXItPnN1YnByb3RvY29sKCk7Cit9CisK
IGJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIGlmICghbV9icmlkZ2UpCkBAIC0yMjIsMTYgKzIyOCwxNyBAQCB2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpyZXN1bWUoKQogICAg
IG1fbWFpbldlYlNvY2tldENoYW5uZWwtPnJlc3VtZSgpOwogfQogCi1zdGF0aWMgdm9pZCB3b3Jr
ZXJDb250ZXh0RGlkQ29ubmVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQ
dHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRX
cmFwcGVyKQorc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERpZENvbm5lY3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIGNvbnN0IFN0cmluZyYgc3VicHJv
dG9jb2wpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckNv
bnRleHQoKSk7CisgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+c2V0U3VicHJvdG9jb2woc3VicHJv
dG9jb2wpOwogICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZENvbm5lY3QoKTsKIH0KIAogdm9p
ZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ29ubmVjdCgpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHRE
aWRDb25uZWN0LCBtX3dvcmtlckNsaWVudFdyYXBwZXIpLCBtX3Rhc2tNb2RlKTsKKyAgICBtX2xv
YWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rh
c2soJndvcmtlckNvbnRleHREaWRDb25uZWN0LCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIG1fbWFp
bldlYlNvY2tldENoYW5uZWwtPnN1YnByb3RvY29sKCkpLCBtX3Rhc2tNb2RlKTsKIH0KIAogc3Rh
dGljIHZvaWQgd29ya2VyQ29udGV4dERpZFJlY2VpdmVNZXNzYWdlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaAppbmRleCBkNGQzN2M1MDMyMWU0YWE3NTY1ZjU5OTVhZjZiNzE1NDJj
ZWNhZGM1Li40NDAwMzcwZjUwNWNmMWNjOWI1YmQ3NzFkMjY0MmZiODg0YTZmYjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCB1c2VIaXhpZTc2UHJvdG9jb2woKTsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CisgICAgdmlydHVhbCBTdHJpbmcg
c3VicHJvdG9jb2woKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103608</attachid>
            <date>2011-08-11 06:09:54 -0700</date>
            <delta_ts>2011-08-11 22:25:59 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-65248-20110811220953.patch</filename>
            <type>text/plain</type>
            <size>32386</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNWM0YjBjNmYyMjU2MTZkNDU3NjIw
MWJmMDU2YjMxYjkxY2QwNGNmLi4xODQ4OTAwYzk4ZTQxZmE3N2MzZGQzZWUwOGM0ZWFjMDg4Yjdi
NGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMTEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgInByb3Rv
Y29sIiBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgIEFkZGVkIGEgdGVz
dCB0byBjaGVjayAicHJvdG9jb2wiIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJwcm90
b2NvbHMuaHRtbDoKKyAgICAgICAgVGhlIGF0dHJpYnV0ZSBzaG91bGQgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZyBhdCBmaXJzdC4gQWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQsCisg
ICAgICAgIGl0IHNob3VsZCByZXR1cm4gdGhlIHZhbHVlIG9mIFNlYy1XZWJTb2NrZXQtUHJvdG9j
b2wgaGVhZGVyIGluIHRoZSBzZXJ2ZXIncyBoYW5kc2hha2UgcmVzcG9uc2UuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvbm8t
c3VicHJvdG9jb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9zZXQtcHJvdG9jb2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NldC1wcm90b2NvbC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbXVsdGlw
bGUtc3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8t
c3VicHJvdG9jb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanM6Cisg
ICAgICAgICh3cy5vbm9wZW4pOgorICAgICAgICAod3Mub25jbG9zZSk6CisgICAgICAgIChjaGVj
a0FmdGVyT25DbG9zZSk6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS93b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5qczogQWRkZWQuCisgICAgICAgICh3
cy5vbm9wZW4pOgorICAgICAgICAod3Mub25jbG9zZSk6CisgICAgICAgIChjaGVja0FmdGVyT25D
bG9zZSk6CisKIDIwMTEtMDgtMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGF1dG8tY29tcGxldGlvbiBmb3Igc3RyaW5nIGxp
dGVyYWxzIGRvZXNuJ3Qgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5l
ZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBlYzQ5ZjYyNTJiZWIxNmZhNDYxMGU0NzY3
YTQ1MDNlZTdmYzI2OWU5Li40MDI2M2VmM2VkMTRkN2E3YTgzODMxODRiMDhjMTdiNTZhMTEzNzNk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhp
ZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgVGVzdCBXZWJTb2NrZXQgYXR0cmlidXRlcyB3aGlj
aCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBoaXhpZS03NiBwcm90b2NvbCBpcwogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiBQQVNTIHdzLmJpbmFyeVR5cGUgaXMgdW5kZWZpbmVkLgor
UEFTUyB3cy5wcm90b2NvbCBpcyB1bmRlZmluZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVkLWF0dHJpYnV0ZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVkLWF0
dHJpYnV0ZXMuaHRtbAppbmRleCA0NmVhYTBjMGYzMDJkNTM2MjIzMzIyMDkyOWE5YzM3ZmM1NDE5
YzBkLi4zYTlmNjU2NjA4YTE5MGY5MDY1ZTdiZDIzMmZhNzcxMTE2ZTcwM2E4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5l
ZC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0cmlidXRlcy5odG1sCkBAIC0xMyw2ICsxMyw3IEBA
IGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tldCBhdHRyaWJ1dGVzIHdoaWNoIHNob3VsZCBub3Qg
YmUgZGVmaW5lZCB3aGVuIGhpeGllLTc2CiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEy
Ny4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZSIpOwogCiBzaG91bGRC
ZVVuZGVmaW5lZCgid3MuYmluYXJ5VHlwZSIpOworc2hvdWxkQmVVbmRlZmluZWQoIndzLnByb3Rv
Y29sIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRp
cGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQKaW5k
ZXggOWVlZmZkMDM2YTliN2ZmOTNiNmJlYmMyZjQ5Mjg2Yjc4NDg1ZGRiZi4uMWJiNDQ5ODhkY2Vm
Mjc0NDVhOGJhM2ZkZmFkMDRmNmI5ZjI5OGQyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
bXVsdGlwbGUtc3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dApAQCAtMiwxMSArMiwxNiBAQCBUZXN0
IFdlYlNvY2tldCBzdWJwcm90b2NvbCBuZWdvdGlhdGlvbi4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCitQQVNTIHdzLnByb3RvY29sIGlzICIiCiBDb25uZWN0ZWQKK1BBU1Mgd3MucHJv
dG9jb2wgaXMgInN1cGVyY2hhdCIKIFJlY2VpdmVkOiBzdXBlcmNoYXQKIFBBU1MgcmVjZWl2ZWRN
ZXNzYWdlIGlzICJzdXBlcmNoYXQiCiBDbG9zZWQKK1BBU1Mgd3MucHJvdG9jb2wgaXMgInN1cGVy
Y2hhdCIKIFBBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitFeGl0ZWQgb25jbG9zZSBo
YW5kbGVyCitQQVNTIHdzLnByb3RvY29sIGlzICJzdXBlcmNoYXQiCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxl
LXN1YnByb3RvY29scy5odG1sCmluZGV4IDY2ZmM0YTdiZWIyYjRjMzViNWFlMTZkYjg1MjVmZmIw
MTQwZTRkYzMuLmQ2MDgwMmZmNWQ3MjNmY2JjZTVmZGYwN2Y3YWM0ZWM3MGMxNzkyZjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlw
bGUtc3VicHJvdG9jb2xzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJwcm90b2NvbHMuaHRtbApAQCAtMTgsMTQgKzE4LDEy
IEBAIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvcHJvdG9jb2wtdGVzdD9wCiB2YXIgY2xvc2VFdmVudDsKIHZhciByZWNlaXZl
ZE1lc3NhZ2U7CiAKLS8vIEZJWE1FOiBJbXBsZW1lbnQgV2ViU29ja2V0LnByb3RvY29sLgotLy8g
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7CiAKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKIHsK
ICAgICBkZWJ1ZygiQ29ubmVjdGVkIik7Ci0gICAgLy8gRklYTUU6IERpdHRvLgotICAgIC8vIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAic3VwZXJjaGF0Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICJzdXBlcmNoYXQiKTsKIH07CiAKIHdz
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzgsMTEgKzM2LDE5IEBAIHdzLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQogd3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogewog
ICAgIGRlYnVnKCJDbG9zZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3Rv
Y29sIiwgInN1cGVyY2hhdCIpOwogICAgIGNsb3NlRXZlbnQgPSBldmVudDsKICAgICBzaG91bGRC
ZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBz
ZXRUaW1lb3V0KCJjaGVja0FmdGVyT25DbG9zZSgpIiwgMCk7CiB9OwogCitmdW5jdGlvbiBjaGVj
a0FmdGVyT25DbG9zZSgpCit7CisgICAgZGVidWcoIkV4aXRlZCBvbmNsb3NlIGhhbmRsZXIiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3RvY29sIiwgInN1cGVyY2hhdCIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvbm8tc3VicHJvdG9jb2wt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmMDQ1YjA0Y2JjZGQ2NjQwNjRhN2Q4MWE1NWY0ODlm
OTk4OGRhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACitXZWJTb2NrZXQncyBwcm90b2NvbCBhdHRyaWJ1dGUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0
cmluZyBpZiB0aGUgc2VydmVyIGRpZCBub3QgcHJvdmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29s
IGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIHdzLnByb3RvY29s
IGlzICIiCitDb25uZWN0ZWQKK1BBU1Mgd3MucHJvdG9jb2wgaXMgIiIKK0Nsb3NlZAorUEFTUyB3
cy5wcm90b2NvbCBpcyAiIgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK0V4aXRl
ZCBvbmNsb3NlIGhhbmRsZXIKK1BBU1Mgd3MucHJvdG9jb2wgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3Rv
Y29sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcwYTYyOTQ4NzAyMDIwOGE3MWVlMjAwNjNkZDYwOTE3NTM1
NzNjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvbm8tc3VicHJvdG9jb2wuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVz
Y3JpcHRpb24oIldlYlNvY2tldCdzIHByb3RvY29sIGF0dHJpYnV0ZSBzaG91bGQgYmUgYW4gZW1w
dHkgc3RyaW5nIGlmIHRoZSBzZXJ2ZXIgZGlkIG5vdCBwcm92aWRlIFNlYy1XZWJTb2NrZXQtUHJv
dG9jb2wgaGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDAp
OworCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NpbXBsZSIpOwordmFyIGNsb3NlRXZlbnQ7CisKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKK3sK
KyAgICBkZWJ1ZygiQ29ubmVjdGVkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5w
cm90b2NvbCIsICIiKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAg
ICBkZWJ1ZygiQ2xvc2VkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2Nv
bCIsICIiKTsKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVUcnVlKCJjbG9z
ZUV2ZW50Lndhc0NsZWFuIik7CisgICAgc2V0VGltZW91dCgiY2hlY2tBZnRlck9uQ2xvc2UoKSIs
IDApOworfTsKKworZnVuY3Rpb24gY2hlY2tBZnRlck9uQ2xvc2UoKQoreworICAgIGRlYnVnKCJF
eGl0ZWQgb25jbG9zZSBoYW5kbGVyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5w
cm90b2NvbCIsICIiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9zZXQtcHJvdG9jb2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zZXQtcHJvdG9jb2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5
NDQ4ZjYyMTczYmRjZTJiODRhYzllMGMxZjc4MzZiNDdkNTRhZTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NldC1wcm90b2Nv
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorV2ViU29ja2V0LnByb3RvY29sIHNob3Vs
ZCBub3QgYmUgbW9kaWZpZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyB3
cy5wcm90b2NvbCBpcyAiIgorUEFTUyB3cy5wcm90b2NvbCBpcyAiIgorQ29ubmVjdGVkCitQQVNT
IHdzLnByb3RvY29sIGlzICJjaGF0IgorUEFTUyB3cy5wcm90b2NvbCBpcyAiY2hhdCIKK0Nsb3Nl
ZAorUEFTUyB3cy5wcm90b2NvbCBpcyAiY2hhdCIKK1BBU1Mgd3MucHJvdG9jb2wgaXMgImNoYXQi
CitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorRXhpdGVkIG9uY2xvc2UgaGFuZGxl
cgorUEFTUyB3cy5wcm90b2NvbCBpcyAiY2hhdCIKK1BBU1Mgd3MucHJvdG9jb2wgaXMgImNoYXQi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXQt
cHJvdG9jb2wuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvc2V0LXByb3RvY29sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRlOWVhOWQ5OTliYTlhMjFmMTQ0MzE1
OTI1MDc2NTlmOGNhN2IzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2V0LXByb3RvY29sLmh0bWwKQEAgLTAsMCArMSw1NiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KK2Rlc2NyaXB0aW9uKCJXZWJTb2NrZXQucHJvdG9jb2wgc2hvdWxkIG5vdCBiZSBtb2Rp
ZmllZC4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKwordmFy
IHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMv
aHliaS9hY2NlcHQtZmlyc3Qtc3VicHJvdG9jb2wiLCAiY2hhdCIpOwordmFyIGNsb3NlRXZlbnQ7
CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7Cit3cy5wcm90b2Nv
bCA9ICJzdXBlcmNoYXQiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIi
KTsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCJDb25uZWN0ZWQiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3RvY29sIiwgImNoYXQiKTsKKyAgICB3
cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQiOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3Mu
cHJvdG9jb2wiLCAiY2hhdCIpOworfTsKKword3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQor
eworICAgIGRlYnVnKCJDbG9zZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnBy
b3RvY29sIiwgImNoYXQiKTsKKyAgICB3cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQiOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiY2hhdCIpOworICAgIGNsb3NlRXZl
bnQgPSBldmVudDsKKyAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKKyAg
ICBzZXRUaW1lb3V0KCJjaGVja0FmdGVyT25DbG9zZSgpIiwgMCk7Cit9OworCitmdW5jdGlvbiBj
aGVja0FmdGVyT25DbG9zZSgpCit7CisgICAgZGVidWcoIkV4aXRlZCBvbmNsb3NlIGhhbmRsZXIi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3RvY29sIiwgImNoYXQiKTsKKyAg
ICB3cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQiOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
d3MucHJvdG9jb2wiLCAiY2hhdCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3dvcmtlcnMvbXVsdGlwbGUtc3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9tdWx0aXBs
ZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CmluZGV4IGJhMzdmMTFhZWRhY2UyOGE5YTk0OGE2
YWNiNmRkZGQ0NWZiNzE0ZTAuLjA3ZGY0MWQyZDBhODgzYmY0MDI0NmQ2ZTFkZjJkNzg5YjJlNGYz
MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvd29ya2Vycy9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9tdWx0aXBsZS1z
dWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDE2IEBAIFRlc3QgV2ViU29ja2V0
IHN1YnByb3RvY29sIG5lZ290aWF0aW9uIGluIHdvcmtlcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAorUEFTUyBQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byAiIgogSU5GTzog
Q29ubmVjdGVkCitQQVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvICJzdXBlcmNoYXQi
CiBJTkZPOiBSZWNlaXZlZDogc3VwZXJjaGF0CiBQQVNTIFBBU1M6IHJlY2VpdmVkTWVzc2FnZSBp
cyBlcXVhbCB0byAic3VwZXJjaGF0IgogSU5GTzogQ2xvc2VkCitQQVNTIFBBU1M6IHdzLnByb3Rv
Y29sIGlzIGVxdWFsIHRvICJzdXBlcmNoYXQiCiBQQVNTIFBBU1M6IGNsb3NlRXZlbnQud2FzQ2xl
YW4gaXMgdHJ1ZQorSU5GTzogRXhpdGVkIG9uY2xvc2UgaGFuZGxlcgorUEFTUyBQQVNTOiB3cy5w
cm90b2NvbCBpcyBlcXVhbCB0byAic3VwZXJjaGF0IgogRE9ORQogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnBy
b3RvY29sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzExMGE2YmYzMjY1YmRiM2E4NTFlN2Jj
YjRmM2QxNzJmMzBhZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE3IEBACitXZWJTb2NrZXQncyBwcm90b2NvbCBhdHRyaWJ1dGUgc2hvdWxk
IGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgc2VydmVyIGRpZCBub3QgcHJvdmlkZSBTZWMtV2Vi
U29ja2V0LVByb3RvY29sIGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQ
QVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvICIiCitJTkZPOiBDb25uZWN0ZWQKK1BB
U1MgUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gIiIKK0lORk86IENsb3NlZAorUEFTUyBQ
QVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byAiIgorUEFTUyBQQVNTOiBjbG9zZUV2ZW50Lndh
c0NsZWFuIGlzIHRydWUKK0lORk86IEV4aXRlZCBvbmNsb3NlIGhhbmRsZXIKK1BBU1MgUEFTUzog
d3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gIiIKK0RPTkUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9uby1z
dWJwcm90b2NvbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNDc3ODI4NmU3NDVjZjNkMTdlOGFiYTYxOTJh
NTUzMTRjNmI4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wuaHRtbApAQCAtMCwwICsx
LDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oIldlYlNvY2tldCdzIHByb3RvY29sIGF0dHJp
YnV0ZSBzaG91bGQgYmUgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBzZXJ2ZXIgZGlkIG5vdCBwcm92
aWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZCIsIDApOworCitmdW5jdGlvbiBzdGFydHNXaXRoKHN0ciwgcHJlZml4
KQoreworICAgIHJldHVybiBzdHIuaW5kZXhPZihwcmVmaXgpID09IDA7Cit9CisKK3ZhciB3b3Jr
ZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvbm8tc3VicHJvdG9jb2wuanMiKTsKK3dvcmtlci5v
bm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5k
YXRhOworICAgIGlmIChzdGFydHNXaXRoKG1lc3NhZ2UsICJQQVNTIikpCisgICAgICAgIHRlc3RQ
YXNzZWQobWVzc2FnZSk7CisgICAgZWxzZSBpZiAoc3RhcnRzV2l0aChtZXNzYWdlLCAiRkFJTCIp
KQorICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpCisgICAgZWxzZQorICAgICAgICBkZWJ1Zyht
ZXNzYWdlKTsKKyAgICBpZiAobWVzc2FnZSA9PT0gIkRPTkUiKQorICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvbXVsdGlw
bGUtc3VicHJvdG9jb2xzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanMKaW5kZXgg
ZDRhODNlZTdmNzJjNTJmYzJhZWRlZjk1ZThiNWY1NTE3OWYzMjg5MC4uY2IxZTExZGM4ZjU1YjRh
MDk3ZTdjOGM0NTBhMGIzNDFkYjRjODkzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJw
cm90b2NvbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanMKQEAgLTEsMTkg
KzEsMTcgQEAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdD9wcm90b2Nv
bD1zdXBlcmNoYXQiLCBbImNoYXQiLCAic3VwZXJjaGF0Il0pOwogCi0vLyBGSVhNRTogSW1wbGVt
ZW50IFdlYlNvY2tldC5wcm90b2NvbC4KLS8vIGlmICh3cy5wcm90b2NvbCA9PT0gIiIpCi0vLyAg
ICAgcG9zdE1lc3NhZ2UoIlBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvIFwiXCIiKTsKLS8v
IGVsc2UKLS8vICAgICBwb3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwi
XCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOworaWYgKHdzLnByb3RvY29sID09
PSAiIikKKyAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJc
IiIpOworZWxzZQorICAgIHBvc3RNZXNzYWdlKCJGQUlMOiB3cy5wcm90b2NvbCBzaG91bGQgYmUg
XCJcIiBidXQgd2FzIFwiIiArIHdzLnByb3RvY29sICsgIlwiIik7CiAKIHdzLm9ub3BlbiA9IGZ1
bmN0aW9uKCkKIHsKICAgICBwb3N0TWVzc2FnZSgiSU5GTzogQ29ubmVjdGVkIik7Ci0gICAgLy8g
RklYTUU6IERpdHRvLgotICAgIC8vIGlmICh3cy5wcm90b2NvbCA9PT0gInN1cGVyY2hhdCIpCi0g
ICAgLy8gICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBcInN1
cGVyY2hhdFwiIik7Ci0gICAgLy8gZWxzZQotICAgIC8vICAgICBwb3N0TWVzc2FnZSgiRkFJTDog
d3MucHJvdG9jb2wgc2hvdWxkIGJlIFwic3VwZXJjaGF0XCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90
b2NvbCArICJcIiIpOworICAgIGlmICh3cy5wcm90b2NvbCA9PT0gInN1cGVyY2hhdCIpCisgICAg
ICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBcInN1cGVyY2hh
dFwiIik7CisgICAgZWxzZQorICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wg
c2hvdWxkIGJlIFwic3VwZXJjaGF0XCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIp
OwogfTsKIAogd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCkBAIC0yOSwxMCArMjcsMjgg
QEAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCiB3cy5vbmNsb3NlID0gZnVuY3Rpb24o
Y2xvc2VFdmVudCkKIHsKICAgICBwb3N0TWVzc2FnZSgiSU5GTzogQ2xvc2VkIik7CisKKyAgICBp
ZiAod3MucHJvdG9jb2wgPT09ICJzdXBlcmNoYXQiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFT
Uzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJzdXBlcmNoYXRcIiIpOworICAgIGVsc2UKKyAg
ICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcInN1cGVyY2hh
dFwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKwogICAgIGlmIChjbG9zZUV2
ZW50Lndhc0NsZWFuID09PSB0cnVlKQogICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogY2xvc2VF
dmVudC53YXNDbGVhbiBpcyB0cnVlIik7CiAgICAgZWxzZQogICAgICAgICBwb3N0TWVzc2FnZSgi
RkFJTDogY2xvc2VFdmVudC53YXNDbGVhbiBzaG91bGQgYmUgdHJ1ZSBidXQgd2FzIFwiIiArIGNs
b3NlRXZlbnQud2FzQ2xlYW4gKyAiXCIiKTsKIAotICAgIHBvc3RNZXNzYWdlKCJET05FIik7Cisg
ICAgc2V0VGltZW91dCgiY2hlY2tBZnRlck9uQ2xvc2UoKSIsIDApOwogfTsKKworZnVuY3Rpb24g
Y2hlY2tBZnRlck9uQ2xvc2UoKQoreworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBFeGl0ZWQgb25j
bG9zZSBoYW5kbGVyIik7CisKKyAgICBpZiAod3MucHJvdG9jb2wgPT09ICJzdXBlcmNoYXQiKQor
ICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJzdXBl
cmNoYXRcIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3Rv
Y29sIHNob3VsZCBiZSBcInN1cGVyY2hhdFwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAi
XCIiKTsKKworICAgIHBvc3RNZXNzYWdlKCJET05FIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL25v
LXN1YnByb3RvY29sLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS93b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTA1
YmYzMTM4N2UwMzY5M2I4ZjgzNzJlMGU0YzFlMTY1MmRhMmU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291
cmNlcy9uby1zdWJwcm90b2NvbC5qcwpAQCAtMCwwICsxLDQ0IEBACit2YXIgd3MgPSBuZXcgV2Vi
U29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMv
cmVzb3VyY2VzL3NpbXBsZSIpOworCitpZiAod3MucHJvdG9jb2wgPT09ICIiKQorICAgIHBvc3RN
ZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBcIlwiIik7CitlbHNlCisgICAg
cG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIi
ICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAg
IHBvc3RNZXNzYWdlKCJJTkZPOiBDb25uZWN0ZWQiKTsKKyAgICBpZiAod3MucHJvdG9jb2wgPT09
ICIiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8g
XCJcIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29s
IHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKK307CisK
K3dzLm9uY2xvc2UgPSBmdW5jdGlvbihjbG9zZUV2ZW50KQoreworICAgIHBvc3RNZXNzYWdlKCJJ
TkZPOiBDbG9zZWQiKTsKKworICAgIGlmICh3cy5wcm90b2NvbCA9PT0gIiIpCisgICAgICAgIHBv
c3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBcIlwiIik7CisgICAgZWxz
ZQorICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwiXCIg
YnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOworCisgICAgaWYgKGNsb3NlRXZlbnQu
d2FzQ2xlYW4gPT09IHRydWUpCisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBjbG9zZUV2ZW50
Lndhc0NsZWFuIGlzIHRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlM
OiBjbG9zZUV2ZW50Lndhc0NsZWFuIHNob3VsZCBiZSB0cnVlIGJ1dCB3YXMgXCIiICsgY2xvc2VF
dmVudC53YXNDbGVhbiArICJcIiIpOworCisgICAgc2V0VGltZW91dCgiY2hlY2tBZnRlck9uQ2xv
c2UoKSIsIDApOworfTsKKworZnVuY3Rpb24gY2hlY2tBZnRlck9uQ2xvc2UoKQoreworICAgIHBv
c3RNZXNzYWdlKCJJTkZPOiBFeGl0ZWQgb25jbG9zZSBoYW5kbGVyIik7CisKKyAgICBpZiAod3Mu
cHJvdG9jb2wgPT09ICIiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wg
aXMgZXF1YWwgdG8gXCJcIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6
IHdzLnByb3RvY29sIHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAi
XCIiKTsKKworICAgIHBvc3RNZXNzYWdlKCJET05FIik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU3NGNk
NjNkMmVjNDIyY2EyOTExNjk0MjBiZmVmN2RiMGEyMzFiZC4uOWU1ZmQ0M2ZmNjA1OTJlYjhlMDEw
OGQ5M2MzMGI5MzNlYjQxOTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDExLTA4
LTExICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNv
Y2tldDogSW1wbGVtZW50ICJwcm90b2NvbCIgYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLmh0bWwgKGFkZGVkKQorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXQtcHJvdG9jb2wuaHRtbCAoYWRkZWQpCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8t
c3VicHJvdG9jb2wuaHRtbCAoYWRkZWQpCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwgKHVwZGF0ZWQpCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1
YnByb3RvY29scy5odG1sICh1cGRhdGVkKQorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL211bHRpcGxlLXN1YnByb3RvY29scy5odG1sICh1cGRh
dGVkKQorCisgICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
OgorICAgICAgICBBZGRlZCBzdWJwcm90b2NvbCgpIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlz
IG5hbWVkIGRpZmZlcmVudGx5IGZyb20gdGhlIGNvdW50ZXJwYXJ0IG9mCisgICAgICAgIFdlYlNv
Y2tldCBjbGFzcywgYmVjYXVzZSB0aGUgbmFtZSAicHJvdG9jb2wiIGNhbiBiZSBjb25mdXNlZCB3
aXRoIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wuCisgICAgICAgIEFkZGVkIG1fdXNlSGl4aWU3NlBy
b3RvY29sIGFuZCBtX3N1YnByb3RvY29sLCBiZWNhdXNlIHRoZXNlIHZhbHVlIG1heSBiZSB1c2Vk
IGFmdGVyCisgICAgICAgIG1fY2hhbm5lbCBoYXMgYmVlbiByZWxlYXNlZC4gVXNpbmcgYm9vbCBz
aG91bGQgYmUgZmluZSwgYmVjYXVzZSBib29sZWFuIGxpdGVyYWxzIGRvIG5vdAorICAgICAgICBh
cHBlYXIgaW4gYW1iaWd1b3VzIGNvbnRleHQuCisgICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzdWJwcm90b2NvbCk6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN1YnByb3Rv
Y29sKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldDo6V2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnByb3RvY29s
KToKKyAgICAgICAgVGhlICJwcm90b2NvbCIgYXR0cmlidXRlIGlzIGF2YWlsYWJsZSBvbmx5IHdo
ZW4gdGhlIGh5YmktMTAgcHJvdG9jb2wgaXMgY2hvc2VuLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0OjpiaW5hcnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c2V0Qmlu
YXJ5VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENvbm5lY3QpOgorICAg
ICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJT
b2NrZXQuaWRsOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCk6CisgICAgICAg
ICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgICogd2Vic29ja2V0cy9X
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c3VicHJvdG9jb2wpOgorICAgICAgICAo
V2ViQ29yZTo6d29ya2VyQ29udGV4dERpZENvbm5lY3QpOgorICAgICAgICBTdWJwcm90b2NvbCB2
YWx1ZSBpcyBzYXZlZCBpbiB0aGUgY2xpZW50IHdyYXBwZXIgb2JqZWN0IGFmdGVyIHRoZSBXZWJT
b2NrZXQgY29ubmVjdGlvbiBpcworICAgICAgICBlc3RhYmxpc2hlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDb25uZWN0KToK
KyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6
CisKIDIwMTEtMDgtMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGF1dG8tY29tcGxldGlvbiBmb3Igc3RyaW5nIGxpdGVyYWxz
IGRvZXNuJ3Qgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDU2NWIxZWY2YjM3NzNhODgxMmE4NGJmYTEx
NzAzZGY0NDUyY2JkZjUuLmNkOWNlMjUyYTRjZDViZDY3YTczOWNmYzUzMzI3MDhlMGVkNDhjZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHVzZUhpeGllNzZQcm90b2NvbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIHN1YnByb3RvY29sKCkgPSAwOyAvLyBXaWxsIGJlIGF2YWlsYWJsZSBhZnRlciBkaWRDb25u
ZWN0KCkgY2FsbGJhY2sgaXMgaW52b2tlZC4KICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRB
bW91bnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IGFhMDYwOWVkYWU2N2FhMGRm
MTFjZjE3MjBlMzBmZjcwYTBjMzNhMTMuLjFhMTc5Yzk4MjkyMmQxNzI0YzQzNTM1YjJjNDdkNmUy
NjVkNjMzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKQEAg
LTQ0LDYgKzQ0LDcgQEAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIKICAgICA6IG1fY2xpZW50KGNs
aWVudCkKICAgICAsIG1fc3luY01ldGhvZERvbmUoZmFsc2UpCiAgICAgLCBtX3VzZUhpeGllNzZQ
cm90b2NvbCh0cnVlKQorICAgICwgbV9zdWJwcm90b2NvbCgiIikKICAgICAsIG1fc2VudChmYWxz
ZSkKICAgICAsIG1fYnVmZmVyZWRBbW91bnQoMCkKICAgICAsIG1fc3VzcGVuZGVkKGZhbHNlKQpA
QCAtODAsNiArODEsMTYgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OnNldFVzZUhpeGllNzZQcm90b2NvbChib29sIHVzZUhpeGkKICAgICBtX3VzZUhpeGll
NzZQcm90b2NvbCA9IHVzZUhpeGllNzZQcm90b2NvbDsKIH0KIAorU3RyaW5nIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3VicHJvdG9jb2woKSBjb25zdAoreworICAg
IHJldHVybiBtX3N1YnByb3RvY29sOworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6c2V0U3VicHJvdG9jb2woY29uc3QgU3RyaW5nJiBzdWJwcm90b2Nv
bCkKK3sKKyAgICBtX3N1YnByb3RvY29sID0gc3VicHJvdG9jb2w7Cit9CisKIGJvb2wgVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZW50KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9zZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKaW5kZXgg
NzQzNmE2M2Y4YWZhY2RhY2E4ZTlmMTRmZDY1ZTg3YmE2ZmVmMmRiNS4uYjU0YWNhMDcwYTk5OThj
MDhkMTI4ZDg3ZDdmZGVhMTgwNzhkMzMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlci5oCkBAIC01OCw2ICs1OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VIaXhpZTc2
UHJvdG9jb2woKSBjb25zdDsKICAgICB2b2lkIHNldFVzZUhpeGllNzZQcm90b2NvbChib29sKTsK
IAorICAgIC8vIFN1YnByb3RvY29sIGlzIGNhY2hlZCB0b28uIFdpbGwgYmUgYXZhaWxhYmxlIHdo
ZW4gZGlkQ29ubmVjdCgpIGNhbGxiYWNrIGlzIGludm9rZWQuCisgICAgU3RyaW5nIHN1YnByb3Rv
Y29sKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTdWJwcm90b2NvbChjb25zdCBTdHJpbmcmKTsKKwog
ICAgIGJvb2wgc2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VudChib29sKTsKIApAQCAtODYs
NiArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogbV9jbGll
bnQ7CiAgICAgYm9vbCBtX3N5bmNNZXRob2REb25lOwogICAgIGJvb2wgbV91c2VIaXhpZTc2UHJv
dG9jb2w7CisgICAgU3RyaW5nIG1fc3VicHJvdG9jb2w7CiAgICAgYm9vbCBtX3NlbnQ7CiAgICAg
dW5zaWduZWQgbG9uZyBtX2J1ZmZlcmVkQW1vdW50OwogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggYTViODk0OTAzMTU4MDM2
NzFhMjgzMGUxMWM0NjFjZTA1M2MyYzgwYS4uNTZiMmNlMzM5YjliZGFhMTA0MzFmYzAwNTNhNTAw
YmU1MDI5ODE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAt
MTM2LDYgKzEzNiw4IEBAIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCiAgICAgLCBtX3N0YXRlKENPTk5FQ1RJTkcpCiAgICAgLCBtX2J1ZmZlcmVk
QW1vdW50QWZ0ZXJDbG9zZSgwKQogICAgICwgbV9iaW5hcnlUeXBlKEJpbmFyeVR5cGVCbG9iKQor
ICAgICwgbV91c2VIaXhpZTc2UHJvdG9jb2wodHJ1ZSkKKyAgICAsIG1fc3VicHJvdG9jb2woIiIp
CiB7CiB9CiAKQEAgLTE5MCw5ICsxOTIsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm90b2NvbHMsIEV4Y2UKICAg
ICB9CiAKICAgICBtX2NoYW5uZWwgPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcyk7CisgICAgbV91c2VIaXhpZTc2UHJvdG9j
b2wgPSBtX2NoYW5uZWwtPnVzZUhpeGllNzZQcm90b2NvbCgpOwogCiAgICAgU3RyaW5nIHByb3Rv
Y29sU3RyaW5nOwotICAgIGlmIChtX2NoYW5uZWwtPnVzZUhpeGllNzZQcm90b2NvbCgpKSB7Cisg
ICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CiAgICAgICAgIGlmICghcHJvdG9jb2xzLmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgLy8gRW11bGF0ZSBKYXZhU2NyaXB0J3MgQXJyYXkudG9T
dHJpbmcoKSBiZWhhdmlvci4KICAgICAgICAgICAgIHByb3RvY29sU3RyaW5nID0gam9pblN0cmlu
Z3MocHJvdG9jb2xzLCAiLCIpOwpAQCAtMjkyLDkgKzI5NSwxNiBAQCB1bnNpZ25lZCBsb25nIFdl
YlNvY2tldDo6YnVmZmVyZWRBbW91bnQoKSBjb25zdAogICAgIHJldHVybiBtX2J1ZmZlcmVkQW1v
dW50QWZ0ZXJDbG9zZTsKIH0KIAorU3RyaW5nIFdlYlNvY2tldDo6cHJvdG9jb2woKSBjb25zdAor
eworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgIHJldHVybiBtX3N1YnByb3RvY29sOworfQorCiBTdHJpbmcgV2ViU29ja2V0OjpiaW5h
cnlUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAobV9jaGFubmVsLT51c2VIaXhpZTc2UHJvdG9jb2wo
KSkKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKICAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgewogICAgIGNhc2UgQmluYXJ5VHlwZUJsb2I6
CkBAIC0zMDgsNyArMzE4LDcgQEAgU3RyaW5nIFdlYlNvY2tldDo6YmluYXJ5VHlwZSgpIGNvbnN0
CiAKIHZvaWQgV2ViU29ja2V0OjpzZXRCaW5hcnlUeXBlKGNvbnN0IFN0cmluZyYgYmluYXJ5VHlw
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKG1fY2hhbm5lbC0+dXNlSGl4aWU3NlBy
b3RvY29sKCkpCisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQogICAgICAgICByZXR1cm47
CiAgICAgaWYgKGJpbmFyeVR5cGUgPT0gImJsb2IiKSB7CiAgICAgICAgIG1fYmluYXJ5VHlwZSA9
IEJpbmFyeVR5cGVCbG9iOwpAQCAtMzczLDYgKzM4Myw3IEBAIHZvaWQgV2ViU29ja2V0OjpkaWRD
b25uZWN0KCkKICAgICB9CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAg
ICAgbV9zdGF0ZSA9IE9QRU47CisgICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3VicHJv
dG9jb2woKTsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9w
ZW5FdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5oCmluZGV4IGUxNWMxZTE4NTliNDIwMTZlN2RhMGRiZmU5MDYwZDEyZGNkODMxYjQuLjJm
NzFiMzE1MmE4ZjFlMjYzNTQ2ZmQ5NGE2NjgyOTZjMzFkY2IxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNzQsNiArNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCisgICAgICAgIFN0cmluZyBwcm90b2NvbCgpIGNv
bnN0OworCiAgICAgICAgIFN0cmluZyBiaW5hcnlUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
c2V0QmluYXJ5VHlwZShjb25zdCBTdHJpbmcmIGJpbmFyeVR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsK
IApAQCAtMTIyLDYgKzEyNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRXZlbnRU
YXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYnVm
ZmVyZWRBbW91bnRBZnRlckNsb3NlOwogICAgICAgICBCaW5hcnlUeXBlIG1fYmluYXJ5VHlwZTsK
KyAgICAgICAgYm9vbCBtX3VzZUhpeGllNzZQcm90b2NvbDsKKyAgICAgICAgU3RyaW5nIG1fc3Vi
cHJvdG9jb2w7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIGIvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDc1MmVmYWU0OWM1NTc3ZThkNTM5MTFmMTBi
NjU0ZWFiY2IwZGVkNzYuLjgxZDc1NjNmMDdjOTE0Mjc0NWY3ZjI5YjFjZTMyNTVmNTZhNmVjZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKQEAgLTU4LDYgKzU4LDgg
QEAgbW9kdWxlIHdlYnNvY2tldHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsb3NlOwogCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERP
TVN0cmluZyBwcm90b2NvbDsKKwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5n
VG89VW5kZWZpbmVkXSBET01TdHJpbmcgYmluYXJ5VHlwZQogICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCAzZDljNGE5MTQwZjliNTQxODY5MWZhZmMzZGM4YTAyZDNl
ZTMwMjEyLi45YWZjNzRjNWE3ZDhkNTk0ZjY5ZDQ2YmZkMjg1MjRkMmYxMmNiZWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEzMSw2
ICsxMzEsMTcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICBtX2hhbmRsZSA9IFNvY2tldFN0cmVhbUhh
bmRsZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgdGhpcyk7CiB9CiAKK1N0cmluZyBXZWJT
b2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXRDaGFubmVsICVwIHN1YnByb3RvY29sIiwgdGhpcyk7CisgICAgaWYgKCFtX2hhbmRzaGFrZSB8
fCBtX2hhbmRzaGFrZS0+bW9kZSgpICE9IFdlYlNvY2tldEhhbmRzaGFrZTo6Q29ubmVjdGVkKQor
ICAgICAgICByZXR1cm4gIiI7CisgICAgU3RyaW5nIHNlcnZlclByb3RvY29sID0gbV9oYW5kc2hh
a2UtPnNlcnZlcldlYlNvY2tldFByb3RvY29sKCk7CisgICAgaWYgKHNlcnZlclByb3RvY29sLmlz
TnVsbCgpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIHNlcnZlclByb3RvY29sOwor
fQorCiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kICVzIiwgdGhpcywg
bWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmgKaW5kZXggOWM2MTY3ZTJiMTlhZTBlMWQyMDU3NTllZGE3ZmVkMDVhYjZl
NGViYi4uMGZkOTZmMTYxZWM0ZTk2NDllM2ViNGRjMDY3OGUxODc1MmQ2MzFmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTU2LDYgKzU2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCB1c2VIaXhpZTc2
UHJvdG9jb2woKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpOworICAgICAgICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90b2Nv
bCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwog
ICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7IC8vIFN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkMjlmNTdlNGJmZDI4Y2E4OTJmMTM5NGUw
NjljZDBhY2E3MDUxYTNiLi5mYWUyYjVlNzdkYTU0MzQ0NDE4YTY1ZGY3NjE0YWNmYzBiNDgwOWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNzQsNiArNzQsMTIgQEAgdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBLVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgcHIKICAgICAgICAgbV9icmlkZ2UtPmNvbm5lY3QodXJsLCBwcm90b2Nv
bCk7CiB9CiAKK1N0cmluZyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c3VicHJv
dG9jb2woKQoreworICAgIEFTU0VSVChtX3dvcmtlckNsaWVudFdyYXBwZXIpOworICAgIHJldHVy
biBtX3dvcmtlckNsaWVudFdyYXBwZXItPnN1YnByb3RvY29sKCk7Cit9CisKIGJvb2wgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIGlmICghbV9icmlkZ2UpCkBAIC0yMjIsMTYgKzIyOCwxNyBAQCB2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpyZXN1bWUoKQogICAgIG1fbWFpbldlYlNv
Y2tldENoYW5uZWwtPnJlc3VtZSgpOwogfQogCi1zdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlk
Q29ubmVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyKQorc3Rh
dGljIHZvaWQgd29ya2VyQ29udGV4dERpZENvbm5lY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4g
d29ya2VyQ2xpZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiBzdWJwcm90b2NvbCkKIHsKICAgICBB
U1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKKyAgICB3
b3JrZXJDbGllbnRXcmFwcGVyLT5zZXRTdWJwcm90b2NvbChzdWJwcm90b2NvbCk7CiAgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkQ29ubmVjdCgpOwogfQogCiB2b2lkIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDb25uZWN0KCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJD
b250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZENvbm5lY3QsIG1fd29y
a2VyQ2xpZW50V3JhcHBlciksIG1fdGFza01vZGUpOworICAgIG1fbG9hZGVyUHJveHkucG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4
dERpZENvbm5lY3QsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbV9tYWluV2ViU29ja2V0Q2hhbm5l
bC0+c3VicHJvdG9jb2woKSksIG1fdGFza01vZGUpOwogfQogCiBzdGF0aWMgdm9pZCB3b3JrZXJD
b250ZXh0RGlkUmVjZWl2ZU1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xp
ZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
CmluZGV4IGQ0ZDM3YzUwMzIxZTRhYTc1NjVmNTk5NWFmNmI3MTU0MmNlY2FkYzUuLjQ0MDAzNzBm
NTA1Y2YxY2M5YjViZDc3MWQyNjQyZmI4ODRhNmZiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHVzZUhpeGll
NzZQcm90b2NvbCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIHByb3RvY29sKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90b2NvbCgpOwog
ICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVh
bCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103735</attachid>
            <date>2011-08-11 22:26:04 -0700</date>
            <delta_ts>2011-08-11 23:45:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-65248-20110812142602.patch</filename>
            <type>text/plain</type>
            <size>32344</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYmMyNzNjMjEwNDUxNTljMjNiMjZm
YzEyMDBiMzA0NjNkMmJlZGQ5Li5mMTMzNGI0MmVkOTFjZDYxNTBmZWE2MmVkZDdjYWFlNTQzM2Jk
NDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMTEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgInByb3Rv
Y29sIiBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
aXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgIEFkZGVkIGEgdGVzdCB0
byBjaGVjayAicHJvdG9jb2wiIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJwcm90b2Nv
bHMuaHRtbDoKKyAgICAgICAgVGhlIGF0dHJpYnV0ZSBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IHN0
cmluZyBhdCBmaXJzdC4gQWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQsCisgICAg
ICAgIGl0IHNob3VsZCByZXR1cm4gdGhlIHZhbHVlIG9mIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wg
aGVhZGVyIGluIHRoZSBzZXJ2ZXIncyBoYW5kc2hha2UgcmVzcG9uc2UuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9uby1zdWJwcm90b2NvbC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvbm8tc3Vi
cHJvdG9jb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9zZXQtcHJvdG9jb2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NldC1wcm90b2NvbC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbXVsdGlwbGUt
c3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3Vi
cHJvdG9jb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanM6CisgICAg
ICAgICh3cy5vbm9wZW4pOgorICAgICAgICAod3Mub25jbG9zZSk6CisgICAgICAgIChjaGVja0Fm
dGVyT25DbG9zZSk6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5qczogQWRkZWQuCisgICAgICAgICh3cy5v
bm9wZW4pOgorICAgICAgICAod3Mub25jbG9zZSk6CisgICAgICAgIChjaGVja0FmdGVyT25DbG9z
ZSk6CisKIDIwMTEtMDgtMTEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA3NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRl
ZmluZWQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApp
bmRleCBlYzQ5ZjYyNTJiZWIxNmZhNDYxMGU0NzY3YTQ1MDNlZTdmYzI2OWU5Li40MDI2M2VmM2Vk
MTRkN2E3YTgzODMxODRiMDhjMTdiNTZhMTEzNzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
aXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAg
VGVzdCBXZWJTb2NrZXQgYXR0cmlidXRlcyB3aGljaCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hl
biBoaXhpZS03NiBwcm90b2NvbCBpcwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiBQQVNT
IHdzLmJpbmFyeVR5cGUgaXMgdW5kZWZpbmVkLgorUEFTUyB3cy5wcm90b2NvbCBpcyB1bmRlZmlu
ZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
dW5kZWZpbmVkLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvdW5kZWZpbmVkLWF0dHJpYnV0ZXMuaHRtbAppbmRleCA0NmVhYTBj
MGYzMDJkNTM2MjIzMzIyMDkyOWE5YzM3ZmM1NDE5YzBkLi4zYTlmNjU2NjA4YTE5MGY5MDY1ZTdi
ZDIzMmZhNzcxMTE2ZTcwM2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0
cmlidXRlcy5odG1sCkBAIC0xMyw2ICsxMyw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tl
dCBhdHRyaWJ1dGVzIHdoaWNoIHNob3VsZCBub3QgYmUgZGVmaW5lZCB3aGVuIGhpeGllLTc2CiB2
YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3NpbXBsZSIpOwogCiBzaG91bGRCZVVuZGVmaW5lZCgid3MuYmluYXJ5VHlwZSIp
Oworc2hvdWxkQmVVbmRlZmluZWQoIndzLnByb3RvY29sIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxl
LXN1YnByb3RvY29scy1leHBlY3RlZC50eHQKaW5kZXggOWVlZmZkMDM2YTliN2ZmOTNiNmJlYmMy
ZjQ5Mjg2Yjc4NDg1ZGRiZi4uMWJiNDQ5ODhkY2VmMjc0NDVhOGJhM2ZkZmFkMDRmNmI5ZjI5OGQy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLWV4cGVj
dGVkLnR4dApAQCAtMiwxMSArMiwxNiBAQCBUZXN0IFdlYlNvY2tldCBzdWJwcm90b2NvbCBuZWdv
dGlhdGlvbi4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCitQQVNTIHdzLnByb3RvY29s
IGlzICIiCiBDb25uZWN0ZWQKK1BBU1Mgd3MucHJvdG9jb2wgaXMgInN1cGVyY2hhdCIKIFJlY2Vp
dmVkOiBzdXBlcmNoYXQKIFBBU1MgcmVjZWl2ZWRNZXNzYWdlIGlzICJzdXBlcmNoYXQiCiBDbG9z
ZWQKK1BBU1Mgd3MucHJvdG9jb2wgaXMgInN1cGVyY2hhdCIKIFBBU1MgY2xvc2VFdmVudC53YXND
bGVhbiBpcyB0cnVlCitFeGl0ZWQgb25jbG9zZSBoYW5kbGVyCitQQVNTIHdzLnByb3RvY29sIGlz
ICJzdXBlcmNoYXQiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy5odG1sCmluZGV4IDY2
ZmM0YTdiZWIyYjRjMzViNWFlMTZkYjg1MjVmZmIwMTQwZTRkYzMuLmQ2MDgwMmZmNWQ3MjNmY2Jj
ZTVmZGYwN2Y3YWM0ZWM3MGMxNzkyZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9tdWx0aXBsZS1zdWJw
cm90b2NvbHMuaHRtbApAQCAtMTgsMTQgKzE4LDEyIEBAIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQo
IndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvcHJvdG9jb2wtdGVzdD9w
CiB2YXIgY2xvc2VFdmVudDsKIHZhciByZWNlaXZlZE1lc3NhZ2U7CiAKLS8vIEZJWE1FOiBJbXBs
ZW1lbnQgV2ViU29ja2V0LnByb3RvY29sLgotLy8gc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5w
cm90b2NvbCIsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7
CiAKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBkZWJ1ZygiQ29ubmVjdGVkIik7Ci0g
ICAgLy8gRklYTUU6IERpdHRvLgotICAgIC8vIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJv
dG9jb2wiLCAic3VwZXJjaGF0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90
b2NvbCIsICJzdXBlcmNoYXQiKTsKIH07CiAKIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMzgsMTEgKzM2LDE5IEBAIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQogd3Mu
b25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIGRlYnVnKCJDbG9zZWQiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3RvY29sIiwgInN1cGVyY2hhdCIpOwogICAgIGNs
b3NlRXZlbnQgPSBldmVudDsKICAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4i
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBzZXRUaW1lb3V0KCJjaGVja0FmdGVyT25DbG9z
ZSgpIiwgMCk7CiB9OwogCitmdW5jdGlvbiBjaGVja0FmdGVyT25DbG9zZSgpCit7CisgICAgZGVi
dWcoIkV4aXRlZCBvbmNsb3NlIGhhbmRsZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
IndzLnByb3RvY29sIiwgInN1cGVyY2hhdCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCiB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25v
LXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5Ymkvbm8tc3VicHJvdG9jb2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
MDQ1YjA0Y2JjZGQ2NjQwNjRhN2Q4MWE1NWY0ODlmOTk4OGRhMDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3Rv
Y29sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitXZWJTb2NrZXQncyBwcm90b2NvbCBh
dHRyaWJ1dGUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgc2VydmVyIGRpZCBub3Qg
cHJvdmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlci4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCitQQVNTIHdzLnByb3RvY29sIGlzICIiCitDb25uZWN0ZWQKK1BBU1Mgd3Mu
cHJvdG9jb2wgaXMgIiIKK0Nsb3NlZAorUEFTUyB3cy5wcm90b2NvbCBpcyAiIgorUEFTUyBjbG9z
ZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK0V4aXRlZCBvbmNsb3NlIGhhbmRsZXIKK1BBU1Mgd3Mu
cHJvdG9jb2wgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcwYTYy
OTQ4NzAyMDIwOGE3MWVlMjAwNjNkZDYwOTE3NTM1NzNjYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvbm8tc3VicHJvdG9jb2wu
aHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oIldlYlNvY2tldCdzIHByb3Rv
Y29sIGF0dHJpYnV0ZSBzaG91bGQgYmUgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBzZXJ2ZXIgZGlk
IG5vdCBwcm92aWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyLiIpOworCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0
KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NpbXBsZSIpOwordmFy
IGNsb3NlRXZlbnQ7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiIik7
CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygiQ29ubmVjdGVkIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKK307CisKK3dzLm9u
Y2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBkZWJ1ZygiQ2xvc2VkIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKKyAgICBjbG9zZUV2ZW50ID0g
ZXZlbnQ7CisgICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50Lndhc0NsZWFuIik7CisgICAgc2V0
VGltZW91dCgiY2hlY2tBZnRlck9uQ2xvc2UoKSIsIDApOworfTsKKworZnVuY3Rpb24gY2hlY2tB
ZnRlck9uQ2xvc2UoKQoreworICAgIGRlYnVnKCJFeGl0ZWQgb25jbG9zZSBoYW5kbGVyIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXQtcHJvdG9jb2wtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXQtcHJvdG9j
b2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NDQ4ZjYyMTczYmRjZTJiODRhYzllMGMxZjc4
MzZiNDdkNTRhZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3NldC1wcm90b2NvbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MCBAQAorV2ViU29ja2V0LnByb3RvY29sIHNob3VsZCBub3QgYmUgbW9kaWZpZWQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyB3cy5wcm90b2NvbCBpcyAiIgorUEFTUyB3cy5w
cm90b2NvbCBpcyAiIgorQ29ubmVjdGVkCitQQVNTIHdzLnByb3RvY29sIGlzICJjaGF0IgorUEFT
UyB3cy5wcm90b2NvbCBpcyAiY2hhdCIKK0Nsb3NlZAorUEFTUyB3cy5wcm90b2NvbCBpcyAiY2hh
dCIKK1BBU1Mgd3MucHJvdG9jb2wgaXMgImNoYXQiCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4g
aXMgdHJ1ZQorRXhpdGVkIG9uY2xvc2UgaGFuZGxlcgorUEFTUyB3cy5wcm90b2NvbCBpcyAiY2hh
dCIKK1BBU1Mgd3MucHJvdG9jb2wgaXMgImNoYXQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXQtcHJvdG9jb2wuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2V0LXByb3RvY29sLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmRlOWVhOWQ5OTliYTlhMjFmMTQ0MzE1OTI1MDc2NTlmOGNhN2IzMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2V0
LXByb3RvY29sLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCJXZWJTb2Nr
ZXQucHJvdG9jb2wgc2hvdWxkIG5vdCBiZSBtb2RpZmllZC4iKTsKKword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2Nr
ZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKwordmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8x
MjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9hY2NlcHQtZmlyc3Qtc3VicHJvdG9j
b2wiLCAiY2hhdCIpOwordmFyIGNsb3NlRXZlbnQ7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
d3MucHJvdG9jb2wiLCAiIik7Cit3cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQiOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3cy5wcm90b2NvbCIsICIiKTsKKword3Mub25vcGVuID0gZnVuY3Rpb24o
KQoreworICAgIGRlYnVnKCJDb25uZWN0ZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
IndzLnByb3RvY29sIiwgImNoYXQiKTsKKyAgICB3cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQiOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiY2hhdCIpOworfTsKKwor
d3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIGRlYnVnKCJDbG9zZWQiKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndzLnByb3RvY29sIiwgImNoYXQiKTsKKyAgICB3cy5w
cm90b2NvbCA9ICJzdXBlcmNoYXQiOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJv
dG9jb2wiLCAiY2hhdCIpOworICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRCZVRy
dWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKKyAgICBzZXRUaW1lb3V0KCJjaGVja0FmdGVyT25D
bG9zZSgpIiwgMCk7Cit9OworCitmdW5jdGlvbiBjaGVja0FmdGVyT25DbG9zZSgpCit7CisgICAg
ZGVidWcoIkV4aXRlZCBvbmNsb3NlIGhhbmRsZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIndzLnByb3RvY29sIiwgImNoYXQiKTsKKyAgICB3cy5wcm90b2NvbCA9ICJzdXBlcmNoYXQi
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid3MucHJvdG9jb2wiLCAiY2hhdCIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbXVsdGlwbGUt
c3VicHJvdG9jb2xzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0
CmluZGV4IGJhMzdmMTFhZWRhY2UyOGE5YTk0OGE2YWNiNmRkZGQ0NWZiNzE0ZTAuLjA3ZGY0MWQy
ZDBhODgzYmY0MDI0NmQ2ZTFkZjJkNzg5YjJlNGYzMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9tdWx0aXBsZS1zdWJwcm90
b2NvbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvd29ya2Vycy9tdWx0aXBsZS1zdWJwcm90b2NvbHMtZXhwZWN0ZWQudHh0CkBA
IC0yLDExICsyLDE2IEBAIFRlc3QgV2ViU29ja2V0IHN1YnByb3RvY29sIG5lZ290aWF0aW9uIGlu
IHdvcmtlcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAorUEFTUyBQQVNTOiB3cy5w
cm90b2NvbCBpcyBlcXVhbCB0byAiIgogSU5GTzogQ29ubmVjdGVkCitQQVNTIFBBU1M6IHdzLnBy
b3RvY29sIGlzIGVxdWFsIHRvICJzdXBlcmNoYXQiCiBJTkZPOiBSZWNlaXZlZDogc3VwZXJjaGF0
CiBQQVNTIFBBU1M6IHJlY2VpdmVkTWVzc2FnZSBpcyBlcXVhbCB0byAic3VwZXJjaGF0IgogSU5G
TzogQ2xvc2VkCitQQVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVxdWFsIHRvICJzdXBlcmNoYXQi
CiBQQVNTIFBBU1M6IGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorSU5GTzogRXhpdGVkIG9u
Y2xvc2UgaGFuZGxlcgorUEFTUyBQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byAic3VwZXJj
aGF0IgogRE9ORQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8t
c3VicHJvdG9jb2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS93b3JrZXJzL25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MzExMGE2YmYzMjY1YmRiM2E4NTFlN2JjYjRmM2QxNzJmMzBhZDA3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3Jr
ZXJzL25vLXN1YnByb3RvY29sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitXZWJTb2Nr
ZXQncyBwcm90b2NvbCBhdHRyaWJ1dGUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUg
c2VydmVyIGRpZCBub3QgcHJvdmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFBBU1M6IHdzLnByb3RvY29sIGlzIGVx
dWFsIHRvICIiCitJTkZPOiBDb25uZWN0ZWQKK1BBU1MgUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1
YWwgdG8gIiIKK0lORk86IENsb3NlZAorUEFTUyBQQVNTOiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0
byAiIgorUEFTUyBQQVNTOiBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK0lORk86IEV4aXRl
ZCBvbmNsb3NlIGhhbmRsZXIKK1BBU1MgUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gIiIK
K0RPTkUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3dvcmtlcnMvbm8tc3VicHJvdG9jb2wuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9uby1zdWJwcm90b2NvbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkNDc3ODI4NmU3NDVjZjNkMTdlOGFiYTYxOTJhNTUzMTRjNmI4YzQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMv
bm8tc3VicHJvdG9jb2wuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4u
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRp
b24oIldlYlNvY2tldCdzIHByb3RvY29sIGF0dHJpYnV0ZSBzaG91bGQgYmUgYW4gZW1wdHkgc3Ry
aW5nIGlmIHRoZSBzZXJ2ZXIgZGlkIG5vdCBwcm92aWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wg
aGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCitm
dW5jdGlvbiBzdGFydHNXaXRoKHN0ciwgcHJlZml4KQoreworICAgIHJldHVybiBzdHIuaW5kZXhP
ZihwcmVmaXgpID09IDA7Cit9CisKK3ZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMv
bm8tc3VicHJvdG9jb2wuanMiKTsKK3dvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQp
Cit7CisgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhOworICAgIGlmIChzdGFydHNXaXRoKG1l
c3NhZ2UsICJQQVNTIikpCisgICAgICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7CisgICAgZWxzZSBp
ZiAoc3RhcnRzV2l0aChtZXNzYWdlLCAiRkFJTCIpKQorICAgICAgICB0ZXN0RmFpbGVkKG1lc3Nh
Z2UpCisgICAgZWxzZQorICAgICAgICBkZWJ1ZyhtZXNzYWdlKTsKKyAgICBpZiAobWVzc2FnZSA9
PT0gIkRPTkUiKQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvbXVsdGlwbGUtc3VicHJvdG9jb2xzLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9t
dWx0aXBsZS1zdWJwcm90b2NvbHMuanMKaW5kZXggZDRhODNlZTdmNzJjNTJmYzJhZWRlZjk1ZThi
NWY1NTE3OWYzMjg5MC4uY2IxZTExZGM4ZjU1YjRhMDk3ZTdjOGM0NTBhMGIzNDFkYjRjODkzOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
b3JrZXJzL3Jlc291cmNlcy9tdWx0aXBsZS1zdWJwcm90b2NvbHMuanMKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9tdWx0
aXBsZS1zdWJwcm90b2NvbHMuanMKQEAgLTEsMTkgKzEsMTcgQEAKIHZhciB3cyA9IG5ldyBXZWJT
b2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdD9wcm90b2NvbD1zdXBlcmNoYXQiLCBbImNoYXQiLCAic3Vw
ZXJjaGF0Il0pOwogCi0vLyBGSVhNRTogSW1wbGVtZW50IFdlYlNvY2tldC5wcm90b2NvbC4KLS8v
IGlmICh3cy5wcm90b2NvbCA9PT0gIiIpCi0vLyAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IHdzLnBy
b3RvY29sIGlzIGVxdWFsIHRvIFwiXCIiKTsKLS8vIGVsc2UKLS8vICAgICBwb3N0TWVzc2FnZSgi
RkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwiXCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2Nv
bCArICJcIiIpOworaWYgKHdzLnByb3RvY29sID09PSAiIikKKyAgICBwb3N0TWVzc2FnZSgiUEFT
Uzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJcIiIpOworZWxzZQorICAgIHBvc3RNZXNzYWdl
KCJGQUlMOiB3cy5wcm90b2NvbCBzaG91bGQgYmUgXCJcIiBidXQgd2FzIFwiIiArIHdzLnByb3Rv
Y29sICsgIlwiIik7CiAKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBwb3N0TWVzc2Fn
ZSgiSU5GTzogQ29ubmVjdGVkIik7Ci0gICAgLy8gRklYTUU6IERpdHRvLgotICAgIC8vIGlmICh3
cy5wcm90b2NvbCA9PT0gInN1cGVyY2hhdCIpCi0gICAgLy8gICAgIHBvc3RNZXNzYWdlKCJQQVNT
OiB3cy5wcm90b2NvbCBpcyBlcXVhbCB0byBcInN1cGVyY2hhdFwiIik7Ci0gICAgLy8gZWxzZQot
ICAgIC8vICAgICBwb3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwic3Vw
ZXJjaGF0XCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOworICAgIGlmICh3cy5w
cm90b2NvbCA9PT0gInN1cGVyY2hhdCIpCisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5w
cm90b2NvbCBpcyBlcXVhbCB0byBcInN1cGVyY2hhdFwiIik7CisgICAgZWxzZQorICAgICAgICBw
b3N0TWVzc2FnZSgiRkFJTDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwic3VwZXJjaGF0XCIgYnV0
IHdhcyBcIiIgKyB3cy5wcm90b2NvbCArICJcIiIpOwogfTsKIAogd3Mub25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpCkBAIC0yOSwxMCArMjcsMjggQEAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpCiB3cy5vbmNsb3NlID0gZnVuY3Rpb24oY2xvc2VFdmVudCkKIHsKICAgICBwb3N0TWVz
c2FnZSgiSU5GTzogQ2xvc2VkIik7CisKKyAgICBpZiAod3MucHJvdG9jb2wgPT09ICJzdXBlcmNo
YXQiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8g
XCJzdXBlcmNoYXRcIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdz
LnByb3RvY29sIHNob3VsZCBiZSBcInN1cGVyY2hhdFwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9j
b2wgKyAiXCIiKTsKKwogICAgIGlmIChjbG9zZUV2ZW50Lndhc0NsZWFuID09PSB0cnVlKQogICAg
ICAgICBwb3N0TWVzc2FnZSgiUEFTUzogY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlIik7CiAg
ICAgZWxzZQogICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogY2xvc2VFdmVudC53YXNDbGVhbiBz
aG91bGQgYmUgdHJ1ZSBidXQgd2FzIFwiIiArIGNsb3NlRXZlbnQud2FzQ2xlYW4gKyAiXCIiKTsK
IAotICAgIHBvc3RNZXNzYWdlKCJET05FIik7CisgICAgc2V0VGltZW91dCgiY2hlY2tBZnRlck9u
Q2xvc2UoKSIsIDApOwogfTsKKworZnVuY3Rpb24gY2hlY2tBZnRlck9uQ2xvc2UoKQoreworICAg
IHBvc3RNZXNzYWdlKCJJTkZPOiBFeGl0ZWQgb25jbG9zZSBoYW5kbGVyIik7CisKKyAgICBpZiAo
d3MucHJvdG9jb2wgPT09ICJzdXBlcmNoYXQiKQorICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzog
d3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJzdXBlcmNoYXRcIiIpOworICAgIGVsc2UKKyAgICAg
ICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcInN1cGVyY2hhdFwi
IGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKworICAgIHBvc3RNZXNzYWdlKCJE
T05FIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL25vLXN1YnByb3RvY29sLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9uby1z
dWJwcm90b2NvbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTA1YmYzMTM4N2UwMzY5M2I4ZjgzNzJlMGU0YzFl
MTY1MmRhMmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9uby1zdWJwcm90b2NvbC5qcwpAQCAt
MCwwICsxLDQ0IEBACit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgw
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3NpbXBsZSIpOworCitpZiAo
d3MucHJvdG9jb2wgPT09ICIiKQorICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2NvbCBp
cyBlcXVhbCB0byBcIlwiIik7CitlbHNlCisgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3Rv
Y29sIHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKwor
d3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBDb25uZWN0
ZWQiKTsKKyAgICBpZiAod3MucHJvdG9jb2wgPT09ICIiKQorICAgICAgICBwb3N0TWVzc2FnZSgi
UEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJcIiIpOworICAgIGVsc2UKKyAgICAgICAg
cG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcIlwiIGJ1dCB3YXMgXCIi
ICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihjbG9z
ZUV2ZW50KQoreworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBDbG9zZWQiKTsKKworICAgIGlmICh3
cy5wcm90b2NvbCA9PT0gIiIpCisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiB3cy5wcm90b2Nv
bCBpcyBlcXVhbCB0byBcIlwiIik7CisgICAgZWxzZQorICAgICAgICBwb3N0TWVzc2FnZSgiRkFJ
TDogd3MucHJvdG9jb2wgc2hvdWxkIGJlIFwiXCIgYnV0IHdhcyBcIiIgKyB3cy5wcm90b2NvbCAr
ICJcIiIpOworCisgICAgaWYgKGNsb3NlRXZlbnQud2FzQ2xlYW4gPT09IHRydWUpCisgICAgICAg
IHBvc3RNZXNzYWdlKCJQQVNTOiBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUiKTsKKyAgICBl
bHNlCisgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlMOiBjbG9zZUV2ZW50Lndhc0NsZWFuIHNob3Vs
ZCBiZSB0cnVlIGJ1dCB3YXMgXCIiICsgY2xvc2VFdmVudC53YXNDbGVhbiArICJcIiIpOworCisg
ICAgc2V0VGltZW91dCgiY2hlY2tBZnRlck9uQ2xvc2UoKSIsIDApOworfTsKKworZnVuY3Rpb24g
Y2hlY2tBZnRlck9uQ2xvc2UoKQoreworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBFeGl0ZWQgb25j
bG9zZSBoYW5kbGVyIik7CisKKyAgICBpZiAod3MucHJvdG9jb2wgPT09ICIiKQorICAgICAgICBw
b3N0TWVzc2FnZSgiUEFTUzogd3MucHJvdG9jb2wgaXMgZXF1YWwgdG8gXCJcIiIpOworICAgIGVs
c2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHdzLnByb3RvY29sIHNob3VsZCBiZSBcIlwi
IGJ1dCB3YXMgXCIiICsgd3MucHJvdG9jb2wgKyAiXCIiKTsKKworICAgIHBvc3RNZXNzYWdlKCJE
T05FIik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJiYmYyOTkzYzA2YzY0YTFkNjg2MGQ1ZjYyNWY3YWNj
NmM1MTg2My4uZTBkN2JiOWI2N2Y1ODVkNGUxY2Q4MzUyODhlN2VlMmEyNGUyZmIxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDExLTA4LTExICBZdXRhIEtpdGFtdXJhICA8eXV0YWtA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNvY2tldDogSW1wbGVtZW50ICJwcm90b2NvbCIg
YXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRl
c3RzOiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL25vLXN1YnByb3RvY29sLmh0bWwg
KGFkZGVkKQorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9z
ZXQtcHJvdG9jb2wuaHRtbCAoYWRkZWQpCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvbm8tc3VicHJvdG9jb2wuaHRtbCAoYWRkZWQpCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1h
dHRyaWJ1dGVzLmh0bWwgKHVwZGF0ZWQpCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL211bHRpcGxlLXN1YnByb3RvY29scy5odG1sICh1cGRhdGVkKQorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL211bHRp
cGxlLXN1YnByb3RvY29scy5odG1sICh1cGRhdGVkKQorCisgICAgICAgICogd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICBBZGRlZCBzdWJwcm90b2NvbCgp
IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG5hbWVkIGRpZmZlcmVudGx5IGZyb20gdGhlIGNv
dW50ZXJwYXJ0IG9mCisgICAgICAgIFdlYlNvY2tldCBjbGFzcywgYmVjYXVzZSB0aGUgbmFtZSAi
cHJvdG9jb2wiIGNhbiBiZSBjb25mdXNlZCB3aXRoIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wuCisg
ICAgICAgIEFkZGVkIG1fdXNlSGl4aWU3NlByb3RvY29sIGFuZCBtX3N1YnByb3RvY29sLCBiZWNh
dXNlIHRoZXNlIHZhbHVlIG1heSBiZSB1c2VkIGFmdGVyCisgICAgICAgIG1fY2hhbm5lbCBoYXMg
YmVlbiByZWxlYXNlZC4gVXNpbmcgYm9vbCBzaG91bGQgYmUgZmluZSwgYmVjYXVzZSBib29sZWFu
IGxpdGVyYWxzIGRvIG5vdAorICAgICAgICBhcHBlYXIgaW4gYW1iaWd1b3VzIGNvbnRleHQuCisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpz
dWJwcm90b2NvbCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI6OnNldFN1YnByb3RvY29sKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAqIHdlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6V2ViU29j
a2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y29ubmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OnByb3RvY29sKToKKyAgICAgICAgVGhlICJwcm90b2NvbCIgYXR0
cmlidXRlIGlzIGF2YWlsYWJsZSBvbmx5IHdoZW4gdGhlIGh5YmktMTAgcHJvdG9jb2wgaXMgY2hv
c2VuLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpiaW5hcnlUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldDo6c2V0QmluYXJ5VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXQ6OmRpZENvbm5lY3QpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Lmg6
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsOgorICAgICAgICAqIHdlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpzdWJwcm90b2NvbCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6c3VicHJvdG9jb2wpOgorICAgICAgICAoV2ViQ29yZTo6d29ya2VyQ29udGV4dERpZENvbm5l
Y3QpOgorICAgICAgICBTdWJwcm90b2NvbCB2YWx1ZSBpcyBzYXZlZCBpbiB0aGUgY2xpZW50IHdy
YXBwZXIgb2JqZWN0IGFmdGVyIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcworICAgICAgICBl
c3RhYmxpc2hlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpQZWVyOjpkaWRDb25uZWN0KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMTEtMDgtMTEgIERhdmlkIEh5YXR0ICA8
aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NjA3NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDU2NWIxZWY2YjM3NzNhODgxMmE4NGJm
YTExNzAzZGY0NDUyY2JkZjUuLmNkOWNlMjUyYTRjZDViZDY3YTczOWNmYzUzMzI3MDhlMGVkNDhj
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIHVzZUhpeGllNzZQcm90b2NvbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVj
dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkgPSAwOworICAgIHZpcnR1YWwg
U3RyaW5nIHN1YnByb3RvY29sKCkgPSAwOyAvLyBXaWxsIGJlIGF2YWlsYWJsZSBhZnRlciBkaWRD
b25uZWN0KCkgY2FsbGJhY2sgaXMgaW52b2tlZC4KICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVy
ZWRBbW91bnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IGFhMDYwOWVkYWU2N2Fh
MGRmMTFjZjE3MjBlMzBmZjcwYTBjMzNhMTMuLjFhMTc5Yzk4MjkyMmQxNzI0YzQzNTM1YjJjNDdk
NmUyNjVkNjMzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
OjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIKICAgICA6IG1fY2xpZW50
KGNsaWVudCkKICAgICAsIG1fc3luY01ldGhvZERvbmUoZmFsc2UpCiAgICAgLCBtX3VzZUhpeGll
NzZQcm90b2NvbCh0cnVlKQorICAgICwgbV9zdWJwcm90b2NvbCgiIikKICAgICAsIG1fc2VudChm
YWxzZSkKICAgICAsIG1fYnVmZmVyZWRBbW91bnQoMCkKICAgICAsIG1fc3VzcGVuZGVkKGZhbHNl
KQpAQCAtODAsNiArODEsMTYgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OnNldFVzZUhpeGllNzZQcm90b2NvbChib29sIHVzZUhpeGkKICAgICBtX3VzZUhp
eGllNzZQcm90b2NvbCA9IHVzZUhpeGllNzZQcm90b2NvbDsKIH0KIAorU3RyaW5nIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3VicHJvdG9jb2woKSBjb25zdAorewor
ICAgIHJldHVybiBtX3N1YnByb3RvY29sOworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U3VicHJvdG9jb2woY29uc3QgU3RyaW5nJiBzdWJwcm90
b2NvbCkKK3sKKyAgICBtX3N1YnByb3RvY29sID0gc3VicHJvdG9jb2w7Cit9CisKIGJvb2wgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZW50KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9zZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKaW5k
ZXggNzQzNmE2M2Y4YWZhY2RhY2E4ZTlmMTRmZDY1ZTg3YmE2ZmVmMmRiNS4uYjU0YWNhMDcwYTk5
OThjMDhkMTI4ZDg3ZDdmZGVhMTgwNzhkMzMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5oCkBAIC01OCw2ICs1OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VIaXhp
ZTc2UHJvdG9jb2woKSBjb25zdDsKICAgICB2b2lkIHNldFVzZUhpeGllNzZQcm90b2NvbChib29s
KTsKIAorICAgIC8vIFN1YnByb3RvY29sIGlzIGNhY2hlZCB0b28uIFdpbGwgYmUgYXZhaWxhYmxl
IHdoZW4gZGlkQ29ubmVjdCgpIGNhbGxiYWNrIGlzIGludm9rZWQuCisgICAgU3RyaW5nIHN1YnBy
b3RvY29sKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTdWJwcm90b2NvbChjb25zdCBTdHJpbmcmKTsK
KwogICAgIGJvb2wgc2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VudChib29sKTsKIApAQCAt
ODYsNiArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogbV9j
bGllbnQ7CiAgICAgYm9vbCBtX3N5bmNNZXRob2REb25lOwogICAgIGJvb2wgbV91c2VIaXhpZTc2
UHJvdG9jb2w7CisgICAgU3RyaW5nIG1fc3VicHJvdG9jb2w7CiAgICAgYm9vbCBtX3NlbnQ7CiAg
ICAgdW5zaWduZWQgbG9uZyBtX2J1ZmZlcmVkQW1vdW50OwogICAgIGJvb2wgbV9zdXNwZW5kZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggYTViODk0OTAzMTU4
MDM2NzFhMjgzMGUxMWM0NjFjZTA1M2MyYzgwYS4uNTZiMmNlMzM5YjliZGFhMTA0MzFmYzAwNTNh
NTAwYmU1MDI5ODE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApA
QCAtMTM2LDYgKzEzNiw4IEBAIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgLCBtX3N0YXRlKENPTk5FQ1RJTkcpCiAgICAgLCBtX2J1ZmZl
cmVkQW1vdW50QWZ0ZXJDbG9zZSgwKQogICAgICwgbV9iaW5hcnlUeXBlKEJpbmFyeVR5cGVCbG9i
KQorICAgICwgbV91c2VIaXhpZTc2UHJvdG9jb2wodHJ1ZSkKKyAgICAsIG1fc3VicHJvdG9jb2wo
IiIpCiB7CiB9CiAKQEAgLTE5MCw5ICsxOTIsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3Qo
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm90b2NvbHMsIEV4Y2UK
ICAgICB9CiAKICAgICBtX2NoYW5uZWwgPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcyk7CisgICAgbV91c2VIaXhpZTc2UHJv
dG9jb2wgPSBtX2NoYW5uZWwtPnVzZUhpeGllNzZQcm90b2NvbCgpOwogCiAgICAgU3RyaW5nIHBy
b3RvY29sU3RyaW5nOwotICAgIGlmIChtX2NoYW5uZWwtPnVzZUhpeGllNzZQcm90b2NvbCgpKSB7
CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CiAgICAgICAgIGlmICghcHJvdG9jb2xz
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gRW11bGF0ZSBKYXZhU2NyaXB0J3MgQXJyYXku
dG9TdHJpbmcoKSBiZWhhdmlvci4KICAgICAgICAgICAgIHByb3RvY29sU3RyaW5nID0gam9pblN0
cmluZ3MocHJvdG9jb2xzLCAiLCIpOwpAQCAtMjkyLDkgKzI5NSwxNiBAQCB1bnNpZ25lZCBsb25n
IFdlYlNvY2tldDo6YnVmZmVyZWRBbW91bnQoKSBjb25zdAogICAgIHJldHVybiBtX2J1ZmZlcmVk
QW1vdW50QWZ0ZXJDbG9zZTsKIH0KIAorU3RyaW5nIFdlYlNvY2tldDo6cHJvdG9jb2woKSBjb25z
dAoreworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIHJldHVybiBtX3N1YnByb3RvY29sOworfQorCiBTdHJpbmcgV2ViU29ja2V0Ojpi
aW5hcnlUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAobV9jaGFubmVsLT51c2VIaXhpZTc2UHJvdG9j
b2woKSkKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKICAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgewogICAgIGNhc2UgQmluYXJ5VHlwZUJs
b2I6CkBAIC0zMDgsNyArMzE4LDcgQEAgU3RyaW5nIFdlYlNvY2tldDo6YmluYXJ5VHlwZSgpIGNv
bnN0CiAKIHZvaWQgV2ViU29ja2V0OjpzZXRCaW5hcnlUeXBlKGNvbnN0IFN0cmluZyYgYmluYXJ5
VHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKG1fY2hhbm5lbC0+dXNlSGl4aWU3
NlByb3RvY29sKCkpCisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKGJpbmFyeVR5cGUgPT0gImJsb2IiKSB7CiAgICAgICAgIG1fYmluYXJ5VHlw
ZSA9IEJpbmFyeVR5cGVCbG9iOwpAQCAtMzczLDYgKzM4Myw3IEBAIHZvaWQgV2ViU29ja2V0Ojpk
aWRDb25uZWN0KCkKICAgICB9CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CiAgICAgbV9zdGF0ZSA9IE9QRU47CisgICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3Vi
cHJvdG9jb2woKTsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
Lm9wZW5FdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCmluZGV4IGUxNWMxZTE4NTliNDIwMTZlN2RhMGRiZmU5MDYwZDEyZGNkODMxYjQu
LjJmNzFiMzE1MmE4ZjFlMjYzNTQ2ZmQ5NGE2NjgyOTZjMzFkY2IxZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNzQsNiArNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQg
bG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCisgICAgICAgIFN0cmluZyBwcm90b2NvbCgp
IGNvbnN0OworCiAgICAgICAgIFN0cmluZyBiaW5hcnlUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZv
aWQgc2V0QmluYXJ5VHlwZShjb25zdCBTdHJpbmcmIGJpbmFyeVR5cGUsIEV4Y2VwdGlvbkNvZGUm
KTsKIApAQCAtMTIyLDYgKzEyNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRXZl
bnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1f
YnVmZmVyZWRBbW91bnRBZnRlckNsb3NlOwogICAgICAgICBCaW5hcnlUeXBlIG1fYmluYXJ5VHlw
ZTsKKyAgICAgICAgYm9vbCBtX3VzZUhpeGllNzZQcm90b2NvbDsKKyAgICAgICAgU3RyaW5nIG1f
c3VicHJvdG9jb2w7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIGIvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDc1MmVmYWU0OWM1NTc3ZThkNTM5MTFm
MTBiNjU0ZWFiY2IwZGVkNzYuLjgxZDc1NjNmMDdjOTE0Mjc0NWY3ZjI5YjFjZTMyNTVmNTZhNmVj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKQEAgLTU4LDYgKzU4
LDggQEAgbW9kdWxlIHdlYnNvY2tldHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsb3NlOwogCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRd
IERPTVN0cmluZyBwcm90b2NvbDsKKwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3Ry
aW5nVG89VW5kZWZpbmVkXSBET01TdHJpbmcgYmluYXJ5VHlwZQogICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAzZDljNGE5MTQwZjliNTQxODY5MWZhZmMzZGM4YTAy
ZDNlZTMwMjEyLi45YWZjNzRjNWE3ZDhkNTk0ZjY5ZDQ2YmZkMjg1MjRkMmYxMmNiZWY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEz
MSw2ICsxMzEsMTcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICBtX2hhbmRsZSA9IFNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgdGhpcyk7CiB9CiAKK1N0cmluZyBX
ZWJTb2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJT
b2NrZXRDaGFubmVsICVwIHN1YnByb3RvY29sIiwgdGhpcyk7CisgICAgaWYgKCFtX2hhbmRzaGFr
ZSB8fCBtX2hhbmRzaGFrZS0+bW9kZSgpICE9IFdlYlNvY2tldEhhbmRzaGFrZTo6Q29ubmVjdGVk
KQorICAgICAgICByZXR1cm4gIiI7CisgICAgU3RyaW5nIHNlcnZlclByb3RvY29sID0gbV9oYW5k
c2hha2UtPnNlcnZlcldlYlNvY2tldFByb3RvY29sKCk7CisgICAgaWYgKHNlcnZlclByb3RvY29s
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIHNlcnZlclByb3RvY29s
OworfQorCiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kICVzIiwgdGhp
cywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOWM2MTY3ZTJiMTlhZTBlMWQyMDU3NTllZGE3ZmVkMDVh
YjZlNGViYi4uMGZkOTZmMTYxZWM0ZTk2NDllM2ViNGRjMDY3OGUxODc1MmQ2MzFmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTU2LDYgKzU2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCB1c2VIaXhp
ZTc2UHJvdG9jb2woKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOworICAgICAgICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90
b2NvbCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
OwogICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7IC8vIFN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBhZjBjNjA2ZmRiOWE5OTVmOWExZTY3
MDQwMDM3NTFmZjkxMDlmZTdhLi4zMzRlNzUyNmZiNzJlNzNhYTU2NjkzZDgwNGNjZDE4Y2ZiMjI4
NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNzQsNiArNzQsMTIgQEAgdm9p
ZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcHIKICAgICAgICAgbV9icmlkZ2UtPmNvbm5lY3QodXJsLCBwcm90
b2NvbCk7CiB9CiAKK1N0cmluZyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c3Vi
cHJvdG9jb2woKQoreworICAgIEFTU0VSVChtX3dvcmtlckNsaWVudFdyYXBwZXIpOworICAgIHJl
dHVybiBtX3dvcmtlckNsaWVudFdyYXBwZXItPnN1YnByb3RvY29sKCk7Cit9CisKIGJvb2wgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogewogICAgIGlmICghbV9icmlkZ2UpCkBAIC0yMjIsMTYgKzIyOCwxNyBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpyZXN1bWUoKQogICAgIG1fbWFpbldl
YlNvY2tldENoYW5uZWwtPnJlc3VtZSgpOwogfQogCi1zdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0
RGlkQ29ubmVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBl
cikKK3N0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRDb25uZWN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcmIHN1YnByb3RvY29s
KQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0
KCkpOworICAgIHdvcmtlckNsaWVudFdyYXBwZXItPnNldFN1YnByb3RvY29sKHN1YnByb3RvY29s
KTsKICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRDb25uZWN0KCk7CiB9CiAKIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENvbm5lY3QoKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1v
ZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkQ29u
bmVjdCwgbV93b3JrZXJDbGllbnRXcmFwcGVyKSwgbV90YXNrTW9kZSk7CisgICAgbV9sb2FkZXJQ
cm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3
b3JrZXJDb250ZXh0RGlkQ29ubmVjdCwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCBtX21haW5XZWJT
b2NrZXRDaGFubmVsLT5zdWJwcm90b2NvbCgpKSwgbV90YXNrTW9kZSk7CiB9CiAKIHN0YXRpYyB2
b2lkIHdvcmtlckNvbnRleHREaWRSZWNlaXZlTWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5oCmluZGV4IGQ0ZDM3YzUwMzIxZTRhYTc1NjVmNTk5NWFmNmI3MTU0MmNl
Y2FkYzUuLjQ0MDAzNzBmNTA1Y2YxY2M5YjViZDc3MWQyNjQyZmI4ODRhNmZiM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIHVzZUhpeGllNzZQcm90b2NvbCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBz
dWJwcm90b2NvbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>