<?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>155437</bug_id>
          
          <creation_ts>2016-03-14 07:43:33 -0700</creation_ts>
          <short_desc>Add support for setting Function.name from computed properties.</short_desc>
          <delta_ts>2016-03-16 11:17:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>155438</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1174447</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 07:43:33 -0700</bug_when>
    <thetext>Patch and details coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174448</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-14 07:44:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/25142388&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175208</commentid>
    <comment_count>2</comment_count>
      <attachid>274157</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-15 17:08:26 -0700</bug_when>
    <thetext>Created attachment 274157
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175211</commentid>
    <comment_count>3</comment_count>
      <attachid>274159</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-15 17:12:42 -0700</bug_when>
    <thetext>Created attachment 274159
x86_64 benchmark results.

Perf is neutral with this patch.  The definitely faster results cannot be real because this patch only adds more code to the generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175218</commentid>
    <comment_count>4</comment_count>
      <attachid>274157</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-15 17:30:07 -0700</bug_when>
    <thetext>Comment on attachment 274157
proposed patch.

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

The patch looks good to me, but it might be worth considering hooking SetFunctionName into allocation sinking.
Are there programs now that would have benefited from allocation sinking and now this patch prevents that?

&gt; Source/JavaScriptCore/runtime/JSFunction.cpp:581
&gt; +        auto uid = asSymbol(value)-&gt;privateName().uid();

I&apos;m not a big fan of auto here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175231</commentid>
    <comment_count>5</comment_count>
      <attachid>274157</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-15 18:23:05 -0700</bug_when>
    <thetext>Comment on attachment 274157
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        When we have an assignment to a computed property, we will now inject an
&gt; +        op_set_function_name bytecode if:

It&apos;s extremely confusing that &quot;computed property&quot; means &quot;function name&quot; in this patch.  I guess function.name is a kind of computed property.  But this patch makes it seem like they are the same thing.

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        The op_set_function_name will result in JSFunction::setFunctionName() being
&gt; +        called on the target function / class before it is assigned to the property.

OK, but why can&apos;t that just be a put_by_id trap?

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        The choice to not emit the op_set_function_name bytecode all the time is only an
&gt; +        optimization to prevent having to call JSFunction::setFunctionName() when we
&gt; +        already know that it will do nothing (since the target function / class is
&gt; +        proven to already have a name or name property).

Why is this optimization only in the bytecode generator?  It seems like if we want this optimization then it should be in the DFG.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1444
&gt; +            fixEdge&lt;KnownCellUse&gt;(node-&gt;child1());

Is this right?  How do you know this will be a cell?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175252</commentid>
    <comment_count>6</comment_count>
      <attachid>274157</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-15 19:24:14 -0700</bug_when>
    <thetext>Comment on attachment 274157
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        op_set_function_name bytecode if:
&gt; 
&gt; It&apos;s extremely confusing that &quot;computed property&quot; means &quot;function name&quot; in this patch.  I guess function.name is a kind of computed property.  But this patch makes it seem like they are the same thing.

Nope, not the function.name case.  Computed property here means a case like this:

    var x = getSomeValueOfX();
    var o = { [x]: function() {} }
 
... and x is the computed property in this example.  The ES6 spec states that o[x].name must be the stringified value of x at the time o[x] is set to that function (for some definition of stringify that is different than toString()).

&gt;&gt; Source/JavaScriptCore/ChangeLog:17
&gt;&gt; +        called on the target function / class before it is assigned to the property.
&gt; 
&gt; OK, but why can&apos;t that just be a put_by_id trap?

Because:
1. It&apos;ll be put_by_val (not put_by_id) if we doit  that way.

2. This will make put_by_val have to do above checks of (1) see if the value being put is a function or class, and (2) is anonymous, and (3) if is class, does not have a &quot;name&quot; property.  I think this is unnecessarily penalize all put_by_val for the sake of just a less common case (see (3) below).

3. Consider these case:

     var o = { [x]: function() {} } // this function&apos;s name should be set to the &quot;stringified&quot; value of x.
     o[y] = function() {}; // this function&apos;s name should NOT be set to the &quot;stringified&quot; value of y.

    Both cases above generates put_by_val, but only the literal object initialization case should result in the function name being set.

4. calling setFunctionName() is a suggestion and not an absolute action.  Consider this case:

        var o = { [x]: class { static [y]() { } }
        var c = o[x]; // c is the class object in o.

   For the above, c.name should be the value of x if and only if the value of y is not &quot;name&quot;.

&gt;&gt; Source/JavaScriptCore/ChangeLog:22
&gt;&gt; +        proven to already have a name or name property).
&gt; 
&gt; Why is this optimization only in the bytecode generator?  It seems like if we want this optimization then it should be in the DFG.

Doing it in the bytecode generator benefits the llint and baseline JIT too, and saves the DFG from having to create the SetFunctionName node only to eliminate it (unless you mean doing it in the DFG bytecode parser?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175258</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-15 20:18:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 274157 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274157&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt; &gt;&gt; +        op_set_function_name bytecode if:
&gt; &gt; 
&gt; &gt; It&apos;s extremely confusing that &quot;computed property&quot; means &quot;function name&quot; in this patch.  I guess function.name is a kind of computed property.  But this patch makes it seem like they are the same thing.
&gt; 
&gt; Nope, not the function.name case.  Computed property here means a case like
&gt; this:
&gt; 
&gt;     var x = getSomeValueOfX();
&gt;     var o = { [x]: function() {} }
&gt;  
&gt; ... and x is the computed property in this example.  The ES6 spec states
&gt; that o[x].name must be the stringified value of x at the time o[x] is set to
&gt; that function (for some definition of stringify that is different than
&gt; toString()).

Can you be clear in the ChangeLog that this is what we&apos;re referring to here?

I think that set_function_name is probably not the best name for this.

&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:17
&gt; &gt;&gt; +        called on the target function / class before it is assigned to the property.
&gt; &gt; 
&gt; &gt; OK, but why can&apos;t that just be a put_by_id trap?
&gt; 
&gt; Because:
&gt; 1. It&apos;ll be put_by_val (not put_by_id) if we doit  that way.

I don&apos;t think so.  If you have

o = {[x]: function(){}}

then the base of the put is the function, not o. And the key to the put is &quot;name&quot;, not the stringified form of x.

&gt; 
&gt; 2. This will make put_by_val have to do above checks of (1) see if the value
&gt; being put is a function or class, and (2) is anonymous, and (3) if is class,
&gt; does not have a &quot;name&quot; property.  I think this is unnecessarily penalize all
&gt; put_by_val for the sake of just a less common case (see (3) below).

That&apos;s just not how put_by_id/put_by_val work.  They already handle all sort of deep special cases without penalizing everything.  For example the fast path of put_by_id is fast even though a proxy might intercept the whole put().  Same thing applies here.  You can override put() in JSFunction or whatever to intercept this.

&gt; 
&gt; 3. Consider these case:
&gt; 
&gt;      var o = { [x]: function() {} } // this function&apos;s name should be set to
&gt; the &quot;stringified&quot; value of x.
&gt;      o[y] = function() {}; // this function&apos;s name should NOT be set to the
&gt; &quot;stringified&quot; value of y.
&gt; 
&gt;     Both cases above generates put_by_val, but only the literal object
&gt; initialization case should result in the function name being set.

Ummm ok, but surely you&apos;re not suggesting that the semantics of &quot;set_function_name&quot; are to do the store of the function into o in the first case (the literal).  There is a separate opcode for that.  You&apos;re just using set_function_name to set the name of the function.

I&apos;m saying that instead of emitting a set_function_name to set the name of the function, you should emit a put_by_id.

&gt; 
&gt; 4. calling setFunctionName() is a suggestion and not an absolute action. 
&gt; Consider this case:
&gt; 
&gt;         var o = { [x]: class { static [y]() { } }
&gt;         var c = o[x]; // c is the class object in o.
&gt; 
&gt;    For the above, c.name should be the value of x if and only if the value
&gt; of y is not &quot;name&quot;.

As I said, put_by_id can handle this.

&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:22
&gt; &gt;&gt; +        proven to already have a name or name property).
&gt; &gt; 
&gt; &gt; Why is this optimization only in the bytecode generator?  It seems like if we want this optimization then it should be in the DFG.
&gt; 
&gt; Doing it in the bytecode generator benefits the llint and baseline JIT too,
&gt; and saves the DFG from having to create the SetFunctionName node only to
&gt; eliminate it (unless you mean doing it in the DFG bytecode parser?).

No, I mean having this optimization inside the DFG optimization pipeline.

I think that bytecode-generation-time optimizations almost always end up being a bad idea.  We tend to get them wrong and they tend not to provide any benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175259</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-15 20:27:30 -0700</bug_when>
    <thetext>I just realized that my suggestion to use put_by_id is wrong because setFunctionName() does logic that wouldn&apos;t be triggered if you just did &quot;function.name = blah&quot;.

This patch adds a new bytecode operation for this purpose just so that we can &quot;optimize&quot; it, except that all implementations of set_function_name just call a C function.  This implies that instead of making this a new bytecode opcode, we should make it a native function.  It can be a per-global-object native function that is not visible directly to the user but the bytecode generator can emit calls to it.

If we do this then:

- No new bytecode opcodes.  This is a good thing.  We should try to limit the number of these and not add them too often.

- Same performance for LLInt and Baseline JIT.  They would have called a native function anyway.

- Same performnace for the DFG.  You can still recognize this function as an intrinsic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175263</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-15 20:32:45 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I just realized that my suggestion to use put_by_id is wrong because
&gt; setFunctionName() does logic that wouldn&apos;t be triggered if you just did
&gt; &quot;function.name = blah&quot;.
&gt; 
&gt; This patch adds a new bytecode operation for this purpose just so that we
&gt; can &quot;optimize&quot; it, except that all implementations of set_function_name just
&gt; call a C function.  This implies that instead of making this a new bytecode
&gt; opcode, we should make it a native function.  It can be a per-global-object
&gt; native function that is not visible directly to the user but the bytecode
&gt; generator can emit calls to it.
&gt; 
&gt; If we do this then:
&gt; 
&gt; - No new bytecode opcodes.  This is a good thing.  We should try to limit
&gt; the number of these and not add them too often.
&gt; 
&gt; - Same performance for LLInt and Baseline JIT.  They would have called a
&gt; native function anyway.
&gt; 
&gt; - Same performnace for the DFG.  You can still recognize this function as an
&gt; intrinsic.

Meh.  I think this is a good future idea, not necessary right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175264</commentid>
    <comment_count>10</comment_count>
      <attachid>274157</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-15 20:33:21 -0700</bug_when>
    <thetext>Comment on attachment 274157
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1444
&gt;&gt; +            fixEdge&lt;KnownCellUse&gt;(node-&gt;child1());
&gt; 
&gt; Is this right?  How do you know this will be a cell?

Right it&apos;s a cell because this is only used for when we just allocated the function.  Add a comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175404</commentid>
    <comment_count>11</comment_count>
      <attachid>274199</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-16 11:14:35 -0700</bug_when>
    <thetext>Created attachment 274199
patch for landing w/ a more detailed ChangeLog + some requested comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175406</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-16 11:17:41 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r198288: &lt;http://trac.webkit.org/r198288&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274157</attachid>
            <date>2016-03-15 17:08:26 -0700</date>
            <delta_ts>2016-03-16 11:14:35 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-155437.patch</filename>
            <type>text/plain</type>
            <size>61680</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MjMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExNyBA
QAorMjAxNi0wMy0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgRnVuY3Rpb24ubmFtZSBmcm9tIGNvbXB1dGVkIHByb3Bl
cnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU0MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aGVuIHdlIGhhdmUgYW4gYXNzaWdubWVudCB0byBhIGNvbXB1dGVkIHByb3BlcnR5LCB3ZSB3aWxs
IG5vdyBpbmplY3QgYW4KKyAgICAgICAgb3Bfc2V0X2Z1bmN0aW9uX25hbWUgYnl0ZWNvZGUgaWY6
CisKKyAgICAgICAgMS4gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHZhbHVlIGlzIGEgZnVuY3Rpb24g
b3IgY2xhc3MsIGFuZAorICAgICAgICAyLiB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzIGlzIGFub255
bW91cywgYW5kCisgICAgICAgIDMuIGlmIHByb3BlcnR5IGFzc2lnbmVkIHZhbHVlIGlzIGEgY2xh
c3MsIGl0IGRvZXNuJ3QgaGF2ZSBhIHN0YXRpYyBtZXRob2QKKyAgICAgICAgICAgdGhhdCBpcyBz
dGF0aWNhbGx5IG5hbWVkICJuYW1lIi4KKworICAgICAgICBUaGUgb3Bfc2V0X2Z1bmN0aW9uX25h
bWUgd2lsbCByZXN1bHQgaW4gSlNGdW5jdGlvbjo6c2V0RnVuY3Rpb25OYW1lKCkgYmVpbmcKKyAg
ICAgICAgY2FsbGVkIG9uIHRoZSB0YXJnZXQgZnVuY3Rpb24gLyBjbGFzcyBiZWZvcmUgaXQgaXMg
YXNzaWduZWQgdG8gdGhlIHByb3BlcnR5LgorCisgICAgICAgIFRoZSBjaG9pY2UgdG8gbm90IGVt
aXQgdGhlIG9wX3NldF9mdW5jdGlvbl9uYW1lIGJ5dGVjb2RlIGFsbCB0aGUgdGltZSBpcyBvbmx5
IGFuCisgICAgICAgIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGhhdmluZyB0byBjYWxsIEpTRnVu
Y3Rpb246OnNldEZ1bmN0aW9uTmFtZSgpIHdoZW4gd2UKKyAgICAgICAgYWxyZWFkeSBrbm93IHRo
YXQgaXQgd2lsbCBkbyBub3RoaW5nIChzaW5jZSB0aGUgdGFyZ2V0IGZ1bmN0aW9uIC8gY2xhc3Mg
aXMKKyAgICAgICAgcHJvdmVuIHRvIGFscmVhZHkgaGF2ZSBhIG5hbWUgb3IgbmFtZSBwcm9wZXJ0
eSkuCisKKyAgICAgICAgTm90ZTogd2UgY291bGQgZnVydGhlciBjaGVjayBpZiB0aGUgY2xhc3Mg
aGFzIGEgc3RhdGljIG1ldGhvZCB3aXRoIGEgY29tcHV0ZWQKKyAgICAgICAgbmFtZSB0aGF0IGlz
IGEgY29uc3RhbnQgc3RyaW5nICJuYW1lIi4gIEhvd2V2ZXIsIHdlIGRvbid0IGJvdGhlciBiZWNh
dXNlIHRoaXMKKyAgICAgICAgc2hvdWxkIGJlIHJhcmUuICBKU0Z1bmN0aW9uOjpzZXRGdW50aW9u
TmFtZSgpIHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nLgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAg
ICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6
OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVC
bG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRlZCk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbCk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAg
ICAgIChKU0M6OlByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFByb3BlcnR5KToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6Cisg
ICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZl
VG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0RnVuY3Rpb25OYW1lKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdzKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTdG9y
ZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZU5ld1JlZ2V4cCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVTZXRGdW5jdGlvbk5hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlU3RyaW5nUmVwbGFjZSk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfdG9fcHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3NldF9mdW5jdGlvbl9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6
CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdFNsb3dfb3BfdG9fcHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Nl
dF9mdW5jdGlvbl9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6Cisg
ICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRp
b25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlND
OjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjpMTEludDo6aGFu
ZGxlSG9zdENhbGwpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL05vZGVz
LmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjpmaW5pc2hQYXJzaW5nKToKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlMaXN0Tm9kZTo6aGFzU3RhdGljYWxseU5hbWVkUHJvcGVydHkpOgor
ICAgICAgICAoSlNDOjpWYXJpYWJsZUVudmlyb25tZW50Tm9kZTo6VmFyaWFibGVFbnZpcm9ubWVu
dE5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmdldENhbGN1bGF0ZWREaXNwbGF5TmFtZSk6Cisg
ICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnNldEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OnJlaWZ5TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6cmVp
ZnlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiB0ZXN0
cy9lczYueWFtbDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvY29tcHV0ZWQtZnVuY3Rpb24tbmFt
ZXMuanM6IEFkZGVkLgorICAgICAgICAodG9LZXlTdHJpbmcpOgorICAgICAgICAodG9GdW5jTmFt
ZSk6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChyZXR1cm4ucHJvcEtleSk6CisKIDIw
MTYtMDMtMTUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBBU1NFUlRJT04gRkFJTEVEOiAhbV9sYXN0QWN0aXZlQmxvY2sgb24ganMv
ZnVuY3Rpb24tYXBwbHkuaHRtbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3b3JraW5nIGNvcHkpCkBA
IC05NCw2ICs5NCw3IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9uZXdfZ2VuZXJhdG9y
X2Z1bmMiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX25ld19n
ZW5lcmF0b3JfZnVuY19leHAiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX25ld19hcnJvd19mdW5jX2V4cCIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAgICAg
eyAibmFtZSIgOiAib3Bfc2V0X2Z1bmN0aW9uX25hbWUiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX2NhbGwiLCAibGVuZ3RoIiA6IDkgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX3RhaWxfY2FsbCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfY2FsbF9ldmFsIiwgImxlbmd0aCIgOiA5IH0sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAkocmV2aXNpb24g
MTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgogICAgIGNhc2Ugb3Bfam5ncmVh
dGVyZXE6CiAgICAgY2FzZSBvcF9qbGVzczoKKyAgICBjYXNlIG9wX3NldF9mdW5jdGlvbl9uYW1l
OgogICAgIGNhc2Ugb3BfY29weV9yZXN0OiB7CiAgICAgICAgIEFTU0VSVChvcGNvZGVMZW5ndGhz
W29wY29kZUlEXSA+IDIpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24s
IG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwpAQCAtMzIyLDYgKzMyMyw3IEBA
IHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChDb2RlQmwKICAgICBjYXNlIG9wX3By
b2ZpbGVfdHlwZToKICAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ug
b3BfcHV0X3RvX2FyZ3VtZW50czoKKyAgICBjYXNlIG9wX3NldF9mdW5jdGlvbl9uYW1lOgogICAg
IGNhc2Ugb3Bfd2F0Y2hkb2c6CiAjZGVmaW5lIExMSU5UX0hFTFBFUl9PUENPREVTKG9wY29kZSwg
bGVuZ3RoKSBjYXNlIG9wY29kZToKICAgICAgICAgRk9SX0VBQ0hfTExJTlRfT1BDT0RFX0VYVEVO
U0lPTihMTElOVF9IRUxQRVJfT1BDT0RFUyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NzEsNiArMTM3MSwxMyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAg
ICAgb3V0LnByaW50ZigiJXMsICVzLCBmJWQiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVn
aXN0ZXJOYW1lKHIxKS5kYXRhKCksIGYwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisgICAgICAgIGNhc2Ugb3Bfc2V0X2Z1bmN0aW9uX25hbWU6IHsKKyAgICAgICAgICAgIGludCBm
dW5jUmVnID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbmFtZVJlZyA9ICgr
K2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhl
YywgbG9jYXRpb24sIGl0LCAic2V0X2Z1bmN0aW9uX25hbWUiKTsKKyAgICAgICAgICAgIG91dC5w
cmludGYoIiVzLCAlcyIsIHJlZ2lzdGVyTmFtZShmdW5jUmVnKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShuYW1lUmVnKS5kYXRhKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9jYWxsOiB7CiAgICAgICAgICAgICBwcmludENhbGxPcChvdXQsIGV4ZWMsIGxv
Y2F0aW9uLCBpdCwgImNhbGwiLCBEdW1wQ2FjaGVzLCBoYXNQcmludGVkUHJvZmlsaW5nLCBjYWxs
TGlua0luZm9zKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQwLDYgKzI4NDAsMjYgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdGdQogICAgIHJldHVybiBkc3Q7
CiB9CiAKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRl
ZChFeHByZXNzaW9uTm9kZSogdmFsdWVOb2RlLCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJ
RCogbmFtZSkKK3sKKyAgICBpZiAodmFsdWVOb2RlLT5pc0Z1bmNFeHByTm9kZSgpKSB7CisgICAg
ICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEZ1bmNFeHBy
Tm9kZSo+KHZhbHVlTm9kZSktPm1ldGFkYXRhKCk7CisgICAgICAgIGlmICghbWV0YWRhdGEtPmVj
bWFOYW1lKCkuaXNOdWxsKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmICh2
YWx1ZU5vZGUtPmlzQ2xhc3NFeHByTm9kZSgpKSB7CisgICAgICAgIENsYXNzRXhwck5vZGUqIGNs
YXNzRXhwck5vZGUgPSBzdGF0aWNfY2FzdDxDbGFzc0V4cHJOb2RlKj4odmFsdWVOb2RlKTsKKyAg
ICAgICAgaWYgKCFjbGFzc0V4cHJOb2RlLT5lY21hTmFtZSgpLmlzTnVsbCgpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoY2xhc3NFeHByTm9kZS0+aGFzU3RhdGljUHJvcGVydHko
bV92bS0+cHJvcGVydHlOYW1lcy0+bmFtZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBl
bHNlCisgICAgICAgIHJldHVybjsKKworICAgIGVtaXRPcGNvZGUob3Bfc2V0X2Z1bmN0aW9uX25h
bWUpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7CisgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKG5hbWUtPmluZGV4KCkpOworfQorCiBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5j
LCBFeHBlY3RlZEZ1bmN0aW9uIGV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1bWVudHMmIGNhbGxB
cmd1bWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsKICAgICBy
ZXR1cm4gZW1pdENhbGwob3BfY2FsbCwgZHN0LCBmdW5jLCBleHBlY3RlZEZ1bmN0aW9uLCBjYWxs
QXJndW1lbnRzLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MjIsNiArNTIyLDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdBcnJvd0Z1bmN0aW9u
RXhwcmVzc2lvbihSZWdpc3RlcklEKiwgQXJyb3dGdW5jRXhwck5vZGUqKTsKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdE5ld1JlZ0V4cChSZWdpc3RlcklEKiBkc3QsIFJlZ0V4cCopOwogCisgICAg
ICAgIHZvaWQgZW1pdFNldEZ1bmN0aW9uTmFtZUlmTmVlZGVkKEV4cHJlc3Npb25Ob2RlKiB2YWx1
ZU5vZGUsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBuYW1lKTsKKwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0TW92ZUxpbmtUaW1lQ29uc3RhbnQoUmVnaXN0ZXJJRCogZHN0LCBMaW5r
VGltZUNvbnN0YW50KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE1vdmVFbXB0eVZhbHVlKFJl
Z2lzdGVySUQqIGRzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRNb3ZlKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE5ODE3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTExLDYgKzUxMSw3IEBAIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5v
ZGU6OmVtaXRCeXRlY28KICAgICAgICAgICAgICAgICAvLyBDb21wdXRlZCBhY2Nlc3NvcnMuCiAg
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPm1fdHlwZSAmIFByb3BlcnR5Tm9kZTo6Q29tcHV0ZWQp
IHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZSA9
IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlLT5tX2V4cHJlc3Npb24pOworICAgICAgICAgICAgICAg
ICAgICBnZW5lcmF0b3IuZW1pdFNldEZ1bmN0aW9uTmFtZUlmTmVlZGVkKG5vZGUtPm1fYXNzaWdu
LCB2YWx1ZS5nZXQoKSwgcHJvcGVydHlOYW1lLmdldCgpKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKG5vZGUtPm1fdHlwZSAmIFByb3BlcnR5Tm9kZTo6R2V0dGVyKQogICAgICAgICAgICAgICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRHZXR0ZXJCeVZhbChkc3QsIHByb3BlcnR5TmFtZS5n
ZXQoKSwgYXR0cmlidXRlLCB2YWx1ZS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UK
QEAgLTYwMSw2ICs2MDIsNyBAQCB2b2lkIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFu
dFByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3Bl
cnR5TmFtZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlLm1fZXhwcmVzc2lvbik7CisgICAgZ2Vu
ZXJhdG9yLmVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRlZChub2RlLm1fYXNzaWduLCB2YWx1ZS5n
ZXQoKSwgcHJvcGVydHlOYW1lLmdldCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5
VmFsKG5ld09iaiwgcHJvcGVydHlOYW1lLmdldCgpLCB2YWx1ZS5nZXQoKSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjY1NCw2ICsyNjU0LDExIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6
IHsKKyAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxp
bWl0KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6IHsK
ICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjQ2VsbCk7CiAgICAgICAgIGJyZWFr
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAJKHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjM2LDYgKzQ2MzYsMTMgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBvcF9zZXRfZnVuY3Rpb25fbmFtZTogeworICAgICAg
ICAgICAgTm9kZSogZnVuYyA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogbmFtZSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgYWRk
VG9HcmFwaChTZXRGdW5jdGlvbk5hbWUsIGZ1bmMsIG5hbWUpOworICAgICAgICAgICAgTkVYVF9P
UENPREUob3Bfc2V0X2Z1bmN0aW9uX25hbWUpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBv
cF90eXBlb2Y6IHsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCksCiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChUeXBlT2Ys
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
CShyZXZpc2lvbiAxOTgxNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTksNiArMjE5LDcg
QEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRAogICAgIGNhc2Ugb3Bf
bmV3X2dlbmVyYXRvcl9mdW5jOgogICAgIGNhc2Ugb3BfbmV3X2dlbmVyYXRvcl9mdW5jX2V4cDoK
ICAgICBjYXNlIG9wX25ld19hcnJvd19mdW5jX2V4cDoKKyAgICBjYXNlIG9wX3NldF9mdW5jdGlv
bl9uYW1lOgogICAgIGNhc2Ugb3BfY3JlYXRlX2xleGljYWxfZW52aXJvbm1lbnQ6CiAgICAgY2Fz
ZSBvcF9nZXRfcGFyZW50X3Njb3BlOgogICAgIGNhc2Ugb3BfY2F0Y2g6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkocmV2aXNpb24gMTk4MTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0NCw2ICs0NDQsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlCiAgICAgY2FzZSBUb1ByaW1pdGl2ZToKICAgICBjYXNlIEluOgogICAgIGNhc2UgVmFsdWVB
ZGQ6CisgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CiAgICAgICAgIHJlYWQoV29ybGQpOwogICAg
ICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNiArMjY0
LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgVG9J
bmRleFN0cmluZzoKICAgICBjYXNlIE1hdGVyaWFsaXplTmV3T2JqZWN0OgogICAgIGNhc2UgTWF0
ZXJpYWxpemVDcmVhdGVBY3RpdmF0aW9uOgorICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgogICAg
IGNhc2UgU3RyQ2F0OgogICAgIGNhc2UgU3RyaW5nUmVwbGFjZToKICAgICAgICAgcmV0dXJuIHRy
dWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJ
KHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDAsNiArMTQ0MCwxMiBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIFNldEZ1bmN0aW9u
TmFtZTogeworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIENvcHlSZXN0OiB7CiAg
ICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICAgICAgZml4RWRnZTxLbm93bkludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAxOTgxNzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwOSw2ICszMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oSW4sIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KFByb2ZpbGVUeXBlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZUNvbnRy
b2xGbG93LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oU2V0RnVuY3Rpb25OYW1lLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIG1hY3JvKENyZWF0ZUFjdGl2YXRpb24sIE5v
ZGVSZXN1bHRKUykgXAogICAgIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAxOTgxNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUzLDYgKzc1Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJvcjoKICAgICAgICAgY2FzZSBGb3Jj
ZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgU2V0QXJndW1lbnQ6CisgICAgICAgIGNhc2UgU2V0RnVu
Y3Rpb25OYW1lOgogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENo
ZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5OgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9uIDE5ODE3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjMsNiArMjYzLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVU
eXBlJiBzdAogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIFRvUHJpbWl0aXZlOgogICAg
IGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CiAgICAgY2FzZSBTdHJD
YXQ6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgY2FzZSBOZXdTdHJpbmdP
YmplY3Q6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ2MTEsNiArNDYxMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGNvbXBpbGVOZXdGdW5jdGlvbihub2RlKTsKICAgICAgICAgYnJlYWs7CiAK
KyAgICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKKyAgICAgICAgY29tcGlsZVNldEZ1bmN0aW9uTmFt
ZShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEluOgogICAgICAgICBjb21waWxl
SW4obm9kZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxOTgxNzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NTk1LDYgKzQ1OTUsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlTmV3RnVuY3Rpb24obm9kZSk7CiAgICAgICAg
IGJyZWFrOwogCisgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CisgICAgICAgIGNvbXBpbGVTZXRG
dW5jdGlvbk5hbWUobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBJbjoKICAgICAg
ICAgY29tcGlsZUluKG5vZGUpOwogICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxOTgxNzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTYwNiw2ICs1NjA2LDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVOZXdGdW5jdGlvbigKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRGdW5jdGlvbk5hbWUoTm9kZSogbm9kZSkK
K3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICBHUFJSZWcgZnVuY0dQUiA9IGZ1bmMuZ3ByKCk7CisgICAgSlNWYWx1ZU9wZXJhbmQgbmFt
ZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlUmVncyBuYW1lVmFsdWVS
ZWdzID0gbmFtZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lLCBmdW5jR1BSLCBuYW1l
VmFsdWVSZWdzKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQo
bm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVGb3J3YXJkVmFyYXJncyhO
b2RlKiBub2RlKQogewogICAgIExvYWRWYXJhcmdzRGF0YSogZGF0YSA9IG5vZGUtPmxvYWRWYXJh
cmdzRGF0YSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQ4LDYgKzE1NDgsMTEg
QEAgcHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgYXJnMyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAg
ICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMi5wYXlsb2Fk
R1BSKCkpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSkogb3Bl
cmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMp
OwpAQCAtMTkyNyw2ICsxOTMyLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBhcmcxUGF5bG9hZCwg
YXJnMVRhZywgYXJnMlBheWxvYWQsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgVHJ1
c3RlZEltbVB0cih1aWQpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
ICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMikKKyAgICB7Cisg
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLnBheWxv
YWRHUFIoKSwgYXJnMi50YWdHUFIoKSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJh
dGlvbik7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUNKSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRhZywgR1BS
UmVnIGFyZzJQYXlsb2FkLCBHUFJSZWcgYXJnM1RhZywgR1BSUmVnIGFyZzNQYXlsb2FkKQogICAg
IHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQ
YXlsb2FkLCBhcmcyVGFnLCBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CkBAIC0yMzc5LDYgKzIzODks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXko
R1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NUeXBlPiB2b2lkIGNvbXBpbGVOZXdGdW5jdGlvbkNv
bW1vbihHUFJSZWcsIFN0cnVjdHVyZSosIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCYsIHNpemVfdCwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgcHRyZGlmZl90
LCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7CiAgICAgdm9pZCBjb21waWxlTmV3RnVuY3Rpb24oTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZVNldEZ1bmN0aW9uTmFtZShOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlRm9yd2FyZFZhcmFyZ3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNyZWF0ZUFjdGl2
YXRpb24oTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNyZWF0ZURpcmVjdEFyZ3VtZW50cyhOb2Rl
Kik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2Vy
dGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTk4MTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4Myw2ICsyODMsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
IGNhc2UgU2V0RnVuY3Rpb25OYW1lOiB7CisgICAgICAgICAgICAgICAgY29uc2lkZXJCYXJyaWVy
KG1fbm9kZS0+Y2hpbGQxKCksIG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjgsNiArMjI4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAog
ICAgIGNhc2UgU3RyaW5nUmVwbGFjZToKICAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRl
eDoKICAgICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICBjYXNlIFNldEZ1bmN0
aW9uTmFtZToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICBicmVhazsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2
aXNpb24gMTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjksNiArOTI5LDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBOZXdSZWdleHA6CiAgICAgICAgICAgICBjb21waWxlTmV3UmVnZXhwKCk7CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CisgICAgICAgICAg
ICBjb21waWxlU2V0RnVuY3Rpb25OYW1lKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBTdHJpbmdSZXBsYWNlOgogICAgICAgICAgICAgY29tcGlsZVN0cmluZ1JlcGxhY2UoKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjU1Niw2ICs2NTU5LDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgIHNldEpTVmFsdWUocmVzdWx0KTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBpbGVTZXRGdW5j
dGlvbk5hbWUoKQorICAgIHsKKyAgICAgICAgdm1DYWxsKG1fb3V0LnZvaWRUeXBlLCBtX291dC5v
cGVyYXRpb24ob3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKSwgbV9jYWxsRnJhbWUsCisgICAgICAg
ICAgICBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQy
KCkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBjb21waWxlU3RyaW5nUmVwbGFjZSgpCiAgICAg
ewogICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxOTgxNzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEyLTIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEy
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOTgsNiArMjk4LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfcnNoaWZ0KQogICAgICAgICBERUZJTkVf
T1Aob3BfdW5zaWduZWQpCiAgICAgICAgIERFRklORV9PUChvcF91cnNoaWZ0KQorICAgICAgICBE
RUZJTkVfT1Aob3Bfc2V0X2Z1bmN0aW9uX25hbWUpCiAgICAgICAgIERFRklORV9PUChvcF9zdHJj
YXQpCiAgICAgICAgIERFRklORV9PUChvcF9zdHJpY3RlcSkKICAgICAgICAgREVGSU5FX09QKG9w
X3N1YikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTk4MTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTItMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTItMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTU3Miw2ICs1NzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0
X29wX3B1dF9zZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9yZXQoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3JzaGlmdChJbnN0cnVj
dGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3Bfc2V0X2Z1bmN0aW9uX25hbWUoSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N0cmNhdChJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3Bfc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3N1YihJbnN0cnVjdGlvbiopOwpAQCAtNzkzLDggKzc5NCwxMCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGX0pJVE9wZXJh
dGlvbl9FRkpaWiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8qLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBV
bmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0lt
cGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0osIFJlZ2lzdGVySUQs
IFJlZ2lzdGVySUQpOwogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJ
bXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUNKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNlbmRp
ZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTk4MTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxMi0yMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NTgsNiArNTU4LDEyIEBAIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0ogb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIGFyZzEsIFJlZ2lzdGVySUQgYXJnMikKK3sKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CisgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMyX3Qgb3Az
LCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
cmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwpAQCAtNjkyLDYgKzY5
OCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUNKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBhcmcxLCBSZWdpc3RlcklEIGFyZzJUYWcs
IFJlZ2lzdGVySUQgYXJnMlBheWxvYWQpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVy
YXRpb24sIFJlZ2lzdGVySUQgYXJnMSwgUmVnaXN0ZXJJRCBhcmcyVGFnLCBSZWdpc3RlcklEIGFy
ZzJQYXlsb2FkLCBpbnQzMl90IGFyZzMsIFJlZ2lzdGVySUQgYXJnNCkKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJ
bW0zMihhcmczKSwgYXJnNCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxOTgxNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5NSw2ICsz
OTUsMTUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX3ByaW1pdGl2ZShJbnN0cgogICAgIHNs
b3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3NldF9mdW5jdGlvbl9u
YW1lKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgaW50IGZ1bmMgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBuYW1lID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBlbWl0TG9hZFBheWxvYWQoZnVuYywgcmVnVDEp
OworICAgIGVtaXRMb2FkKG5hbWUsIHJlZ1QzLCByZWdUMik7CisgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHJlZ1QxLCByZWdUMywgcmVnVDIpOworfQorCiB2b2lk
IEpJVDo6ZW1pdF9vcF9zdHJjYXQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlv
biwgc2xvd19wYXRoX3N0cmNhdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5Niw2ICsyOTYsMTMgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfdG9fcHJpbWl0aXZlKEluc3RydWN0aQogCiB9CiAKK3ZvaWQgSklUOjpl
bWl0X29wX3NldF9mdW5jdGlvbl9uYW1lKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
Cit7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kLCByZWdUMCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25T
ZXRGdW5jdGlvbk5hbWUsIHJlZ1QwLCByZWdUMSk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX3N0
cmNhdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFNsb3dQYXRo
Q2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfc3Ry
Y2F0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMTcsNiArMTAxNywxMyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiAgICAgcmV0dXJuIG9wZXJhdGlvbk5l
d0Z1bmN0aW9uQ29tbW9uPEpTR2VuZXJhdG9yRnVuY3Rpb24+KGV4ZWMsIHNjb3BlLCBmdW5jdGlv
bkV4ZWN1dGFibGUsIHRydWUpOwogfQogCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0
RnVuY3Rpb25OYW1lKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBmdW5jQ2VsbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE5hbWUpCit7CisgICAgSlNGdW5jdGlvbiogZnVuYyA9IGpzQ2FzdDxKU0Z1
bmN0aW9uKj4oZnVuY0NlbGwpOworICAgIEpTVmFsdWUgbmFtZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkTmFtZSk7CisgICAgZnVuYy0+c2V0RnVuY3Rpb25OYW1lKGV4ZWMsIG5hbWUpOworfQor
CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24g
MTk4MTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyNSw2ICsyMjUsNyBAQCB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElP
TiAoKlZfSklUT3BlcmF0CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VDSVpKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQz
Ml90LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0paQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QsIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCos
IElubGluZUNhbGxGcmFtZSopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKSikoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNQU1BTKShFeGVjU3RhdGUqLCBKU0NlbGwq
LCB2b2lkKiwgc2l6ZV90LCB2b2lkKiwgc2l6ZV90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUNaKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBpbnQzMl90KTsK
QEAgLTMzMyw2ICszMzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5lCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uV2l0
aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChFeGVjU3RhdGUqLCBKU1Njb3BlKiwg
SlNDZWxsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbihFeGVjU3RhdGUqLCBKU1Njb3BlKiwgSlNDZWxsKikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdH
ZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoRXhl
Y1N0YXRlKiwgSlNTY29wZSosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdPYmplY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0YXRlKiwgdm9pZCop
IFdURl9JTlRFUk5BTDsKIFVudXNlZFB0ciBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhbmRsZVdh
dGNoZG9nVGltZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxOTgxNzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTA4Myw2ICsxMDgzLDE1IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9uZXdfYXJyb3cKICAgICBMTElOVF9SRVRVUk4oSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCBleGVjdXRhYmxlLCBzY29wZSkpOwogfQogCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfc2V0X2Z1bmN0aW9uX25hbWUpCit7CisgICAgTExJTlRfQkVHSU4oKTsKKyAgICBKU0Z1bmN0
aW9uKiBmdW5jID0ganNDYXN0PEpTRnVuY3Rpb24qPihMTElOVF9PUCgxKS5SZWdpc3Rlcjo6dW5i
b3hlZENlbGwoKSk7CisgICAgSlNWYWx1ZSBuYW1lID0gTExJTlRfT1BfQygyKS5SZWdpc3Rlcjo6
anNWYWx1ZSgpOworICAgIGZ1bmMtPnNldEZ1bmN0aW9uTmFtZShleGVjLCBuYW1lKTsKKyAgICBM
TElOVF9FTkQoKTsKK30KKwogc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2Fs
bChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEluc3RydWN0aW9uKiBwYywgSlNWYWx1ZSBjYWxsZWUs
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocGMpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHJl
dmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDIsNiArMTAyLDcgQEAgTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZQogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9uZXdfZ2VuZXJhdG9yX2Z1bmMpOwogTExJTlRfU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZ2VuZXJhdG9yX2Z1bmNfZXhwKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Fycm93X2Z1bmNfZXhwKTsKK0xMSU5UX1NM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2V0X2Z1bmN0aW9uX25hbWUpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncyk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZp
c2lvbiAxOTgxNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAo
QykgMjAxMS0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDc3LDYgKzE0NzcsMTEgQEAgX2xsaW50X29wX25ld19h
cnJvd19mdW5jX2V4cDoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJy
b3dfZnVuY19leHApCiAgICAgZGlzcGF0Y2goNCkKIAorX2xsaW50X29wX3NldF9mdW5jdGlvbl9u
YW1lOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9zZXRfZnVuY3Rpb25fbmFtZSkKKyAgICBkaXNwYXRjaCgzKQorCiBfbGxpbnRfb3BfY2Fs
bDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgYXJyYXlQcm9maWxlRm9yQ2FsbCgpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAkocmV2aXNpb24gMTk4MTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw3IEBACiAvKgogKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDIgSGFycmkgUG9y
dGVuIChwb3J0ZW5Aa2RlLm9yZykKICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAo
cG1rQHBvc3QuY29tKQotKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyog
IENvcHlyaWdodCAoQykgMjAwMy0yMDA5LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICogIENvcHlyaWdodCAoQykgMjAwNyBDYW1lcm9uIFp3YXJpY2ggKGN3endh
cmljaEB1d2F0ZXJsb28uY2EpCiAqICBDb3B5cmlnaHQgKEMpIDIwMDcgTWFrcyBPcmxvdmljaAog
KiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CkBAIC0x
OTYsNiArMTk2LDE4IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjpmaW5pc2hQYXJzaW5nKGNvbnN0IEkK
ICAgICBtX2Z1bmN0aW9uTW9kZSA9IGZ1bmN0aW9uTW9kZTsKIH0KIAorYm9vbCBQcm9wZXJ0eUxp
c3ROb2RlOjpoYXNTdGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
TmFtZSkKK3sKKyAgICBQcm9wZXJ0eUxpc3ROb2RlKiBsaXN0ID0gdGhpczsKKyAgICB3aGlsZSAo
bGlzdCkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBjdXJyZW50Tm9kZU5hbWUgPSBsaXN0
LT5tX25vZGUtPm5hbWUoKTsKKyAgICAgICAgaWYgKGN1cnJlbnROb2RlTmFtZSAmJiAqY3VycmVu
dE5vZGVOYW1lID09IHByb3BOYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGxpc3QgPSBsaXN0LT5tX25leHQ7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogVmFy
aWFibGVFbnZpcm9ubWVudE5vZGU6OlZhcmlhYmxlRW52aXJvbm1lbnROb2RlKFZhcmlhYmxlRW52
aXJvbm1lbnQmIGxleGljYWxWYXJpYWJsZXMpCiB7CiAgICAgbV9sZXhpY2FsVmFyaWFibGVzLnN3
YXAobGV4aWNhbFZhcmlhYmxlcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCShyZXZpc2lvbiAxOTgxNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0OCw2ICs2NDgsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0
eU5vZGUqKTsKICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBQcm9wZXJ0eU5vZGUqLCBQcm9wZXJ0eUxpc3ROb2RlKik7CiAKKyAgICAgICAgYm9vbCBoYXNT
dGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9wTmFtZSk7CisKICAg
ICBwcml2YXRlOgogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGVtaXRQdXRD
b25zdGFudFByb3BlcnR5KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCosIFByb3BlcnR5
Tm9kZSYpOwpAQCAtMTk4OCw2ICsxOTkwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIGVjbWFOYW1lKCkgeyByZXR1cm4gbV9lY21hTmFtZSA/ICptX2VjbWFO
YW1lIDogbV9uYW1lOyB9CiAgICAgICAgIHZvaWQgc2V0RWNtYU5hbWUoY29uc3QgSWRlbnRpZmll
ciYgbmFtZSkgeyBtX2VjbWFOYW1lID0gbV9uYW1lLmlzTnVsbCgpID8gJm5hbWUgOiAmbV9uYW1l
OyB9CiAKKyAgICAgICAgYm9vbCBoYXNTdGF0aWNQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBw
cm9wTmFtZSkgeyByZXR1cm4gbV9zdGF0aWNNZXRob2RzID8gbV9zdGF0aWNNZXRob2RzLT5oYXNT
dGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShwcm9wTmFtZSkgOiBmYWxzZTsgfQorCiAgICAgcHJpdmF0
ZToKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE5ODE3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NjcsNiArNTY3LDM0IEBAIFN0cmluZyBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoQ2FsbEZyYW0K
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAordm9pZCBKU0Z1bmN0aW9uOjpzZXRGdW5j
dGlvbk5hbWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIC8vIFRoZSAi
bmFtZSIgcHJvcGVydHkgbWF5IGhhdmUgYmVlbiBhbHJlYWR5IGJlZW4gZGVmaW5lZCBhcyBwYXJ0
IG9mIGEgcHJvcGVydHkgbGlzdCBpbiBhbgorICAgIC8vIG9iamVjdCBsaXRlcmFsIChhbmQgdGhl
cmVmb3JlIHJlaWZpZWQpLgorICAgIGlmIChoYXNSZWlmaWVkTmFtZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoIWlzSG9zdEZ1bmN0aW9uKCkpOworICAgIEFTU0VSVChqc0V4ZWN1
dGFibGUoKS0+ZWNtYU5hbWUoKS5pc051bGwoKSk7CisgICAgU3RyaW5nIG5hbWU7CisgICAgaWYg
KHZhbHVlLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgYXV0byB1aWQgPSBhc1N5bWJvbCh2YWx1ZSkt
PnByaXZhdGVOYW1lKCkudWlkKCk7CisgICAgICAgIGlmICh1aWQtPmlzTnVsbFN5bWJvbCgpKQor
ICAgICAgICAgICAgbmFtZSA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG5hbWUgPSBtYWtlU3RyaW5nKCJbIiwgU3RyaW5nKGFzU3ltYm9sKHZhbHVlKS0+cHJpdmF0
ZU5hbWUoKS51aWQoKSksICddJyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKKyAgICAgICAgSlNTdHJpbmcqIGpzU3RyID0gdmFsdWUudG9TdHJpbmcoZXhlYyk7
CisgICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbmFtZSA9IGpzU3RyLT52YWx1ZShleGVjKTsKKyAgICAgICAgaWYgKHZtLmV4Y2VwdGlvbigp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZWlmeU5hbWUoZXhlYywgbmFtZSk7
Cit9CisKIHZvaWQgSlNGdW5jdGlvbjo6cmVpZnlMZW5ndGgoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC01ODQsNiArNjEyLDEyIEBAIHZvaWQgSlNGdW5j
dGlvbjo6cmVpZnlMZW5ndGgoRXhlY1N0YXRlKiAKIAogdm9pZCBKU0Z1bmN0aW9uOjpyZWlmeU5h
bWUoRXhlY1N0YXRlKiBleGVjKQogeworICAgIFN0cmluZyBuYW1lID0ganNFeGVjdXRhYmxlKCkt
PmVjbWFOYW1lKCkuc3RyaW5nKCk7CisgICAgcmVpZnlOYW1lKGV4ZWMsIG5hbWUpOworfQorCit2
b2lkIEpTRnVuY3Rpb246OnJlaWZ5TmFtZShFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZyBuYW1lKQor
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURh
dGEgPSB0aGlzLT5yYXJlRGF0YSh2bSk7CiAKQEAgLTU5Miw4ICs2MjYsNiBAQCB2b2lkIEpTRnVu
Y3Rpb246OnJlaWZ5TmFtZShFeGVjU3RhdGUqIGV4CiAgICAgdW5zaWduZWQgaW5pdGlhbEF0dHJp
YnV0ZXMgPSBEb250RW51bSB8IFJlYWRPbmx5OwogICAgIGNvbnN0IElkZW50aWZpZXImIHByb3BJ
RCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lOwogCi0gICAgU3RyaW5nIG5hbWUgPSBqc0V4
ZWN1dGFibGUoKS0+ZWNtYU5hbWUoKS5zdHJpbmcoKTsKLQogICAgIGlmIChqc0V4ZWN1dGFibGUo
KS0+aXNHZXR0ZXIoKSkKICAgICAgICAgbmFtZSA9IG1ha2VTdHJpbmcoImdldCAiLCBuYW1lKTsK
ICAgICBlbHNlIGlmIChqc0V4ZWN1dGFibGUoKS0+aXNTZXR0ZXIoKSkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgJKHJldmlzaW9uIDE5ODE3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMTUwLDYgKzE1MCw4IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29s
IGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5lKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NsYXNzQ29uc3Ry
dWN0b3JGdW5jdGlvbigpIGNvbnN0OwogCisgICAgdm9pZCBzZXRGdW5jdGlvbk5hbWUoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBuYW1lKTsKKwogcHJvdGVjdGVkOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IEpTRnVuY3Rpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIEpTRnVu
Y3Rpb24oVk0mLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBKU1Njb3BlKiwgU3RydWN0dXJlKik7CkBA
IC0xOTEsNiArMTkzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1JlaWZpZWROYW1lKCkgY29u
c3Q7CiAgICAgdm9pZCByZWlmeUxlbmd0aChFeGVjU3RhdGUqKTsKICAgICB2b2lkIHJlaWZ5TmFt
ZShFeGVjU3RhdGUqKTsKKyAgICB2b2lkIHJlaWZ5TmFtZShFeGVjU3RhdGUqLCBTdHJpbmcgbmFt
ZSk7CiAgICAgdm9pZCByZWlmeUxhenlQcm9wZXJ0eUlmTmVlZGVkKEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpOwogCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4
dHJhY3RvcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwJKHJldmlzaW9u
IDE5ODE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAkod29ya2lu
ZyBjb3B5KQpAQCAtODA3LDcgKzgwNyw3IEBACiAtIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1lX3By
b3BlcnR5X3Nob3J0aGFuZF9tZXRob2RzX25vX2xleGljYWxfYmluZGluZy5qcwogICBjbWQ6IHJ1
bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zeW1ib2wta2V5
ZWRfbWV0aG9kcy5qcwotICBjbWQ6IHJ1bkVTNiA6ZmFpbAorICBjbWQ6IHJ1bkVTNiA6bm9ybWFs
CiAtIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3ZhcmlhYmxlc19jbGFzcy5qcwog
ICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCiAtIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5
X3ZhcmlhYmxlc19mdW5jdGlvbi5qcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9jb21wdXRlZC1mdW5jdGlvbi1uYW1lcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2NvbXB1dGVkLWZ1bmN0aW9uLW5hbWVzLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9jb21wdXRl
ZC1mdW5jdGlvbi1uYW1lcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY4IEBACitsZXQg
bnVsbFN5bWJvbCA9IFN5bWJvbCgpOworCitsZXQgcHJvcEtleXMgPSBbCisgICAgICJmb28iLCAi
IiwgdW5kZWZpbmVkLCBudWxsLCB0cnVlLCBmYWxzZSwgMCwgMTAsIDEyMzQuNTY3LAorICAgICBT
eW1ib2woImZvbyIpLCBTeW1ib2woIiIpLCBudWxsU3ltYm9sLAorXTsKKworZnVuY3Rpb24gdG9L
ZXlTdHJpbmcoeCkgeworICAgIGlmICh0eXBlb2YgeCA9PT0gInN0cmluZyIpCisgICAgICAgIHJl
dHVybiAnIicgKyB4ICsgJyInOworICAgIGlmICh0eXBlb2YgeCA9PT0gInN5bWJvbCIpCisgICAg
ICAgIHJldHVybiB4LnRvU3RyaW5nKCk7CisgICAgcmV0dXJuICIiICsgeDsKK30KKworZnVuY3Rp
b24gdG9GdW5jTmFtZSh4KSB7CisgICAgaWYgKHR5cGVvZiB4ID09PSAic3ltYm9sIikgeworICAg
ICAgICBpZiAoeCAhPT0gbnVsbFN5bWJvbCkgeworICAgICAgICAgICAgbGV0IHN0ciA9IHgudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIGxldCBrZXkgPSBzdHIuc2xpY2UoNywgc3RyLmxlbmd0aCAt
IDEpOworICAgICAgICAgICAgcmV0dXJuICJbIiArIGtleSArICJdIjsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiAiIiArIHg7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlKHRpdGxlLCBhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IEVycm9yKHRpdGxlICsgIjogYWN0dWFsOiIgKyBhY3R1
YWwgKyAiIGV4cGVjdGVkOiIgKyBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VPYmoocHJv
cEtleSwgY2xhc3NNZXRob2ROYW1lKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgW3Byb3BLZXld
OiBjbGFzcyB7IHN0YXRpYyBbY2xhc3NNZXRob2ROYW1lXSgpe30gfSwKKyAgICB9OworfQorbm9J
bmxpbmUobWFrZU9iaik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAg
Zm9yICh2YXIgayA9IDA7IGsgPCBwcm9wS2V5cy5sZW5ndGg7IGsrKykgeworICAgICAgICBsZXQg
a2V5ID0gcHJvcEtleXNba107CisgICAgICAgIGxldCBvID0gbWFrZU9iaihrZXksICJwcm9wIik7
CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Ygb1siICsgdG9LZXlTdHJpbmcoa2V5KSArICJdLm5h
bWUiLCB0eXBlb2Ygb1trZXldLm5hbWUsICJzdHJpbmciKTsKKyAgICAgICAgc2hvdWxkQmUoIm9b
IiArIHRvS2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgb1trZXldLm5hbWUsIHRvRnVuY05hbWUo
a2V5KSk7CisgICAgfQorCisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBwcm9wS2V5cy5sZW5ndGg7
IGsrKykgeworICAgICAgICBsZXQga2V5ID0gcHJvcEtleXNba107CisgICAgICAgIGxldCBvID0g
bWFrZU9iaihrZXksICJuYW1lIik7CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Ygb1siICsgdG9L
ZXlTdHJpbmcoa2V5KSArICJdLm5hbWUiLCB0eXBlb2Ygb1trZXldLCAiZnVuY3Rpb24iKTsKKyAg
ICB9CisKKyAgICBmb3IgKHZhciBrID0gMDsgayA8IHByb3BLZXlzLmxlbmd0aDsgaysrKSB7Cisg
ICAgICAgIGxldCBrZXkgPSBwcm9wS2V5c1trXTsKKyAgICAgICAgbGV0IHByb3AgPSB7IHRvU3Ry
aW5nKCkgeyByZXR1cm4gInByb3AiIH0gfTsKKyAgICAgICAgbGV0IG8gPSBtYWtlT2JqKGtleSwg
cHJvcCk7CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Ygb1siICsgdG9LZXlTdHJpbmcoa2V5KSAr
ICJdLm5hbWUiLCB0eXBlb2Ygb1trZXldLm5hbWUsICJzdHJpbmciKTsKKyAgICAgICAgc2hvdWxk
QmUoIm9bIiArIHRvS2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgb1trZXldLm5hbWUsIHRvRnVu
Y05hbWUoa2V5KSk7CisgICAgfQorCisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBwcm9wS2V5cy5s
ZW5ndGg7IGsrKykgeworICAgICAgICBsZXQga2V5ID0gcHJvcEtleXNba107CisgICAgICAgIGxl
dCBwcm9wID0geyB0b1N0cmluZygpIHsgcmV0dXJuICJuYW1lIiB9IH07CisgICAgICAgIGxldCBv
ID0gbWFrZU9iaihrZXksIHByb3ApOworICAgICAgICBzaG91bGRCZSgidHlwZW9mIG9bIiArIHRv
S2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9ba2V5XSwgImZ1bmN0aW9uIik7Cisg
ICAgfQorfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MTc2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDMtMTUgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5n
IEZ1bmN0aW9uLm5hbWUgZnJvbSBjb21wdXRlZCBwcm9wZXJ0aWVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NDM3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1jb21w
dXRlZC1tZXRob2RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgLSBFeGVyY2lzZSBvcF9zZXRfZnVu
Y3Rpb25fbmFtZSBhdCBhbGwgdGllcnMuCisKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvZnVu
Y3Rpb24tdG9TdHJpbmctdnMtbmFtZS5qczoKKyAgICAgICAgLSBBZGRlZCB0ZXN0cyBmb3IgY29t
cHV0ZWQgcHJvcGVydGllcy4KKworICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0
ZXJhbC1jb21wdXRlZC1tZXRob2RzLmpzOgorICAgICAgICAtIHJlYmFzZWQgcmVzdWx0cy4KKwog
MjAxNi0wMy0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjE5NDM5NCk6ID4yeCBzbG93LWRvd24gb24gQ0RqcwpJbmRleDogTGF5b3V0VGVz
dHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDE5ODE3NikKKysrIExheW91dFRlc3RzL2pzL29iamVjdC1s
aXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03
LDcgKzcsNyBAQCBQQVNTIG8gPSB7IFsnZicrJ29vJ10oKSB7IHJldHVybiAxMDsgfSB9CiBQQVNT
IG8uZm9vKCkgaXMgMTAKIFBBU1MgdHlwZW9mIG8uZm9vIGlzICdmdW5jdGlvbicKIFBBU1Mgby5m
b28ubGVuZ3RoIGlzIDAKLVBBU1Mgby5mb28ubmFtZSBpcyAnJworUEFTUyBvLmZvby5uYW1lIGlz
ICdmb28nCiBQQVNTIG8uZm9vLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uICgpIHsgcmV0dXJuIDEw
OyB9JwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS52YWx1
ZSBpcyBvLmZvbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28n
KS5lbnVtZXJhYmxlIGlzIHRydWUKQEAgLTE3LDcgKzE3LDcgQEAgUEFTUyBtZXRob2ROYW1lID0g
J2FkZCc7IG8gPSB7IFttZXRob2ROYQogUEFTUyBvLmFkZCg0MiwgLTEwKSBpcyAzMgogUEFTUyB0
eXBlb2Ygby5hZGQgaXMgJ2Z1bmN0aW9uJwogUEFTUyBvLmFkZC5sZW5ndGggaXMgMgotUEFTUyBv
LmFkZC5uYW1lIGlzICcnCitQQVNTIG8uYWRkLm5hbWUgaXMgJ2FkZCcKIFBBU1Mgby5hZGQudG9T
dHJpbmcoKSBpcyAnZnVuY3Rpb24gKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JwogUEFTUyBvID0g
eyBbIChmdW5jdGlvbigpIHsgcmV0dXJuICdtZXRob2QnOyB9KSgpIF0oeCwgeSkgeyByZXR1cm4g
eCArIHk7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG8ubWV0aG9kKDE0Miwg
LTEwKSBpcyAxMzIKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9mdW5jdGlvbi10
b1N0cmluZy12cy1uYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9mdW5jdGlvbi10b1N0cmluZy12cy1uYW1lLmpzCShyZXZpc2lvbiAxOTgxNzYpCisrKyBM
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tdG9TdHJpbmctdnMtbmFtZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDEzIEBAIGxldCBzZWN0aW9uOwogbGV0IGZhaWx1cmVz
ID0gIiI7CiBsZXQgZmFpbHVyZUNvdW50ID0gMDsKIAorbGV0IG5vblN5bWJvbFZhbHVlcyA9IFsg
ImZvbyIsICIiLCB1bmRlZmluZWQsIG51bGwsIHRydWUsIGZhbHNlLCAwLCAxMCwgMTIzNC41Njcg
XTsKK2xldCBzeW1ib2xWYWx1ZXMgPSBbCisgICAgeyB2OiBTeW1ib2woImZvbyIpLCBuYW1lOiAi
W2Zvb10iIH0sCisgICAgeyB2OiBTeW1ib2woIiIpLCBuYW1lOiAiW10iIH0sCisgICAgeyB2OiBT
eW1ib2woKSwgbmFtZTogIiIgfSwKK107CisKIGZ1bmN0aW9uIGlzV2hpdGVTcGFjZShzdHJpbmcp
IHsKICAgICBsZXQgY2MgPSBzdHJpbmcuY2hhckNvZGVBdCgwKTsKICAgICBzd2l0Y2ggKGNjKSB7
CkBAIC01MTgsNTggKzUyNSwxNDUgQEAgc2VjdGlvbiA9ICJjbGFzcyBleHByZXNzaW9ucyBpbiBk
eW5hbWljYQogICAgIHRlc3QoYmFyMygpLCAiZm9vMyIsICJjbGFzcyB7IGNvbnN0cnVjdG9yKHgp
IHsgcmV0dXJuIHg7IH0gc3R1ZmYzKCkgeyByZXR1cm4gMTU7IH0gfSIpOwogfSkoKTsKIAotLy8g
RklYTUU6IFVuY29tbWVudCB0aGVzZSB3aGVuIHdlJ3ZlIGFkZGVkIHN1cHBvcnQgZm9yIEZ1bmN0
aW9uLm5hbWUgb2YgY29tcHV0ZWQgcHJvcGVydGllcy4KLS8vIHNlY3Rpb24gPSAiT2JqZWN0IGNv
bXB1dGVkIHN0cmluZyBwcm9wZXJ0eSI7Ci0vLyB7Ci0vLyAgICAgbGV0IHN0cjEgPSAiZm9vIjsK
LS8vICAgICBsZXQgc3RyMiA9ICIiOwotLy8gICAgIGxldCBvID0geyAgICAKLS8vICAgICAgICAg
W3N0cjFdOiBmdW5jdGlvbigpIHt9LAotLy8gICAgICAgICBbc3RyMl06IGZ1bmN0aW9uKCkge30K
LS8vICAgICB9OwotLy8gICAgIHRlc3Qob1tzdHIxXSwgImZvbyIsICJmdW5jdGlvbigpIHt9Iik7
Ci0vLyAgICAgdGVzdChvW3N0cjJdLCAiIiwgImZ1bmN0aW9uKCkge30iKTsKLS8vIH0KLS8vIAot
Ly8gbGV0IHN5bTEgPSBTeW1ib2woImZvbyIpOwotLy8gbGV0IHN5bTIgPSBTeW1ib2woKTsKLQot
Ly8gc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIHByb3BlcnR5IjsKLS8vIHsKLS8v
ICAgICBsZXQgbyA9IHsgICAgCi0vLyAgICAgICAgIFtzeW0xXTogZnVuY3Rpb24oKSB7fSwKLS8v
ICAgICAgICAgW3N5bTJdOiBmdW5jdGlvbigpIHt9Ci0vLyAgICAgfTsKLS8vICAgICB0ZXN0KG9b
c3ltMV0sICJbZm9vXSIsICJmdW5jdGlvbigpIHt9Iik7Ci0vLyAgICAgdGVzdChvW3N5bTJdLCAi
IiwgImZ1bmN0aW9uKCkge30iKTsKLS8vIH0KLQotLy8gc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0
ZWQgc3ltYm9sIHByb3BlcnR5IHdpdGggc2hvcnRoYW5kIGZ1bmN0aW9uIjsKLS8vIHsKLS8vICAg
ICBsZXQgbyA9IHsKLS8vICAgICAgICAgW3N5bTFdKCkge30sCi0vLyAgICAgICAgIFtzeW0yXSgp
IHt9Ci0vLyAgICAgfTsKLS8vICAgICB0ZXN0KG9bc3ltMV0sICJbZm9vXSIsICJmdW5jdGlvbigp
IHt9Iik7Ci0vLyAgICAgdGVzdChvW3N5bTJdLCAiIiwgImZ1bmN0aW9uKCkge30iKTsKLS8vIH0K
LQotLy8gc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIHByb3BlcnR5IHdpdGggZ2V0
L3NldCBmdW5jdGlvbiI7Ci0vLyB7Ci0vLyAgICAgbGV0IG8gPSB7Ci0vLyAgICAgICAgIGdldCBb
c3ltMV0oKSB7fSwKLS8vICAgICAgICAgc2V0IFtzeW0xXSh4KSB7fSwKLS8vICAgICAgICAgZ2V0
IFtzeW0yXSgpIHt9LAotLy8gICAgICAgICBzZXQgW3N5bTJdKHgpIHt9Ci0vLyAgICAgfTsKLS8v
ICAgICBsZXQgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywgc3ltMSk7
Ci0vLyAgICAgdGVzdChkZXNjLmdldCwgImdldCBbZm9vXSIsICJmdW5jdGlvbigpIHt9Iik7Ci0v
LyAgICAgdGVzdChkZXNjLnNldCwgInNldCBbZm9vXSIsICJmdW5jdGlvbih4KSB7fSIpOwotLy8g
Ci0vLyAgICAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywgc3ltMik7
Ci0vLyAgICAgdGVzdChkZXNjLmdldCwgImdldCAiLCAiZnVuY3Rpb24oKSB7fSIpOwotLy8gICAg
IHRlc3QoZGVzYy5zZXQsICJzZXQgIiwgImZ1bmN0aW9uKHgpIHt9Iik7Ci0vLyB9CitzZWN0aW9u
ID0gIk9iamVjdCBjb21wdXRlZCBub24tc3ltYm9sIGFub255bW91cyBmdW5jdGlvbiBwcm9wZXJ0
eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAg
ICAgICAgIFt2YWx1ZV06IGZ1bmN0aW9uKCkge30sCisgICAgICAgIH0KKyAgICAgICAgdGVzdChv
W3ZhbHVlXSwgdG9TdHJpbmcodmFsdWUpLCAiZnVuY3Rpb24oKSB7fSIpOworCisgICAgICAgIGxl
dCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQg
IiArIHRvU3RyaW5nKHZhbHVlKSwgImZ1bmN0aW9uICIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiKCkg
eyBbbmF0aXZlIGNvZGVdIH0iKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1
ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHJ1blRlc3QodmFsdWVzW2ldKTsKK30pKCk7CisKK3Nl
Y3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgbmFtZWQgZnVuY3Rpb24gcHJvcGVy
dHkiOworKGZ1bmN0aW9uKCkgeworICAgIGxldCB2YWx1ZXMgPSBub25TeW1ib2xWYWx1ZXM7Cisg
ICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1ZSkgeworICAgICAgICBsZXQgbyA9IHsgICAgCisgICAg
ICAgICAgICBbdmFsdWVdOiBmdW5jdGlvbiBiYXIoKSB7fSwKKyAgICAgICAgfQorICAgICAgICB0
ZXN0KG9bdmFsdWVdLCAiYmFyIiwgImZ1bmN0aW9uIGJhcigpIHt9Iik7CisKKyAgICAgICAgbGV0
IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJib3VuZCBi
YXIiLCAiZnVuY3Rpb24gYmFyKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKKyAgICB9CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHJ1blRlc3QodmFs
dWVzW2ldKTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wg
cHJvcGVydHkgd2l0aCBzaG9ydGhhbmQgZnVuY3Rpb24iOworKGZ1bmN0aW9uICgpIHsKKyAgICBs
ZXQgdmFsdWVzID0gbm9uU3ltYm9sVmFsdWVzOworICAgIGZ1bmN0aW9uIHJ1blRlc3QodmFsdWUp
IHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVlXSgpIHt9LAorICAg
ICAgICB9CisgICAgICAgIHRlc3Qob1t2YWx1ZV0sIHRvU3RyaW5nKHZhbHVlKSwgImZ1bmN0aW9u
KCkge30iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAg
ICAgdGVzdChib3VuZCwgImJvdW5kICIgKyB0b1N0cmluZyh2YWx1ZSksICJmdW5jdGlvbiAiICsg
dG9TdHJpbmcodmFsdWUpICsgIigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZh
bHVlc1tpXSk7Cit9KSgpOworCitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBub24tc3ltYm9s
IHByb3BlcnR5IHdpdGggZ2V0L3NldCBmdW5jdGlvbiI7CisoZnVuY3Rpb24gKCkgeworICAgIGxl
dCB2YWx1ZXMgPSBub25TeW1ib2xWYWx1ZXM7CisgICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1ZSkg
eworICAgICAgICBsZXQgbyA9IHsgICAgCisgICAgICAgICAgICBnZXQgW3ZhbHVlXSgpIHt9LAor
ICAgICAgICAgICAgc2V0IFt2YWx1ZV0oeCkge30sCisgICAgICAgIH0KKworICAgICAgICBsZXQg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgdmFsdWUpOworICAgICAg
ICB0ZXN0KGRlc2MuZ2V0LCAiZ2V0ICIgKyB2YWx1ZSwgImZ1bmN0aW9uKCkge30iKTsKKyAgICAg
ICAgdGVzdChkZXNjLnNldCwgInNldCAiICsgdmFsdWUsICJmdW5jdGlvbih4KSB7fSIpOworCisg
ICAgICAgIGxldCBib3VuZCA9IGRlc2MuZ2V0LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5k
LCAiYm91bmQgZ2V0ICIgKyB0b1N0cmluZyh2YWx1ZSksICJmdW5jdGlvbiBnZXQgIiArIHRvU3Ry
aW5nKHZhbHVlKSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgICAgICBib3VuZCA9IGRl
c2Muc2V0LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgc2V0ICIgKyB0b1N0
cmluZyh2YWx1ZSksICJmdW5jdGlvbiBzZXQgIiArIHRvU3RyaW5nKHZhbHVlKSArICIoKSB7IFtu
YXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5s
ZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlv
biA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIGFub255bW91cyBmdW5jdGlvbiBwcm9wZXJ0eSI7
CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KHZhbHVlLCBleHBlY3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAg
IAorICAgICAgICAgICAgW3ZhbHVlXTogZnVuY3Rpb24oKSB7fSwKKyAgICAgICAgfQorICAgICAg
ICB0ZXN0KG9bdmFsdWVdLCBleHBlY3RlZE5hbWUsICJmdW5jdGlvbigpIHt9Iik7CisKKyAgICAg
ICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJi
b3VuZCAiICsgZXhwZWN0ZWROYW1lLCAiZnVuY3Rpb24gIiArIGV4cGVjdGVkTmFtZSArICIoKSB7
IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVl
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5h
bWUpOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIG5hbWVkIGZ1
bmN0aW9uIHByb3BlcnR5IjsKKyhmdW5jdGlvbigpIHsKKyAgICBsZXQgdmFsdWVzID0gc3ltYm9s
VmFsdWVzOworICAgIGZ1bmN0aW9uIHJ1blRlc3QodmFsdWUpIHsKKyAgICAgICAgbGV0IG8gPSB7
ICAgIAorICAgICAgICAgICAgW3ZhbHVlXTogZnVuY3Rpb24gYmFyKCkge30sCisgICAgICAgIH0K
KyAgICAgICAgdGVzdChvW3ZhbHVlXSwgImJhciIsICJmdW5jdGlvbiBiYXIoKSB7fSIpOworCisg
ICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5k
LCAiYm91bmQgYmFyIiwgImZ1bmN0aW9uIGJhcigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBy
dW5UZXN0KHZhbHVlc1tpXS52KTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVk
IHN5bWJvbCBwcm9wZXJ0eSB3aXRoIHNob3J0aGFuZCBmdW5jdGlvbiI7CisoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZh
bHVlLCBleHBlY3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAg
W3ZhbHVlXSgpIHt9LAorICAgICAgICB9CisgICAgICAgIHRlc3Qob1t2YWx1ZV0sIGV4cGVjdGVk
TmFtZSwgImZ1bmN0aW9uKCkge30iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5i
aW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIgKyBleHBlY3RlZE5hbWUsICJm
dW5jdGlvbiAiICsgZXhwZWN0ZWROYW1lICsgIigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBy
dW5UZXN0KHZhbHVlc1tpXS52LCB2YWx1ZXNbaV0ubmFtZSk7Cit9KSgpOworCitzZWN0aW9uID0g
Ik9iamVjdCBjb21wdXRlZCBzeW1ib2wgcHJvcGVydHkgd2l0aCBnZXQvc2V0IGZ1bmN0aW9uIjsK
KyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KHZhbHVlLCBleHBlY3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAg
IAorICAgICAgICAgICAgZ2V0IFt2YWx1ZV0oKSB7fSwKKyAgICAgICAgICAgIHNldCBbdmFsdWVd
KHgpIHt9LAorICAgICAgICB9CisKKyAgICAgICAgbGV0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKG8sIHZhbHVlKTsKKyAgICAgICAgdGVzdChkZXNjLmdldCwgImdldCAi
ICsgZXhwZWN0ZWROYW1lLCAiZnVuY3Rpb24oKSB7fSIpOworICAgICAgICB0ZXN0KGRlc2Muc2V0
LCAic2V0ICIgKyBleHBlY3RlZE5hbWUsICJmdW5jdGlvbih4KSB7fSIpOworCisgICAgICAgIGxl
dCBib3VuZCA9IGRlc2MuZ2V0LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQg
Z2V0ICIgKyBleHBlY3RlZE5hbWUsICJmdW5jdGlvbiBnZXQgIiArIGV4cGVjdGVkTmFtZSArICIo
KSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgICAgICBib3VuZCA9IGRlc2Muc2V0LmJpbmQoe30p
OworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgc2V0ICIgKyBleHBlY3RlZE5hbWUsICJmdW5j
dGlvbiBzZXQgIiArIGV4cGVjdGVkTmFtZSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
cnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5hbWUpOworfSkoKTsKIAogLy8gVGVzdCBm
dW5jdGlvbnMgaW4gZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50cy4KIHNlY3Rpb24gPSAiZGVzdHJ1
Y3R1cmluZyBhc3NpZ25tZW50IjsKQEAgLTY0OSw4ICs3NDMsOCBAQCBzZWN0aW9uID0gImdldC9z
ZXQgZnVuY3Rpb24iOwogCiAgICAgbGV0IG8zID0geyBnZXQgWzEwMF0oKSB7fSwgc2V0IFsxMDBd
KHgpe30gfTsKICAgICBsZXQgZGVzYzMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KG8zLCAxMDApOwotICAgIHRlc3QoZGVzYzMuZ2V0LCAiZ2V0ICIsICJmdW5jdGlvbigpIHt9Iik7
Ci0gICAgdGVzdChkZXNjMy5zZXQsICJzZXQgIiwgImZ1bmN0aW9uKHgpIHt9Iik7CisgICAgdGVz
dChkZXNjMy5nZXQsICJnZXQgMTAwIiwgImZ1bmN0aW9uKCkge30iKTsKKyAgICB0ZXN0KGRlc2Mz
LnNldCwgInNldCAxMDAiLCAiZnVuY3Rpb24oeCkge30iKTsKIAogICAgIHNlY3Rpb24gPSAiYm91
bmQgZ2V0L3NldCBmdW5jdGlvbiI7CiAgICAgewpAQCAtNjczLDkgKzc2Nyw5IEBAIHNlY3Rpb24g
PSAiZ2V0L3NldCBmdW5jdGlvbiI7CiAgICAgICAgIHRlc3QoYm91bmQyLCAiYm91bmQgc2V0ICIs
ICJmdW5jdGlvbiBzZXQgKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKIAogICAgICAgICBib3VuZDEg
PSBkZXNjMy5nZXQuYmluZChvKTsKLSAgICAgICAgdGVzdChib3VuZDEsICJib3VuZCBnZXQgIiwg
ImZ1bmN0aW9uIGdldCAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgICAgICB0ZXN0KGJvdW5k
MSwgImJvdW5kIGdldCAxMDAiLCAiZnVuY3Rpb24gZ2V0IDEwMCgpIHsgW25hdGl2ZSBjb2RlXSB9
Iik7CiAgICAgICAgIGJvdW5kMiA9IGRlc2MzLnNldC5iaW5kKG8pOwotICAgICAgICB0ZXN0KGJv
dW5kMiwgImJvdW5kIHNldCAiLCAiZnVuY3Rpb24gc2V0ICgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7
CisgICAgICAgIHRlc3QoYm91bmQyLCAiYm91bmQgc2V0IDEwMCIsICJmdW5jdGlvbiBzZXQgMTAw
KCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKICAgICB9CiB9CiAKQEAgLTczMiw1ICs4MjYsMjA5IEBA
IHNlY3Rpb24gPSAiYm91bmQgZnVuY3Rpb25zIHdpdGggbm9uLXN0cmkKICAgICB0ZXN0KGJvdW5k
LCAiYm91bmQgIiwgImZ1bmN0aW9uICgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7ICAgIAogfQogCitz
ZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBub24tc3ltYm9sIGFub255bW91cyBjbGFzcyBwcm9w
ZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsK
KyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAg
ICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIHt9LAorICAgICAgICB9CisgICAgICAgIHRlc3Qob1t2
YWx1ZV0sIHRvU3RyaW5nKHZhbHVlKSwgImNsYXNzIHt9Iik7CisKKyAgICAgICAgbGV0IGJvdW5k
ID0gb1t2YWx1ZV0uYmluZCh7fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJib3VuZCAiICsgdG9T
dHJpbmcodmFsdWUpLCAiZnVuY3Rpb24gIiArIHRvU3RyaW5nKHZhbHVlKSArICIoKSB7IFtuYXRp
dmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9
ICJPYmplY3QgY29tcHV0ZWQgbm9uLXN5bWJvbCBuYW1lZCBjbGFzcyBwcm9wZXJ0eSI7CisoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlv
biBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2
YWx1ZV06IGNsYXNzIGJhciB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCAi
YmFyIiwgImNsYXNzIGJhciB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJp
bmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgYmFyIiwgImZ1bmN0aW9uIGJhcigp
IHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFs
dWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXSk7Cit9KSgpOworCitz
ZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBzeW1ib2wgYW5vbnltb3VzIGNsYXNzIHByb3BlcnR5
IjsKKyhmdW5jdGlvbigpIHsKKyAgICBsZXQgdmFsdWVzID0gc3ltYm9sVmFsdWVzOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QodmFsdWUsIGV4cGVjdGVkTmFtZSkgeworICAgICAgICBsZXQgbyA9IHsg
ICAgCisgICAgICAgICAgICBbdmFsdWVdOiBjbGFzcyB7fSwKKyAgICAgICAgfQorICAgICAgICB0
ZXN0KG9bdmFsdWVdLCBleHBlY3RlZE5hbWUsICJjbGFzcyB7fSIpOworCisgICAgICAgIGxldCBi
b3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiAr
IGV4cGVjdGVkTmFtZSwgImZ1bmN0aW9uICIgKyBleHBlY3RlZE5hbWUgKyAiKCkgeyBbbmF0aXZl
IGNvZGVdIH0iKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3Ro
OyBpKyspCisgICAgICAgIHJ1blRlc3QodmFsdWVzW2ldLnYsIHZhbHVlc1tpXS5uYW1lKTsKK30p
KCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIHN5bWJvbCBuYW1lZCBjbGFzcyBwcm9w
ZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAg
ICAgICAgIFt2YWx1ZV06IGNsYXNzIGJhciB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9b
dmFsdWVdLCAiYmFyIiwgImNsYXNzIGJhciB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9b
dmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgYmFyIiwgImZ1bmN0
aW9uIGJhcigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXS52KTsK
K30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgYW5vbnltb3Vz
IGNsYXNzICh3aXRoIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVl
KSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIHsg
c3RhdGljIG5hbWUoKXt9IH0sCisgICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmUoInR5cGVvZiAi
LCAib1siICsgdG9TdHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIHR5cGVvZiBvW3ZhbHVlXS5uYW1l
LCAiZnVuY3Rpb24iKTsKKyAgICAgICAgc2hvdWxkQmUoInRvU3RyaW5nIG9mICIsICJvWyIgKyB0
b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgb1t2YWx1ZV0udG9TdHJpbmcoKSwgImNsYXNzIHsg
c3RhdGljIG5hbWUoKXt9IH0iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5k
KHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRp
dmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9
ICJPYmplY3QgY29tcHV0ZWQgbm9uLXN5bWJvbCBuYW1lZCBjbGFzcyAod2l0aCBuYW1lIG1ldGhv
ZCkgcHJvcGVydHkiOworKGZ1bmN0aW9uKCkgeworICAgIGxldCB2YWx1ZXMgPSBub25TeW1ib2xW
YWx1ZXM7CisgICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1ZSkgeworICAgICAgICBsZXQgbyA9IHsg
ICAgCisgICAgICAgICAgICBbdmFsdWVdOiBjbGFzcyBiYXIgeyBzdGF0aWMgbmFtZSgpe30gfSwK
KyAgICAgICAgfQorICAgICAgICBzaG91bGRCZSgidHlwZW9mICIsICJvWyIgKyB0b1N0cmluZyh2
YWx1ZSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9bdmFsdWVdLm5hbWUsICJmdW5jdGlvbiIpOworICAg
ICAgICBzaG91bGRCZSgidG9TdHJpbmcgb2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJd
Lm5hbWUiLCBvW3ZhbHVlXS50b1N0cmluZygpLCAiY2xhc3MgYmFyIHsgc3RhdGljIG5hbWUoKXt9
IH0iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAg
dGVzdChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOwor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgcnVuVGVzdCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0
ZWQgc3ltYm9sIGFub255bW91cyBjbGFzcyAod2l0aCBuYW1lIG1ldGhvZCkgcHJvcGVydHkiOwor
KGZ1bmN0aW9uKCkgeworICAgIGxldCB2YWx1ZXMgPSBzeW1ib2xWYWx1ZXM7CisgICAgZnVuY3Rp
b24gcnVuVGVzdCh2YWx1ZSwgZXhwZWN0ZWROYW1lKSB7CisgICAgICAgIGxldCBvID0geyAgICAK
KyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIHsgc3RhdGljIG5hbWUoKXt9IH0sCisgICAgICAg
IH0KKyAgICAgICAgc2hvdWxkQmUoInR5cGVvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUpICsg
Il0ubmFtZSIsIHR5cGVvZiBvW3ZhbHVlXS5uYW1lLCAiZnVuY3Rpb24iKTsKKyAgICAgICAgc2hv
dWxkQmUoInRvU3RyaW5nIG9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwg
b1t2YWx1ZV0udG9TdHJpbmcoKSwgImNsYXNzIHsgc3RhdGljIG5hbWUoKXt9IH0iKTsKKworICAg
ICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwg
ImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2
YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5hbWUpOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3Qg
Y29tcHV0ZWQgc3ltYm9sIG5hbWVkIGNsYXNzICh3aXRoIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7
CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAg
IFt2YWx1ZV06IGNsYXNzIGJhciB7IHN0YXRpYyBuYW1lKCl7fSB9LAorICAgICAgICB9CisgICAg
ICAgIHNob3VsZEJlKCJ0eXBlb2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUi
LCB0eXBlb2Ygb1t2YWx1ZV0ubmFtZSwgImZ1bmN0aW9uIik7CisgICAgICAgIHNob3VsZEJlKCJ0
b1N0cmluZyBvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIG9bdmFsdWVd
LnRvU3RyaW5nKCksICJjbGFzcyBiYXIgeyBzdGF0aWMgbmFtZSgpe30gfSIpOworCisgICAgICAg
IGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91
bmQgIiwgImZ1bmN0aW9uICgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVl
c1tpXS52KTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wg
YW5vbnltb3VzIGNsYXNzICh3aXRoIGNvbXB1dGVkIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7Ciso
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBsZXQg
bmFtZVN0ciA9ICJuYW1lIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAg
IGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIHsgc3RhdGljIFtuYW1l
U3RyXSgpe30gfSwKKyAgICAgICAgfQorICAgICAgICBzaG91bGRCZSgidHlwZW9mICIsICJvWyIg
KyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9bdmFsdWVdLm5hbWUsICJmdW5j
dGlvbiIpOworICAgICAgICBzaG91bGRCZSgidG9TdHJpbmcgb2YgIiwgIm9bIiArIHRvU3RyaW5n
KHZhbHVlKSArICJdLm5hbWUiLCBvW3ZhbHVlXS50b1N0cmluZygpLCAiY2xhc3MgeyBzdGF0aWMg
W25hbWVTdHJdKCl7fSB9Iik7CisKKyAgICAgICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7
fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJib3VuZCAiLCAiZnVuY3Rpb24gKCkgeyBbbmF0aXZl
IGNvZGVdIH0iKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3Ro
OyBpKyspCisgICAgICAgIHJ1blRlc3QodmFsdWVzW2ldKTsKK30pKCk7CisKK3NlY3Rpb24gPSAi
T2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgbmFtZWQgY2xhc3MgKHdpdGggY29tcHV0ZWQgbmFt
ZSBtZXRob2QpIHByb3BlcnR5IjsKKyhmdW5jdGlvbigpIHsKKyAgICBsZXQgdmFsdWVzID0gbm9u
U3ltYm9sVmFsdWVzOworICAgIGxldCBuYW1lU3RyID0gIm5hbWUiOworICAgIGZ1bmN0aW9uIHJ1
blRlc3QodmFsdWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVl
XTogY2xhc3MgYmFyIHsgc3RhdGljIFtuYW1lU3RyXSgpe30gfSwKKyAgICAgICAgfQorICAgICAg
ICBzaG91bGRCZSgidHlwZW9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwg
dHlwZW9mIG9bdmFsdWVdLm5hbWUsICJmdW5jdGlvbiIpOworICAgICAgICBzaG91bGRCZSgidG9T
dHJpbmcgb2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUiLCBvW3ZhbHVlXS50
b1N0cmluZygpLCAiY2xhc3MgYmFyIHsgc3RhdGljIFtuYW1lU3RyXSgpe30gfSIpOworCisgICAg
ICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAi
Ym91bmQgIiwgImZ1bmN0aW9uICgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZh
bHVlc1tpXSk7Cit9KSgpOworCitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBzeW1ib2wgYW5v
bnltb3VzIGNsYXNzICh3aXRoIGNvbXB1dGVkIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBsZXQgbmFtZVN0
ciA9ICJuYW1lIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlLCBleHBlY3RlZE5hbWUpIHsK
KyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVlXTogY2xhc3MgeyBzdGF0
aWMgW25hbWVTdHJdKCl7fSB9LAorICAgICAgICB9CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Yg
IiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUiLCB0eXBlb2Ygb1t2YWx1ZV0ubmFt
ZSwgImZ1bmN0aW9uIik7CisgICAgICAgIHNob3VsZEJlKCJ0b1N0cmluZyBvZiAiLCAib1siICsg
dG9TdHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIG9bdmFsdWVdLnRvU3RyaW5nKCksICJjbGFzcyB7
IHN0YXRpYyBbbmFtZVN0cl0oKXt9IH0iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVl
XS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7
IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVl
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5h
bWUpOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIG5hbWVkIGNs
YXNzICh3aXRoIGNvbXB1dGVkIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBsZXQgbmFtZVN0ciA9ICJuYW1l
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAK
KyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIGJhciB7IHN0YXRpYyBbbmFtZVN0cl0oKXt9IH0s
CisgICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmUoInR5cGVvZiAiLCAib1siICsgdG9TdHJpbmco
dmFsdWUpICsgIl0ubmFtZSIsIHR5cGVvZiBvW3ZhbHVlXS5uYW1lLCAiZnVuY3Rpb24iKTsKKyAg
ICAgICAgc2hvdWxkQmUoInRvU3RyaW5nIG9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAi
XS5uYW1lIiwgb1t2YWx1ZV0udG9TdHJpbmcoKSwgImNsYXNzIGJhciB7IHN0YXRpYyBbbmFtZVN0
cl0oKXt9IH0iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAg
ICAgICAgdGVzdChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0g
fSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykK
KyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0udik7Cit9KSgpOworCiBpZiAoZmFpbHVyZUNvdW50
KQogICAgIHRocm93IEVycm9yKCJGb3VuZCAiICsgZmFpbHVyZUNvdW50ICsgIiBmYWlsdXJlczpc
biIgKyBmYWlsdXJlcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0
LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5qcwkocmV2aXNp
b24gMTk4MTc2KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFs
LWNvbXB1dGVkLW1ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIHNob3Vs
ZE5vdFRocm93KCJvID0geyBbJ2YnKydvbyddKCkgeyByZXQKIHNob3VsZEJlKCJvLmZvbygpIiwg
IjEwIik7CiBzaG91bGRCZSgidHlwZW9mIG8uZm9vIiwgIidmdW5jdGlvbiciKTsKIHNob3VsZEJl
KCJvLmZvby5sZW5ndGgiLCAiMCIpOwotc2hvdWxkQmUoIm8uZm9vLm5hbWUiLCAiJyciKTsKK3No
b3VsZEJlKCJvLmZvby5uYW1lIiwgIidmb28nIik7CiBzaG91bGRCZSgiby5mb28udG9TdHJpbmco
KSIsICInZnVuY3Rpb24gKCkgeyByZXR1cm4gMTA7IH0nIik7CiBzaG91bGRCZSgiT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykudmFsdWUiLCAiby5mb28iKTsKIHNob3Vs
ZEJlVHJ1ZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuZW51bWVy
YWJsZSIpOwpAQCAtMTUsNyArMTUsNyBAQCBzaG91bGROb3RUaHJvdygibWV0aG9kTmFtZSA9ICdh
ZGQnOyBvID0gCiBzaG91bGRCZSgiby5hZGQoNDIsIC0xMCkiLCAiMzIiKTsKIHNob3VsZEJlKCJ0
eXBlb2Ygby5hZGQiLCAiJ2Z1bmN0aW9uJyIpOwogc2hvdWxkQmUoIm8uYWRkLmxlbmd0aCIsICIy
Iik7Ci1zaG91bGRCZSgiby5hZGQubmFtZSIsICInJyIpOworc2hvdWxkQmUoIm8uYWRkLm5hbWUi
LCAiJ2FkZCciKTsKIHNob3VsZEJlKCJvLmFkZC50b1N0cmluZygpIiwgIidmdW5jdGlvbiAoeCwg
eSkgeyByZXR1cm4geCArIHk7IH0nIik7CiAKIHNob3VsZE5vdFRocm93KCJvID0geyBbIChmdW5j
dGlvbigpIHsgcmV0dXJuICdtZXRob2QnOyB9KSgpIF0oeCwgeSkgeyByZXR1cm4geCArIHk7IH0g
fTsiKTsK
</data>
<flag name="review"
          id="298667"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>274159</attachid>
            <date>2016-03-15 17:12:42 -0700</date>
            <delta_ts>2016-03-15 17:12:42 -0700</delta_ts>
            <desc>x86_64 benchmark results.</desc>
            <filename>bench-results-x86_64.txt</filename>
            <type>text/plain</type>
            <size>70728</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">JCBzbGVlcCAxMCAmJiAuLi8uLi93czIvSW50ZXJuYWwvVG9vbHMvU2NyaXB0cy9ydW4tanNjLWJl
bmNobWFya3MgLS1vdXRlciA2IGJhc2U6YmFzZTY0L2pzYyBuZXc2NDpuZXc2NC9qc2MgCldhcm5p
bmc6IGNvdWxkIG5vdCBpZGVudGlmeSBjaGVja291dCBsb2NhdGlvbiBmb3IgYmFzZQpXYXJuaW5n
OiBjb3VsZCBub3QgaWRlbnRpZnkgY2hlY2tvdXQgbG9jYXRpb24gZm9yIG5ldzY0Cldhcm5pbmc6
IHJlZnVzaW5nIHRvIHJ1biBKU0JlbmNoIGJlY2F1c2Ugbm90IGFsbCBWTXMgYXJlIER1bXBSZW5k
ZXJUcmVlIG9yIFdlYktpdFRlc3RSdW5uZXIuCldhcm5pbmc6IHJlZnVzaW5nIHRvIHJ1biBEU1BK
UyBiZWNhdXNlIG5vdCBhbGwgVk1zIGFyZSBEdW1wUmVuZGVyVHJlZSBvciBXZWJLaXRUZXN0UnVu
bmVyLgo2NDAwLzY0MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGlvbi9iYXNlICAgICAgICAgICAKR2VuZXJhdGluZyBi
ZW5jaG1hcmsgcmVwb3J0IGF0IC9Wb2x1bWVzL0RhdGEvYmVuY2gvZnVuY25hbWUvYmFzZV9uZXc2
NF9TdW5TcGlkZXJMb25nU3BpZGVyVjhTcGlkZXJPY3RhbmVLcmFrZW5KU1JlZ3Jlc3NBc21CZW5j
aENvbXByZXNzaW9uQmVuY2hfQ2hyb25vbl8yMDE2MDMxNV8xNTI4X3JlcG9ydC50eHQKQW5kIHJh
dyBkYXRhIGF0IC9Wb2x1bWVzL0RhdGEvYmVuY2gvZnVuY25hbWUvYmFzZV9uZXc2NF9TdW5TcGlk
ZXJMb25nU3BpZGVyVjhTcGlkZXJPY3RhbmVLcmFrZW5KU1JlZ3Jlc3NBc21CZW5jaENvbXByZXNz
aW9uQmVuY2hfQ2hyb25vbl8yMDE2MDMxNV8xNTI4Lmpzb24KCkJlbmNobWFyayByZXBvcnQgZm9y
IFN1blNwaWRlciwgTG9uZ1NwaWRlciwgVjhTcGlkZXIsIE9jdGFuZSwgS3Jha2VuLCBKU1JlZ3Jl
c3MsIEFzbUJlbmNoLCBhbmQgQ29tcHJlc3Npb25CZW5jaCBvbiBDaHJvbm9uIChNYWNCb29rUHJv
MTEsMSkuCgpWTXMgdGVzdGVkOgoiYmFzZSIgYXQgL1ZvbHVtZXMvRGF0YS9iZW5jaC9mdW5jbmFt
ZS9iYXNlNjQvanNjCiJuZXc2NCIgYXQgL1ZvbHVtZXMvRGF0YS9iZW5jaC9mdW5jbmFtZS9uZXc2
NC9qc2MKCkNvbGxlY3RlZCA2IHNhbXBsZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCA2IFZNIGlu
dm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkgYmV0d2VlbiBz
YW1wbGUgbWVhc3VyZW1lbnRzLgpVc2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52
b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNpZmljIHByZWNpc2VUaW1lKCkg
ZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsCnRpbWluZy4gUmVwb3J0aW5nIGJlbmNo
bWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWls
bGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlICAgICAgICAgICAgICAgICAgICAgbmV3NjQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjA0NTcrLTEuMTQxNCAgICAgICAg
ICAgIDYuODYxOSstMS4wNzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2OHggZmFzdGVyCiAgIDNk
LW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuOTEzNyst
MC4yODU2ICAgICA/ICAgICAgNi45NDE2Ky0wLjIyMTIgICAgICAgID8KICAgM2QtcmF5dHJhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yMTczKy0wLjg4NzggICAg
ICAgICAgICA4LjY0MzIrLTEuMjE3MCAgICAgICAgICBtaWdodCBiZSAxLjA2NjR4IGZhc3Rlcgog
ICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI3
NDcrLTAuMjAyNSAgICAgPyAgICAgIDMuMzc1NistMC4zNjExICAgICAgICA/IG1pZ2h0IGJlIDEu
MDMwOHggc2xvd2VyCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTEuODM3MystMC45OTc0ICAgICAgICAgICAxMS40MzM4Ky0xLjAxNTkgICAgICAg
ICAgbWlnaHQgYmUgMS4wMzUzeCBmYXN0ZXIKICAgYWNjZXNzLW5ib2R5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy41MjgwKy0wLjE5MjMgICAgID8gICAgICAzLjcyODYr
LTAuNzAwNyAgICAgICAgPyBtaWdodCBiZSAxLjA1Njl4IHNsb3dlcgogICBhY2Nlc3MtbnNpZXZl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk0NTIrLTAuMTg5NSAgICAg
ICAgICAgIDMuOTAyMistMC4xNjk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExMHggZmFzdGVyCiAg
IGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNjY5
NSstMC4yNzkyICAgICA/ICAgICAgMS43NzY3Ky0wLjU0NTEgICAgICAgID8gbWlnaHQgYmUgMS4w
NjQyeCBzbG93ZXIKICAgYml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4wMzkwKy0wLjI2NDYgICAgICAgICAgICAzLjg3MDIrLTAuMTIxOCAgICAgICAg
ICBtaWdodCBiZSAxLjA0MzZ4IGZhc3RlcgogICBiaXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjU5MjkrLTAuMDE1NyAgICAgPyAgICAgIDIuNzI4NSst
MC4yMDU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUyM3ggc2xvd2VyCiAgIGJpdG9wcy1uc2lldmUt
Yml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzg0MCstMC45MzkwICAgICAg
ICAgICAgNS4wODk3Ky0wLjkxNzkgICAgICAgICAgbWlnaHQgYmUgMS4wNTc4eCBmYXN0ZXIKICAg
Y29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xMDgw
Ky0wLjUyMzcgICAgICAgICAgICAzLjg5NjQrLTAuMDgzOSAgICAgICAgICBtaWdodCBiZSAxLjA1
NDN4IGZhc3RlcgogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1Ljg2OTMrLTEuMTAyNSAgICAgICAgICAgIDUuMTk0MSstMC4wMzMwICAgICAgICAg
IG1pZ2h0IGJlIDEuMTMwMHggZmFzdGVyCiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuODE2OCstMS4wMDA4ICAgICA/ICAgICAgMy44MzY4Ky0w
LjU0NDEgICAgICAgID8KICAgY3J5cHRvLXNoYTEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy42NzM3Ky0wLjIzMDQgICAgICAgICAgICAzLjQ1NjArLTAuMDgxMCAgICAg
ICAgICBtaWdodCBiZSAxLjA2MzB4IGZhc3RlcgogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljc4NDUrLTAuNjMzMSAgICAgICAgICAgIDkuMjA1
MystMC4zNjY5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYyOXggZmFzdGVyCiAgIGRhdGUtZm9ybWF0
LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTA0MistMC45MTUyICAg
ICA/ICAgICAgOC40NDcwKy0yLjE2NzEgICAgICAgID8gbWlnaHQgYmUgMS4yOTg3eCBzbG93ZXIK
ICAgbWF0aC1jb3JkaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4x
ODg2Ky0wLjU0ODMgICAgICAgICAgICA0LjEyMzcrLTAuMTUwMCAgICAgICAgICBtaWdodCBiZSAx
LjAxNTd4IGZhc3RlcgogICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjQ5MTUrLTAuNTIyOSAgICAgICAgICAgIDYuMjkzMistMC4xMTk2ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDMxNXggZmFzdGVyCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTYzMCstMC41NjAwICAgICAgICAgICAgMi42ODMy
Ky0wLjEyMzAgICAgICAgICAgbWlnaHQgYmUgMS4xMDQzeCBmYXN0ZXIKICAgcmVnZXhwLWRuYSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4zOTEyKy0wLjcwMTQgICAg
ICAgICAgICA3Ljk2MDUrLTAuNzQxMCAgICAgICAgICBtaWdodCBiZSAxLjA1NDF4IGZhc3Rlcgog
ICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljg2
NTUrLTAuMjI2NSAgICAgPyAgICAgIDYuMTM1NSstMC4zNzcxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDQ2MHggc2xvd2VyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuMTAyMSstMC43NzY0ICAgICAgICAgICAgOC44OTYwKy0xLjIxMDEgICAgICAg
ICAgbWlnaHQgYmUgMS4wMjMyeCBmYXN0ZXIKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMS43NzIzKy0wLjg4OTggICAgICAgICAgIDExLjUyOTkr
LTEuMzUzOCAgICAgICAgICBtaWdodCBiZSAxLjAyMTB4IGZhc3RlcgogICBzdHJpbmctdW5wYWNr
LWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjcyMTErLTEuNDY2MSAgICAg
PyAgICAgMjUuMzQ2OCstMS4zOTk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1M3ggc2xvd2VyCiAg
IHN0cmluZy12YWxpZGF0ZS1pbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuOTgy
OCstMC40Nzg0ICAgICA/ICAgICAgNi4xOTc4Ky0wLjg0OTYgICAgICAgID8gbWlnaHQgYmUgMS4w
MzU5eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuNjQxNistMC4xNDcwICAgICAgICAgICAgNi41OTgyKy0wLjE3NDQgICAgICAg
ICAgbWlnaHQgYmUgMS4wMDY2eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSAgICAgICAgICAgICAgICAgICAgIG5l
dzY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkxvbmdTcGlkZXI6CiAg
IDNkLWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNDAuODU0
MystMTMuNDE0NCAgICA/ICAgMTE0NC4xNDQxKy0yMS41NjU4ICAgICAgID8KICAgM2QtbW9ycGgg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgzMS4wMTU5Ky0xOC40NDIx
ICAgID8gICAgODUwLjc5NDgrLTkuMDMzOSAgICAgICAgPyBtaWdodCBiZSAxLjAyMzh4IHNsb3dl
cgogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODc3
Ljk3NDUrLTEyLjAwNjIgICAgPyAgICA4ODEuNjA2OCstMTIuNzgyNyAgICAgICA/CiAgIGFjY2Vz
cy1iaW5hcnktdHJlZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyMjYuMDk3NystMTEu
MTYyNCAgICAgICAgMTIyMS40MTEyKy0xMS4yMzk3ICAgICAgIAogICBhY2Nlc3MtZmFubmt1Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUwLjY0NDArLTguMjc0NiAgICAgPyAg
ICAzNTMuNDkyMystMTUuMTgwNSAgICAgICA/CiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3MjcuMjY5MCstOS4yMTY2ICAgICAgICAgIDcyNC40MjA5
Ky02LjkyOTAgICAgICAgIAogICBhY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTY4LjExMTgrLTMuMjIyNiAgICAgICAgICA1NjQuMTEzMCstMy4zNjcxICAg
ICAgICAKICAgYml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAg
ICA0Ny4xNDc4Ky0xLjIwNTcgICAgID8gICAgIDQ3LjI2MTgrLTMuNDQ1OSAgICAgICAgPwogICBi
aXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQ1Ljg4MzQr
LTYuNDUyMSAgICAgICAgICAxNDUuNjU5MSstNi43Nzk0ICAgICAgICAKICAgYml0b3BzLW5zaWV2
ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYyNi4wNzUxKy00LjI0NzIgICAg
ID8gICAgNjI3LjI3NTkrLTUuNjM2MiAgICAgICAgPwogICBjb250cm9sZmxvdy1yZWN1cnNpdmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQ0LjM1NDcrLTcuMzI0NyAgICAgPyAgICA2NDUu
NDU5OCstOC4zMTY0ICAgICAgICA/CiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4NTIuNDQ1MistNy4yMjE1ICAgICA/ICAgIDg1OC4zNjQ1Ky0xNi41
ODA3ICAgICAgID8KICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDgyMC40NTEwKy0yNC45NTkxICAgICAgICAgODEyLjM0NzErLTYuODg0MSAgICAgICAg
CiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NTQu
MDY5MistNS42NTk4ICAgICA/ICAgIDk2OS45MTIzKy0xMS4yNzg1ICAgICAgID8gbWlnaHQgYmUg
MS4wMTY2eCBzbG93ZXIKICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDc2My42OTgwKy0xNi42MDg0ICAgICAgICAgNzU2LjYxMDgrLTkuMjE4MCAgICAg
ICAgCiAgIGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
MDEuNzAwOSstMTUuNDUzNSAgICA/ICAgIDkyNS4yODc3Ky01Ny42MTIxICAgICAgID8gbWlnaHQg
YmUgMS4wMjYyeCBzbG93ZXIKICAgaGFzaC1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIxMS44MTQ5Ky0zLjI4NTggICAgID8gICAgMjE1LjY0MzQrLTUuODEwMiAg
ICAgICAgPyBtaWdodCBiZSAxLjAxODF4IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjI3LjA0NzArLTguNzAzNSAgICAgPyAgICA2Mjku
MDk0NSstNi44ODUyICAgICAgICA/CiAgIG1hdGgtcGFydGlhbC1zdW1zICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1MzguODM1NistMTAuMTQ3OCAgICAgICAgIDUzMy43NDE2Ky01LjM0
MjcgICAgICAgIAogICBtYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzc2LjM5MzMrLTUuODc5OCAgICAgICAgICA3NjguOTkyMCstNi4wNDAzICAgICAgICAK
ICAgc3RyaW5nLWJhc2U2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3Ni42
NTQxKy01Ljc5NzMgICAgID8gICAgNDgzLjQ4NDcrLTQuNjg4MiAgICAgICAgPyBtaWdodCBiZSAx
LjAxNDN4IHNsb3dlcgogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDkwLjQwNzcrLTUuNjIyMyAgICAgICAgICA0ODcuODkxOCstOC45MzI2ICAgICAg
ICAKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0
MC44NjYzKy00LjAyMzkgICAgICAgICAgMjM5Ljk2NzUrLTQuODcwMCAgICAgICAgCgogICA8Z2Vv
bWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTM1LjkyODQrLTEu
NTg1NiAgICAgPyAgICA1MzcuMzgzNCstMi4yMzY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAyN3gg
c2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJhc2UgICAgICAgICAgICAgICAgICAgICBuZXc2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIApWOFNwaWRlcjoKICAgY3J5cHRvICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OC4zMzI5Ky0yLjAzNDYgICAgICAgICAgIDU3
LjM5NjcrLTEuMjA5NiAgICAgICAgICBtaWdodCBiZSAxLjAxNjN4IGZhc3RlcgogICBkZWx0YWJs
dWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg1Ljk4NDMrLTIuMzk4
MiAgICAgICAgICAgODQuNTQ3OSstMi42ODMyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MHggZmFz
dGVyCiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NzAuMzQ2NistMjIuNjUwNiAgICAgICAgICA1Ni45OTIxKy0wLjQwODggICAgICAgICAgbWlnaHQg
YmUgMS4yMzQzeCBmYXN0ZXIKICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzNi43NDM4Ky0xLjU1MDkgICAgID8gICAgIDM3LjkzNDQrLTEuMTUyNiAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMjR4IHNsb3dlcgogICByZWdleHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgzLjIzODArLTIuMzM4MiAgICAgXiAgICAgNzgu
MTg1MystMi4xMjY5ICAgICAgICBeIGRlZmluaXRlbHkgMS4wNjQ2eCBmYXN0ZXIKICAgcmljaGFy
ZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MC45MzY0Ky0yLjYy
MjMgICAgID8gICAgIDYyLjg4NTUrLTQuNTMyNyAgICAgICAgPyBtaWdodCBiZSAxLjAzMjB4IHNs
b3dlcgogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUwLjk2MzgrLTEuMjY3NSAgICAgPyAgICAgNTIuNjI0MCstNS4zODkxICAgICAgICA/IG1pZ2h0
IGJlIDEuMDMyNnggc2xvd2VyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYxLjMwMTMrLTMuMjU1NiAgICAgICAgICAgNTkuNjkzNystMS40ODk1
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2OXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UgICAgICAgICAgICAgICAg
ICAgICBuZXc2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApPY3RhbmU6
CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4y
MjIxNistMC4wMDQ1MSAgICA/ICAgICAwLjIyMzYyKy0wLjAwMzY0ICAgICAgID8KICAgZGVjcnlw
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk3NjY1Ky0wLjA1
MTg5ICAgID8gICAgIDQuMDE5NDUrLTAuMDU5ODAgICAgICAgPyBtaWdodCBiZSAxLjAxMDh4IHNs
b3dlcgogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAg
IDAuMTk3MjMrLTAuMDEzMDkgICAgICAgICAgMC4xODk0MistMC4wMTEzNCAgICAgICAgIG1pZ2h0
IGJlIDEuMDQxM3ggZmFzdGVyCiAgIGVhcmxleSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC40MDcwNystMC4wMDQ4NSAgICA/ICAgICAwLjQwODEzKy0wLjAwMjIw
ICAgICAgID8KICAgYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2Ljg5ODYxKy0wLjA1MzQzICAgID8gICAgIDYuOTE2MzMrLTAuMTAxMzggICAgICAgPwog
ICBuYXZpZXItc3Rva2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDYuOTMy
NzgrLTAuMDQ4NDcgICAgICAgICAgNi45MzEzNistMC4wNjU0NyAgICAgICAKICAgcmF5dHJhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAxLjI0NjEwKy0wLjAxODQ3
ICAgID8gICAgIDEuMjU1NjkrLTAuMDMyOTkgICAgICAgPwogICByaWNoYXJkcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMTE0MzkrLTAuMDAxNDkgICAgPyAgICAg
MC4xMTYxNystMC4wMDEzOCAgICAgICA/IG1pZ2h0IGJlIDEuMDE1Nnggc2xvd2VyCiAgIHNwbGF5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC42NDI4MistMC4w
MjI0OCAgICA/ICAgICAwLjY0Mzc2Ky0wLjAxMTU0ICAgICAgID8KICAgcmVnZXhwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDI3LjYyODQzKy0wLjM4Mzg1ICAgIF4g
ICAgMjYuOTUzOTMrLTAuMTkxNTEgICAgICAgXiBkZWZpbml0ZWx5IDEuMDI1MHggZmFzdGVyCiAg
IHBkZmpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA1My44MjM2
MystMC40ODgwNyAgICA/ICAgIDU0LjMzOTk5Ky0wLjgwODQ1ICAgICAgID8KICAgbWFuZHJlZWwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDY0Ljk0NzIxKy0wLjkxMzU0
ICAgID8gICAgNjUuNjE4MTMrLTAuNzYxNTEgICAgICAgPyBtaWdodCBiZSAxLjAxMDN4IHNsb3dl
cgogICBnYmVtdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMzYu
NzUxMzcrLTAuNDMyNzkgICAgICAgICAzNi41NDM4MCstMC4zNTY0OSAgICAgICAKICAgY2xvc3Vy
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc2OTAyKy0wLjAw
NjI0ICAgID8gICAgIDAuNzY5NTcrLTAuMDA0NzcgICAgICAgPwogICBqcXVlcnkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNDc3MTkrLTAuMTczMzIgICAgICAg
ICAxMC40NDQxMistMC4xNzU1MCAgICAgICAKICAgYm94MmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB4MiAgICAgIDEzLjg1OTE2Ky0wLjI0OTU4ICAgID8gICAgMTMuOTEzNjYr
LTAuMjAzMzkgICAgICAgPwogICB6bGliICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICA1MTUuMjAwNzQrLTEyLjAzMzg2ICAgICAgIDUxMS44NjI3MSstMTUuMzc2NDYg
ICAgICAKICAgdHlwZXNjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAg
OTM1Ljk1MzM3Ky0xNC44MzY3NCAgICAgICA5MjQuNDM4NTIrLTE0LjM2NDQ2ICAgICAgICBtaWdo
dCBiZSAxLjAxMjV4IGZhc3RlcgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3LjQ5NTY5Ky0wLjA0MjAxICAgICAgICAgIDcuNDgwMTgrLTAuMDUx
MDIgICAgICAgICBtaWdodCBiZSAxLjAwMjF4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlICAgICAgICAgICAgICAg
ICAgICAgbmV3NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2Vu
OgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
NC42NDgrLTQuMDkzICAgICAgICAgICAgMTIzLjQ4NSstNC44ODkgICAgICAgICAKICAgYXVkaW8t
YmVhdC1kZXRlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkuOTYwKy0wLjkx
NiAgICAgID8gICAgICA2MC4xNTErLTAuOTc5ICAgICAgICAgPwogICBhdWRpby1kZnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0OS40MDArLTEuODc5ICAgICAgPyAg
ICAgMTQ5LjQ5OSstMi44NzAgICAgICAgICA/CiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjU0OSstMS4wNzAgICAgICA/ICAgICAgNDYuNzIw
Ky0xLjMwMSAgICAgICAgID8KICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNjQuNDc0Ky0xLjM5OCAgICAgID8gICAgICA2NS40MDErLTMuMzEyICAg
ICAgICAgPyBtaWdodCBiZSAxLjAxNDR4IHNsb3dlcgogICBpbWFnaW5nLWRhcmtyb29tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Mi4wMjUrLTIuOTA3ICAgICAgPyAgICAgIDgy
LjEwMystMi44MzUgICAgICAgICA/CiAgIGltYWdpbmctZGVzYXR1cmF0ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDc0LjcwNSstMS43NDIgICAgICA/ICAgICAgNzcuNzIwKy00Ljgx
OSAgICAgICAgID8gbWlnaHQgYmUgMS4wNDA0eCBzbG93ZXIKICAgaW1hZ2luZy1nYXVzc2lhbi1i
bHVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODkuMDg3Ky05LjE1MSAgICAgID8gICAg
ICA4OS42MzArLTkuNDYwICAgICAgICAgPwogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MS4yNjMrLTIuNjExICAgICAgPyAgICAgIDUyLjU4Nyst
Mi42MDcgICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OHggc2xvd2VyCiAgIGpzb24tc3RyaW5naWZ5
LXRpbmRlcmJveCAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjUzNSstMi4wNDQgICAgICAg
ICAgICAgMjguODY3Ky0xLjA1NiAgICAgICAgICAgbWlnaHQgYmUgMS4wOTI0eCBmYXN0ZXIKICAg
c3RhbmZvcmQtY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTQuOTE5
Ky0yLjYzNyAgICAgID8gICAgICA1NS4xNjYrLTEuNzIzICAgICAgICAgPwogICBzdGFuZm9yZC1j
cnlwdG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ny4wMjkrLTEuNTcwICAg
ICAgPyAgICAgIDQ4LjQ1NystMy40OTUgICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwNHggc2xvd2Vy
CiAgIHN0YW5mb3JkLWNyeXB0by1wYmtkZjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTM2
LjEzNSstMy4wOTkgICAgICAgICAgICAxMzUuOTU0Ky0zLjcxOSAgICAgICAgIAogICBzdGFuZm9y
ZC1jcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZSAgICAgICAgICAgICAgICAgICA1Mi44ODErLTEuNTk3
ICAgICAgPyAgICAgIDUzLjA2OSstMS4xNzMgICAgICAgICA/CgogICA8YXJpdGhtZXRpYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ni4wNDMrLTAuNzgxICAgICAgPyAg
ICAgIDc2LjM0NCstMC41NDQgICAgICAgICA/IG1pZ2h0IGJlIDEuMDAzOXggc2xvd2VyCgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2UgICAgICAgICAgICAgICAgICAgICBuZXc2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFiYy1mb3J3YXJkLWxvb3AtZXF1YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzIuMDc1NistMS4yNzM0ICAgICA/ICAgICAzMi4xMjE3Ky0xLjcx
NTEgICAgICAgID8KICAgYWJjLXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAg
ICAgICAgICA0MS41NjY0Ky0xLjY0ODYgICAgID8gICAgIDQyLjg4ODYrLTMuOTQyNCAgICAgICAg
PyBtaWdodCBiZSAxLjAzMTh4IHNsb3dlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMxLjUxNjIrLTEuODk1NSAgICAgPyAgICAgMzIuOTIzMSst
Mi4wODMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0Nnggc2xvd2VyCiAgIGFiYy1zaW1wbGUtZm9y
d2FyZC1sb29wICAgICAgICAgICAgICAgICAgICAgICAgICAgMzMuMTg3OSstMS40NDg1ICAgICAg
ICAgICAzMi4wNzkzKy0xLjk0NjggICAgICAgICAgbWlnaHQgYmUgMS4wMzQ2eCBmYXN0ZXIKICAg
YWJjLXNraXBweS1sb29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS4yMzM3
Ky0xLjgyNjggICAgICAgICAgIDI4LjUxOTgrLTEuNjY3MiAgICAgICAgICBtaWdodCBiZSAxLjAy
NTB4IGZhc3RlcgogICBhYnMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjA5NzIrLTAuMDkzNSAgICAgICAgICAgIDMuMDU0NistMC4wMTYwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEzOXggZmFzdGVyCiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTkuNzY2MystMC43MjE2ICAgICAgICAgICAxOS4yNjcyKy0w
LjY5NDEgICAgICAgICAgbWlnaHQgYmUgMS4wMjU5eCBmYXN0ZXIKICAgYWxpYXNlZC1hcmd1bWVu
dHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgMS43MTgwKy0wLjQ2MDkgICAgICAg
ICAgICAxLjQ4OTgrLTAuMDEyNyAgICAgICAgICBtaWdodCBiZSAxLjE1MzF4IGZhc3RlcgogICBh
bGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE0MDMr
LTAuNDU5NSAgICAgICAgICAgIDMuMDkyNistMC4zMjAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1
NHggZmFzdGVyCiAgIGFyZ3VtZW50cy1uYW1lZC1hbmQtcmVmbGVjdGl2ZSAgICAgICAgICAgICAg
ICAgICAgMTAuMTI5OCstMC4yMTgzICAgICA/ICAgICAxMC4zNTg3Ky0wLjQzODcgICAgICAgID8g
bWlnaHQgYmUgMS4wMjI2eCBzbG93ZXIKICAgYXJndW1lbnRzLW91dC1vZi1ib3VuZHMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC42NTU1Ky0wLjEyNzkgICAgID8gICAgICA4Ljk5MjIrLTAu
NjQ3MyAgICAgICAgPyBtaWdodCBiZSAxLjAzODl4IHNsb3dlcgogICBhcmd1bWVudHMtc3RyaWN0
LW1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjIyODYrLTEuMDM5NCAgICAgPyAg
ICAgNDguNzMyOCstMy40MzkzICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNXggc2xvd2VyCiAgIGFy
Z3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNTY5MSst
MC4yODg4ICAgICAgICAgICAgOC41Mjg4Ky0wLjQ1NjUgICAgICAgIAogICBhcml0eS1taXNtYXRj
aC1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjIxOTYrLTAuMTMwNyAgICAg
ICAgICAgIDEuMTc4MistMC4wNTI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1MnggZmFzdGVyCiAg
IGFycmF5LWFjY2Vzcy1wb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgIDkuODE5
MSstMC43NjAyICAgICA/ICAgICAxMC4xODU1Ky0xLjM3MTcgICAgICAgID8gbWlnaHQgYmUgMS4w
MzczeCBzbG93ZXIKICAgYXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMtYWNjZXNzICAgICAgICAg
ICAgICAgICAzMC40MDkzKy0yLjEzNDcgICAgICAgICAgIDI4LjY4NTgrLTIuNTY1OCAgICAgICAg
ICBtaWdodCBiZSAxLjA2MDF4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtZXZlcnkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDk3Ljg1NzcrLTIuMjc1MCAgICAgICAgICAgOTYuMDg0Mist
My40MjM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NXggZmFzdGVyCiAgIGFycmF5LXByb3RvdHlw
ZS1mb3JFYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgOTUuNTAxMSstMS44MzA3ICAgICA/
ICAgICA5Ny40MTkxKy0zLjAyMzQgICAgICAgID8gbWlnaHQgYmUgMS4wMjAxeCBzbG93ZXIKICAg
YXJyYXktcHJvdG90eXBlLW1hcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NC42NzEz
Ky0xLjQ4MDYgICAgID8gICAgIDk4LjQ0NzUrLTIuNjc3OSAgICAgICAgPyBtaWdodCBiZSAxLjAz
OTl4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtcmVkdWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDg5LjI0NjErLTIuMjMwNiAgICAgPyAgICAgODkuMzQyNSstMS44MzQ5ICAgICAgICA/
CiAgIGFycmF5LXByb3RvdHlwZS1yZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAgICAgICAxMTEu
NzMzNCstMS45MzI2ICAgICA/ICAgIDExMy4zMTUxKy00LjcwMjAgICAgICAgID8gbWlnaHQgYmUg
MS4wMTQyeCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA5NS4wNjczKy0yLjY5NzcgICAgICAgICAgIDkzLjM5MjMrLTMuNDc1MCAgICAg
ICAgICBtaWdodCBiZSAxLjAxNzl4IGZhc3RlcgogICBhcnJheS1zcGxpY2UtY29udGlndW91cyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjQ1NjQrLTEuOTU0NiAgICAgPyAgICAgMzIuMDI3
NSstMS42NTk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Mnggc2xvd2VyCiAgIGFycmF5LXdpdGgt
ZG91YmxlLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODIyNistMS40MjI3ICAg
ICAgICAgICAgNC44NzE2Ky0wLjI2NDMgICAgICAgICAgbWlnaHQgYmUgMS4xOTUyeCBmYXN0ZXIK
ICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgNC4z
MDU1Ky0wLjU0MzAgICAgICAgICAgICA0LjE0NDcrLTAuMzUwNCAgICAgICAgICBtaWdodCBiZSAx
LjAzODh4IGZhc3RlcgogICBhcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjY0MTgrLTEuNzIyMyAgICAgICAgICAgIDYuMDc1OSstMC4yOTY4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDkzMXggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjQ3MCstMC40MzI4ICAgICAgICAgICAgNC4yMTU3
Ky0wLjI2MDQgICAgICAgIAogICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjAyODErLTAuMzEwMyAgICAgICAgICAgIDYuNzY5MCstMC4zMjc4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDM4M3ggZmFzdGVyCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91
YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgIDQuMjM5NSstMC40MjY0ICAgICA/ICAgICAgNC40
MDExKy0wLjQ3MzkgICAgICAgID8gbWlnaHQgYmUgMS4wMzgxeCBzbG93ZXIKICAgQXJyYXlCdWZm
ZXItRGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUzLjM2NDUrLTAuODQxOSAgICAgPyAg
ICAgNTcuNDY2NSstNi4zODY1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc2OXggc2xvd2VyCiAgIEFy
cmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgMjEuNDQ3MSst
MS41ODI4ICAgICAgICAgICAyMS4xMzQ2Ky0yLjI0MzAgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ4
eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAg
ICAgICAgNC41OTM0Ky0wLjE2ODYgICAgID8gICAgICA1LjU0MTcrLTEuODA5NyAgICAgICAgPyBt
aWdodCBiZSAxLjIwNjR4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFy
Z2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDU1LjA5MjIrLTEuNTI3MSAgICAgPyAgICAgNTcuMjI3OCstNy40ODc1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDM4OHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYy1sb25nLWxpdmVkLWJ1ZmZlciAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMwLjA1MzkrLTEuNTc0NSAgICAgPyAgICAgMzEuMTc2OCst
My43Njc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3NHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUlu
dDhBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgMTkuNDE5NSstMS4zNjcxICAgICAg
ICAgICAxOC45NjQ1Ky0xLjA5NDUgICAgICAgICAgbWlnaHQgYmUgMS4wMjQweCBmYXN0ZXIKICAg
QXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAxNy45ODcw
Ky0xLjUwODkgICAgICAgICAgIDE2LjcwNDIrLTAuNTI0NSAgICAgICAgICBtaWdodCBiZSAxLjA3
Njh4IGZhc3RlcgogICBhcnJvd2Z1bmN0aW9uLWNhbGwtaW4tY2xhc3MtY29uc3RydWN0b3IgICAg
ICAgICAgIDg3LjkwMDUrLTQuMjc2MyAgICAgICAgICAgODUuNTEzMCstNC41NDk0ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDI3OXggZmFzdGVyCiAgIGFycm93ZnVuY3Rpb24tY2FsbC1pbi1jbGFzcy1t
ZXRob2QgICAgICAgICAgICAgICAgMzQuOTc4NCstMi4wNTk3ICAgICA/ICAgICAzNy4wNjQ2Ky04
LjkyMDEgICAgICAgID8gbWlnaHQgYmUgMS4wNTk2eCBzbG93ZXIKICAgYXJyb3dmdW5jdGlvbi1j
YWxsLWluLWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgNy41MzAzKy0wLjMwODQgICAgICAg
ICAgICA3LjI5MTkrLTAuMDk2MCAgICAgICAgICBtaWdodCBiZSAxLjAzMjd4IGZhc3RlcgogICBh
cnJvd2Z1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjcyNTkr
LTAuNjEwOCAgICAgPyAgICAgMTIuMjM1MistMC44NDQxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQz
NHggc2xvd2VyCiAgIGFzbWpzX2Jvb2xfYnVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTAuNDQ1MSstMC41NzU5ICAgICAgICAgICAxMC4zMTk1Ky0wLjQ5OTggICAgICAgICAg
bWlnaHQgYmUgMS4wMTIyeCBmYXN0ZXIKICAgYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBo
aWMgICAgICAgICAgICAgICAgICAgNC4yNDY1Ky0xLjYyNzUgICAgICAgICAgICAzLjU0MzErLTAu
MjU0NCAgICAgICAgICBtaWdodCBiZSAxLjE5ODZ4IGZhc3RlcgogICBhc3NpZ24tY3VzdG9tLXNl
dHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjgyMjIrLTEuOTMwNCAgICAgICAg
ICAgIDUuMjUxMCstMC40MDExICAgICAgICAgIG1pZ2h0IGJlIDEuMTA4OHggZmFzdGVyCiAgIGJh
c2ljLXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuMjQyMist
MC41MzgyICAgICAgICAgICAxMC45ODMwKy0wLjIzNjggICAgICAgICAgbWlnaHQgYmUgMS4wMjM2
eCBmYXN0ZXIKICAgYmlnLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNS4wMDk1Ky0xLjYwNTQgICAgICAgICAgICA0LjMxNTkrLTAuMzIwMiAgICAgICAgICBt
aWdodCBiZSAxLjE2MDd4IGZhc3RlcgogICBib29sZWFuLXRlc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjQyOTcrLTAuMzA4OCAgICAgICAgICAgIDQuMjQ3NCstMC4x
MjgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQyOXggZmFzdGVyCiAgIGJyYW5jaC1mb2xkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNDA3NCstMC4yMjUyICAgICA/ICAg
ICAgNi4xODg2Ky0xLjk2MDUgICAgICAgID8gbWlnaHQgYmUgMS4xNDQ1eCBzbG93ZXIKICAgYnJh
bmNoLW9uLXN0cmluZy1hcy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAxNC4wNzI0Ky0w
LjYzMDQgICAgID8gICAgIDE0Ljg4ODUrLTEuMDk0NyAgICAgICAgPyBtaWdodCBiZSAxLjA1ODB4
IHNsb3dlcgogICBidWlsZC1sYXJnZS1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ5Ljg2MjYrLTEuMTE2MiAgICAgICAgICAgNDkuNTk0NistMC41NzkwICAgICAgICAKICAg
YnktdmFsLWdlbmVyaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41ODA3
Ky0wLjU3ODcgICAgICAgICAgICA1LjM5NjArLTAuMzE5MSAgICAgICAgICBtaWdodCBiZSAxLjAz
NDJ4IGZhc3RlcgogICBjYWxsLXNwcmVhZC1hcHBseSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQ2LjQzNDcrLTEuNjA1MiAgICAgPyAgICAgNDcuMjY0OSstMS40MjkzICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCiAgIGNhbGwtc3ByZWFkLWNhbGwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTcuMzUwNCstMi40MTYxICAgICA/ICAgICA1OS4zNzQ3Ky0x
LjM0OTcgICAgICAgID8gbWlnaHQgYmUgMS4wMzUzeCBzbG93ZXIKICAgY2FwdHVyZWQtYXNzaWdu
bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41ODMyKy0wLjAyNzUgICAgICAg
ICAgICAwLjU4MzErLTAuMDMwMyAgICAgICAgCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuNDQxNystMC4yMzI4ICAgICA/ICAgICAgNi45MzYw
Ky0xLjI4MjIgICAgICAgID8gbWlnaHQgYmUgMS4wNzY3eCBzbG93ZXIKICAgY2VsbC1hcmd1bWVu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41OTMyKy0wLjEzMTggICAg
ID8gICAgICAzLjU5NTMrLTAuMDk4MCAgICAgICAgPwogICBjZmctc2ltcGxpZnkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcyMTgrLTAuMjE2OCAgICAgPyAgICAgIDMu
ODg5NistMC4yODgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ1MXggc2xvd2VyCiAgIGNoYWluLWdl
dHRlci1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuODY3NCstMS4xODcw
ICAgICA/ICAgICAxNC45MjM1Ky0wLjc3NjIgICAgICAgID8KICAgY21wZXEtb2JqLXRvLW9iai1v
dGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS40NzQxKy0wLjM3ODcgICAgID8gICAg
IDEyLjQzMDkrLTAuOTYzOSAgICAgICAgPyBtaWdodCBiZSAxLjA4MzR4IHNsb3dlcgogICBjb25z
dGFudC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjUwNjgrLTAu
MzkwOCAgICAgICAgICAgIDYuMDM0NystMC4xODYwICAgICAgICAgIG1pZ2h0IGJlIDEuMDc4Mngg
ZmFzdGVyCiAgIGNyZWF0ZS1sb3RzLW9mLWZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTYuMDk1MystMi4yNzgxICAgICA/ICAgICAxNi41NzIzKy0xLjYzODkgICAgICAgID8gbWln
aHQgYmUgMS4wMjk2eCBzbG93ZXIKICAgY3NlLW5ldy1hcnJheS1idWZmZXIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4zMjQ4Ky0wLjg0NjIgICAgICAgICAgICAzLjA0NTkrLTAuNzYy
OCAgICAgICAgICBtaWdodCBiZSAxLjA5MTZ4IGZhc3RlcgogICBjc2UtbmV3LWFycmF5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkxNzgrLTAuMTQyMSAgICAgPyAgICAg
IDMuMTk1OCstMC42OTI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDk1M3ggc2xvd2VyCiAgIGN1c3Rv
bS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQgICAgICAgICAgICAgIDAuNzYyMCstMC4x
NjM4ICAgICAgICAgICAgMC42OTYwKy0wLjAzNzUgICAgICAgICAgbWlnaHQgYmUgMS4wOTQ4eCBm
YXN0ZXIKICAgRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAg
ICA2MC41ODUzKy0xLjE4NzMgICAgID8gICAgIDYwLjU5NzgrLTEuMzY5MiAgICAgICAgPwogICBk
ZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAgICAgICA2LjM5MDcr
LTAuODI3NCAgICAgICAgICAgIDYuMjgxNSstMC42ODMwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3
NHggZmFzdGVyCiAgIGRlbHRhYmx1ZS12YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTIuOTk2NystMS42NjU3ICAgICA/ICAgICA1OC4wNzc1Ky04Ljg1NjEgICAgICAgID8g
bWlnaHQgYmUgMS4wOTU5eCBzbG93ZXIKICAgZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIzNi43MzU4Ky00My42Mzk3ICAgICAgICAgMjE0LjY1MjcrLTIu
MzkwMiAgICAgICAgICBtaWdodCBiZSAxLjEwMjl4IGZhc3RlcgogICBkZXN0cnVjdHVyaW5nLXBh
cmFtZXRlcnMtb3ZlcnJpZGRlbi1ieS1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjY1NzQrLTAuMDI3OCAgICAgICAgICAg
IDAuNjM5OSstMC4wMjU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3M3ggZmFzdGVyCiAgIGRlc3Ry
dWN0dXJpbmctc3dhcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMDk4OCstMC4y
MzQ1ICAgICA/ICAgICAgNi4zMDgzKy0wLjY0NDIgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ0eCBz
bG93ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgMS41Mzc5Ky0wLjA4NTQgICAgICAgICAgICAxLjUzMzErLTAuMTE4MiAgICAgICAgCiAgIGRp
di1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDU3Myst
MC4wNjA4ICAgICAgICAgICAgNS4wMzIxKy0wLjA4NjAgICAgICAgIAogICBkaXYtYm9vbGVhbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjcyMTYrLTAuNDczMCAgICAg
ICAgICAgIDkuNjI2MSstMC4zOTg1ICAgICAgICAKICAgZG91YmxlLWdldC1ieS12YWwtb3V0LW9m
LWJvdW5kcyAgICAgICAgICAgICAgICAgICAgNi4xMzkxKy0xLjE3NjggICAgICAgICAgICA1Ljkw
OTMrLTAuMjQ5MiAgICAgICAgICBtaWdodCBiZSAxLjAzODl4IGZhc3RlcgogICBkb3VibGUtcG9s
bHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgIDExLjMxMDArLTEuNTgwOSAg
ICAgICAgICAgMTAuNTA3MistMC4yMzE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc2NHggZmFzdGVy
CiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgIDQu
NzYyNCstMC41Njk2ICAgICAgICAgICAgNC43NTgxKy0wLjMwMjkgICAgICAgIAogICBkb3VibGUt
cmVhbC11c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LjgyNDErLTMuMzY0
MyAgICAgPyAgICAgMzUuODg0NCstMy4xODA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwNHggc2xv
d2VyCiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgICAg
IDMuMjc3MystMC40MjU3ICAgICAgICAgICAgMy4wMDg2Ky0wLjE1MzcgICAgICAgICAgbWlnaHQg
YmUgMS4wODkzeCBmYXN0ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAg
ICAgICAgICAgICAgICAgMi43ODgxKy0wLjI4MzkgICAgICAgICAgICAyLjY4NjArLTAuMTI3MiAg
ICAgICAgICBtaWdodCBiZSAxLjAzODB4IGZhc3RlcgogICBkb3VibGUtdG8tdWludDMyLXR5cGVk
LWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAzLjM1NDYrLTAuNDg1NCAgICAgICAgICAgIDMu
MzU0NSstMC40OTY3ICAgICAgICAKICAgZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheSAgICAg
ICAgICAgICAgICAgICAgICAgMy41Mjg1Ky0xLjEwMTUgICAgICAgICAgICAyLjkyMTYrLTAuNDQw
OSAgICAgICAgICBtaWdodCBiZSAxLjIwNzd4IGZhc3RlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0
LWRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjQ3NzcrLTQuODU4MyAgICAgICAgICAg
MjcuMTQyMistMC42MDMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDg2MHggZmFzdGVyCiAgIGVsaWRh
YmxlLW5ldy1vYmplY3Qtcm9mbGNvcHRlciAgICAgICAgICAgICAgICAgICAgMjkuODE5MystMC43
MjU1ICAgICA/ICAgICAzNS4yNjUxKy05LjEzNDkgICAgICAgID8gbWlnaHQgYmUgMS4xODI2eCBz
bG93ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10aGVuLWNhbGwgICAgICAgICAgICAgICAgICAg
ICAyMy44MzI5Ky0xLjExOTQgICAgID8gICAgIDI0LjA4MTkrLTEuODI1NiAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMDR4IHNsb3dlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0LXRyZWUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDI3Ljc2NjErLTAuNjEwNSAgICAgPyAgICAgMjguMzkzNCstMS4wNTM0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyNnggc2xvd2VyCiAgIGVtcHR5LXN0cmluZy1wbHVzLWlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzYyMystMC4yNDk1ICAgICA/ICAgICAg
Ni42NTI0Ky0wLjcwOTggICAgICAgID8gbWlnaHQgYmUgMS4wNDU2eCBzbG93ZXIKICAgZW1zY3Jp
cHRlbi1jdWJlMmhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC40MjUyKy0wLjk1
NjIgICAgID8gICAgIDM0LjU1MjQrLTMuNDI3OSAgICAgICAgPwogICBleGl0LWxlbmd0aC1vbi1w
bGFpbi1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgIDE5LjgzMDArLTAuNTg3NCAgICAgPyAg
ICAgMjAuNDA4NistMC44OTQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5Mnggc2xvd2VyCiAgIGV4
dGVybmFsLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgIDEuNTM2NCst
MC4wODEzICAgICA/ICAgICAgMS42ODEzKy0wLjI2NDggICAgICAgID8gbWlnaHQgYmUgMS4wOTQz
eCBzbG93ZXIKICAgZXh0ZXJuYWwtYXJndW1lbnRzLXB1dGJ5dmFsICAgICAgICAgICAgICAgICAg
ICAgICAgMy4yMDcxKy0wLjIzNjkgICAgICAgICAgICAzLjA3MzgrLTAuNTIzNSAgICAgICAgICBt
aWdodCBiZSAxLjA0MzR4IGZhc3RlcgogICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLXZhci1p
bmRleCAgICAgICAgICAgICAgICAxLjYyOTkrLTAuMDg1NiAgICAgPyAgICAgIDEuNjYyNistMC4x
NTI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwMXggc2xvd2VyCiAgIGZpeGVkLXR5cGVkLWFycmF5
LXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzE2NSstMC4wNjA4ICAgICA/ICAg
ICAgMS4zNjI1Ky0wLjIwODcgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ5eCBzbG93ZXIKICAgRmxv
YXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi44ODEzKy0w
Ljc5MjIgICAgID8gICAgIDEwLjkzNjQrLTguMzU5MCAgICAgICAgPyBtaWdodCBiZSAxLjU4OTN4
IHNsb3dlcgogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAgICAgICAgICAg
ICAgIDYwLjg4NDQrLTAuOTY5OCAgICAgICAgICAgNjAuMjQ2OCstMi41MzM5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEwNnggZmFzdGVyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAg
ICAgICAgICAgICAgICAgICAgODQuMzIxOCstMS42MjIxICAgICA/ICAgICA4NC43NTQ0Ky0xLjU4
ODUgICAgICAgID8KICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0ICAgICAgICAgICAg
ICAgICAgICA4My4xNDY4Ky0xMS4zOTcyICAgICAgICAgIDgwLjkyOTQrLTMuMjIzOCAgICAgICAg
ICBtaWdodCBiZSAxLjAyNzR4IGZhc3RlcgogICBmb2xkLWRvdWJsZS10by1pbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE2Ljk4MjYrLTAuODcxNCAgICAgPyAgICAgMTcuNTcxMCst
MS4wNTEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0Nnggc2xvd2VyCiAgIGZvbGQtZ2V0LWJ5LWlk
LXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4yODI1Ky0wLjUwNDQgICAgID8gICAg
IDEwLjQ1OTcrLTAuNDY3MiAgICAgICAgPyBtaWdodCBiZSAxLjAxNzJ4IHNsb3dlcgogICBmb2xk
LWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAgICA4LjIxOTgrLTAu
MTM5NiAgICAgPyAgICAgIDguNDAzMystMC41MDk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyM3gg
c2xvd2VyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1nZXQtYnktb2Zmc2V0ICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuOTcz
NistMC4xODg3ICAgICA/ICAgICAgNi4wMzQ1Ky0wLjMwOTIgICAgICAgID8gbWlnaHQgYmUgMS4w
MTAyeCBzbG93ZXIKICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLXBvbHktZ2V0LWJ5LW9m
ZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjExMjIrLTAuNDYzNiAgICAgICAgICAgIDUuNzQyNCstMC4yMjg4ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDY0NHggZmFzdGVyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1wb2x5
LXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi4xMjc2Ky0wLjE4ODUgICAgID8gICAgICA2Ljc0NDcrLTIuMDQ4MCAg
ICAgICAgPyBtaWdodCBiZSAxLjEwMDd4IHNsb3dlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZz
ZXQtdG8tcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjA2MzUrLTAuMjgyOSAgICAgPyAgICAgIDUuNTk1MCstMS4z
NDM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA1MHggc2xvd2VyCiAgIGZvbGQtbXVsdGktcHV0LWJ5
LW9mZnNldC10by1yZXBsYWNlLW9yLXRyYW5zaXRpb24tcHV0LWJ5LW9mZnNldCAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjAyMjMrLTIu
NjY1MCAgICAgICAgICAgMTEuMzg5OCstMi40NTUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDU1NXgg
ZmFzdGVyCiAgIGZvbGQtcHV0LWJ5LWlkLXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAgICAgICAg
ICAgIDguMTkzNistMC4xODMzICAgICA/ICAgICAgOC4yODQ0Ky0wLjU3NTQgICAgICAgID8gbWln
aHQgYmUgMS4wMTExeCBzbG93ZXIKICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5nLXRvLW11
bHRpLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOC45MDMwKy0wLjI4MDMgICAgID8gICAgICA5LjMyMjgrLTAuMjY1
NSAgICAgICAgPyBtaWdodCBiZSAxLjA0NzJ4IHNsb3dlcgogICBmb2xkLXB1dC1ieS12YWwtd2l0
aC1zeW1ib2wtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljk2NTkrLTAuNDkxNyAgICAgPyAgICAg
MTAuNTY3MSstMi45ODQzICAgICAgICA/IG1pZ2h0IGJlIDEuMTc4Nnggc2xvd2VyCiAgIGZvbGQt
cHV0LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTgzMistMS44
OTA1ICAgICAgICAgICAgNS4wMzQ3Ky0wLjI1MTcgICAgICAgICAgbWlnaHQgYmUgMS4xMDg5eCBm
YXN0ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcyAgICAgICAgICAgICAgICAgICAg
ICAxMy4wNzIxKy0xLjIxNzEgICAgID8gICAgIDEzLjU1NDMrLTEuMzg2NSAgICAgICAgPyBtaWdo
dCBiZSAxLjAzNjl4IHNsb3dlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjM5NTQrLTAuMDU2NiAgICAgPyAgICAgIDQuNDcyNistMC4xMTAy
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3Nnggc2xvd2VyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5
LXZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgIDQuNDI5NCstMC4zMDM0ICAgICAgICAgICAg
NC4yNTQyKy0wLjE0MDYgICAgICAgICAgbWlnaHQgYmUgMS4wNDEyeCBmYXN0ZXIKICAgZnJvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4yNjIyKy0wLjQx
NzYgICAgICAgICAgIDEzLjIzNzErLTAuNTQ2MCAgICAgICAgCiAgIGZ0bC1saWJyYXJ5LWlubGlu
aW5nLWRhdGF2aWV3ICAgICAgICAgICAgICAgICAgICAgODEuNTQxOSstMi42NjE4ICAgICAgICAg
ICA3OS42MDgwKy0zLjU3NDQgICAgICAgICAgbWlnaHQgYmUgMS4wMjQzeCBmYXN0ZXIKICAgZnRs
LWxpYnJhcnktaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMi4zODA5Ky0x
Ljc0OTAgICAgICAgICAgIDMxLjcxMTYrLTEuNDY2OSAgICAgICAgICBtaWdodCBiZSAxLjAyMTF4
IGZhc3RlcgogICBmdGwtcG9seW1vcnBoaWMtYml0YW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTkzLjEyNjQrLTMuODI1MCAgICAgICAgICAxODkuNTk3MCstNy41Njg0ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE4NnggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXRvciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxODcuNjE0NystNy44NTA3ICAgICA/ICAgIDE4Ny44ODkxKy0zLjAz
MjggICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLWJpdHhvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE4Ny4zNTg4Ky0yLjUwOTMgICAgID8gICAgMTg3LjQ5MjcrLTMuNDQ5OSAgICAgICAg
PwogICBmdGwtcG9seW1vcnBoaWMtZGl2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjU1
LjY2NjIrLTguMzY2MiAgICAgPyAgICA2NTguMDUyMystOS4wODE1ICAgICAgICA/CiAgIGZ0bC1w
b2x5bW9ycGhpYy1sc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAyMzAuNDk5MCstNC42
ODE0ICAgICAgICAgIDIyOS42ODQ2Ky01LjA3MTcgICAgICAgIAogICBmdGwtcG9seW1vcnBoaWMt
bXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQyLjY2OTMrLTEwLjYwNTQgICAgICAg
ICAzNDAuMzE0NistNS4yOTE3ICAgICAgICAKICAgZnRsLXBvbHltb3JwaGljLXJzaGlmdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIzMS45MTg2Ky00LjU1OTEgICAgICAgICAgMjI5LjMyODgr
LTMuMDc3NCAgICAgICAgICBtaWdodCBiZSAxLjAxMTN4IGZhc3RlcgogICBmdGwtcG9seW1vcnBo
aWMtU3RyaW5nRnJvbUNoYXJDb2RlICAgICAgICAgICAgICAgIDU5LjU3OTIrLTEuOTEyMSAgICAg
ICAgICAgNTguMzQwMCstMS41ODE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMnggZmFzdGVyCiAg
IGZ0bC1wb2x5bW9ycGhpYy1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNjIuNTEz
NSstMi41MTE0ICAgICA/ICAgIDI2NC42NzYyKy02LjQ3NzIgICAgICAgID8KICAgZnRsLXBvbHlt
b3JwaGljLXVyc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgIDI0NS45NTAxKy0yLjg2MDcg
ICAgID8gICAgMjQ5LjE2OTArLTguMTU2MCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzF4IHNsb3dl
cgogICBmdW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0
LjY1NTQrLTAuOTg0NyAgICAgICAgICAgMTQuMjg0OSstMC44MTU4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDI1OXggZmFzdGVyCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMDI4NystMC40NDI4ICAgICAgICAgICAgMi43NjA0Ky0wLjEwNzQgICAg
ICAgICAgbWlnaHQgYmUgMS4wOTcyeCBmYXN0ZXIKICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zNjEwKy0wLjU5NzQgICAgICAgICAgICA0LjE0
NDArLTAuMTc1OCAgICAgICAgICBtaWdodCBiZSAxLjA1MjR4IGZhc3RlcgogICBmdW5jdGlvbi13
aXRoLWV2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIwLjY0NDIrLTIuNTY5MSAg
ICAgICAgICAxMTkuMDk2NistNC4xNDkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzMHggZmFzdGVy
CiAgIGdjc2UtcG9seS1nZXQtbGVzcy1vYnZpb3VzICAgICAgICAgICAgICAgICAgICAgICAgMTIu
NDY0OCstMC42NTMwICAgICA/ICAgICAxMi45MDQ0Ky0xLjc5ODQgICAgICAgID8gbWlnaHQgYmUg
MS4wMzUzeCBzbG93ZXIKICAgZ2NzZS1wb2x5LWdldCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMS43MTk2Ky0wLjY0MDQgICAgID8gICAgIDEyLjEzOTArLTAuNDAzNCAgICAg
ICAgPyBtaWdodCBiZSAxLjAzNTh4IHNsb3dlcgogICBnY3NlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1LjI5MTkrLTEuMjkwNyAgICAgICAgICAgIDQuOTc4
MSstMC4xNzY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYzMHggZmFzdGVyCiAgIGdlbmVyYXRvci1j
cmVhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDE5MCstMC4wNTMyICAg
ICAgICAgICAgMS4wMDUzKy0wLjAyOTEgICAgICAgICAgbWlnaHQgYmUgMS4wMTM2eCBmYXN0ZXIK
ICAgZ2VuZXJhdG9yLWZpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzNS4y
ODk2Ky0xLjkwNjUgICAgID8gICAgMTM2LjgyMzgrLTcuMjA2MyAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTN4IHNsb3dlcgogICBnZW5lcmF0b3ItZnVuY3Rpb24tY3JlYXRlICAgICAgICAgICAgICAg
ICAgICAgICAgICA1LjE1MjMrLTAuODg5NCAgICAgPyAgICAgIDUuNDQyMSstMC44NTY3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDU2Mnggc2xvd2VyCiAgIGdlbmVyYXRvci1zdW5zcGlkZXItYWNjZXNz
LW5zaWV2ZSAgICAgICAgICAgICAgICAgIDcuNTEyNCstMC42MzY1ICAgICA/ICAgICAgNy42OTIw
Ky0wLjUxNDkgICAgICAgID8gbWlnaHQgYmUgMS4wMjM5eCBzbG93ZXIKICAgZ2VuZXJhdG9yLXdp
dGgtc2V2ZXJhbC10eXBlcyAgICAgICAgICAgICAgICAgICAgIDQzOS44NTI0Ky0xNC4wNDU2ICAg
ID8gICAgNDQwLjIyNzErLTUuOTc2MCAgICAgICAgPwogICBnZXQtYnktaWQtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNDg1Ky0wLjE1ODUgICAgID8gICAg
ICAzLjQwMDErLTAuMjk5NyAgICAgICAgPyBtaWdodCBiZSAxLjAxNTR4IHNsb3dlcgogICBnZXQt
YnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjI2NTUrLTEuMDAw
OSAgICAgPyAgICAgIDYuNTEyNSstMC43MjQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM5NHggc2xv
d2VyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAgICAgICAgICAgICAg
IDIuOTcyMystMC42NzQxICAgICAgICAgICAgMi41MjQzKy0wLjA3NzAgICAgICAgICAgbWlnaHQg
YmUgMS4xNzc1eCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
biAgICAgICAgICAgICAgNC4yNTkzKy0wLjA0OTggICAgID8gICAgICA0LjUyNjYrLTAuNjA5MSAg
ICAgICAgPyBtaWdodCBiZSAxLjA2Mjh4IHNsb3dlcgogICBnZXQtYnktaWQtcHJvdG8tb3Itc2Vs
ZiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjIxNjArLTEuMjQzNSAgICAgPyAgICAgMTQu
NDAwNistNC42MzczICAgICAgICA/IG1pZ2h0IGJlIDEuMTc4OHggc2xvd2VyCiAgIGdldC1ieS1p
ZC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDE5OSst
MC4yNjE3ICAgICA/ICAgICAgNC4xNjcwKy0wLjI1OTQgICAgICAgID8gbWlnaHQgYmUgMS4wMzY2
eCBzbG93ZXIKICAgZ2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMS40OTQ5Ky0xLjUwNTcgICAgID8gICAgIDEyLjY1NjcrLTEuNTI1OSAgICAgICAgPyBt
aWdodCBiZSAxLjEwMTF4IHNsb3dlcgogICBnZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjQ4NTArLTAuMzM0OSAgICAgICAgICAgIDUuNDcxNistMC4x
ODI3ICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjY5NjArLTAuMjMzMyAgICAgPyAgICAgIDUuNjgw
OCstMS43NjAzICAgICAgICA/IG1pZ2h0IGJlIDEuMjA5N3ggc2xvd2VyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjIyNzMr
LTEuNzUxOCAgICAgICAgICAgMTAuNjU5OCstMS4zODc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUz
MnggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi42NjEwKy0wLjA4NzggICAgID8gICAgICAzLjAyMjcrLTAuNTcwNyAgICAgICAgPyBtaWdodCBi
ZSAxLjEzNTl4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5LjM0MTgrLTEuNDc0OCAgICAgPyAgICAgMTAuMDAyNistMi4yNDc2ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDcwN3ggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTUuMjIxOCstMC40MjUwICAgICAgICAgICAxNS4x
Mjk0Ky0xLjAyMzkgICAgICAgIAogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4zOTcyKy0wLjk0NDQgICAgID8g
ICAgICA1LjU0MzkrLTAuODIyMiAgICAgICAgPyBtaWdodCBiZSAxLjAyNzJ4IHNsb3dlcgogICBn
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgIDE1LjU0OTcr
LTEuMjY0OSAgICAgICAgICAgMTQuNzkyNCstMC41NjAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDUx
MnggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC40NTM3Ky0wLjU4ODggICAgICAgICAgICA0LjA5MDUr
LTAuNDU3NyAgICAgICAgICBtaWdodCBiZSAxLjA4ODh4IGZhc3RlcgogICBnZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4xNTc4Ky0x
LjA4NDkgICAgID8gICAgIDE0LjA0MjArLTAuNzc0MSAgICAgICAgPyBtaWdodCBiZSAxLjA2NzJ4
IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NjQ1NistMC4yNjc1ICAgICA/ICAgICAgMi43OTgwKy0wLjM1MjAgICAgICAgID8gbWlnaHQgYmUg
MS4wNTc2eCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMS44NzkzKy0xLjEzNjYgICAgICAgICAgIDExLjIwNTkrLTEuMDcyOCAgICAg
ICAgICBtaWdodCBiZSAxLjA2MDF4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXBy
b3RvLW9yLXNlbGYgICAgICAgICAgICAgIDE1Ljg2NjArLTAuOTI3OSAgICAgICAgICAgMTQuNDc3
MystMC41NDQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDk1OXggZmFzdGVyCiAgIGdldC1ieS12YWwt
d2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1LjA4ODMrLTAuNTIxNSAgICAgICAgICAgIDUuMDcwNSstMC4zNjE1ICAgICAgICAKICAgZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxNS42ODQ4Ky0w
LjY3NDIgICAgICAgICAgIDE0Ljc0NzcrLTAuNTI5NiAgICAgICAgICBtaWdodCBiZSAxLjA2MzV4
IGZhc3RlcgogICBnZXRfY2FsbGVlX21vbm9tb3JwaGljICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjg0MTMrLTAuMDgwMSAgICAgPyAgICAgIDIuOTQ0MystMC4xNDY0ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM2M3ggc2xvd2VyCiAgIGdldF9jYWxsZWVfcG9seW1vcnBoaWMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuNjI2NistMC43MTgyICAgICA/ICAgICAgNC44Njg1Ky0wLjk5
NzcgICAgICAgID8gbWlnaHQgYmUgMS4wNTIzeCBzbG93ZXIKICAgZ2V0dGVyLW5vLWFjdGl2YXRp
b24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45NjM3Ky0wLjI5MzYgICAgID8gICAg
ICA0LjAwMjkrLTAuMTgyOSAgICAgICAgPwogICBnZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjIwOTMrLTAuNjQwNCAgICAgICAgICAgIDYuMDYzNyst
MC4yMzgxICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MHggZmFzdGVyCiAgIGdldHRlci1yaWNoYXJk
cy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgIDEzNjMuNTA3MCstMjkuNzkzMyAgICA/
ICAgMTM2NC45OTg3Ky0zMC4wOTY3ICAgICAgID8KICAgZ2V0dGVyLXJpY2hhcmRzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDExNC44MTQwKy0xNS43MzY5ICAgICAgICAgMTEwLjk2
ODUrLTMuNTk5OSAgICAgICAgICBtaWdodCBiZSAxLjAzNDd4IGZhc3RlcgogICBnZXR0ZXIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQzMDkrLTAuNDc0MyAg
ICAgPyAgICAgIDQuNDQ4OCstMC4zMzg0ICAgICAgICA/CiAgIGdsb2JhbC1vYmplY3QtYWNjZXNz
LXdpdGgtbXV0YXRpbmctc3RydWN0dXJlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzAyNCstMC44OTQzICAgICAgICAgICAgNi4xNDUx
Ky0wLjI5MjIgICAgICAgICAgbWlnaHQgYmUgMS4wMjU2eCBmYXN0ZXIKICAgZ2xvYmFsLXZhci1j
b25zdC1pbmZlci1maXJlLWZyb20tb3B0ICAgICAgICAgICAgICAgMC45NzI1Ky0wLjAxMDEgICAg
ID8gICAgICAxLjAyNDErLTAuMTUzMyAgICAgICAgPyBtaWdodCBiZSAxLjA1MzF4IHNsb3dlcgog
ICBnbG9iYWwtdmFyLWNvbnN0LWluZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg4
MTUrLTAuMDE4OSAgICAgPyAgICAgIDEuMjk5OCstMC45ODIwICAgICAgICA/IG1pZ2h0IGJlIDEu
NDc0NXggc2xvd2VyCiAgIGhhcmQtb3ZlcmZsb3ctY2hlY2stZXF1YWwgICAgICAgICAgICAgICAg
ICAgICAgICAgMzYuMDg0MistOC43MTg1ICAgICAgICAgICAzMS4yODU5Ky0xLjI2ODcgICAgICAg
ICAgbWlnaHQgYmUgMS4xNTM0eCBmYXN0ZXIKICAgaGFyZC1vdmVyZmxvdy1jaGVjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMy4zNDgzKy0xLjQ3MDEgICAgICAgICAgIDMxLjE1MDgr
LTEuMTI2NiAgICAgICAgICBtaWdodCBiZSAxLjA3MDV4IGZhc3RlcgogICBIYXNoTWFwLXB1dC1n
ZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAgICAgIDM0LjQ3NTArLTEuNzAzNiAgICAg
ICAgICAgMzQuNDE4MistMC45MzU1ICAgICAgICAKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzMy42MTIxKy0wLjQ1NjMgICAgICAgICAgIDMzLjU2
OTMrLTAuOTA0NSAgICAgICAgCiAgIEhhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZSAgICAg
ICAgICAgICAgICAgICAgMzcuNjA2NSstMS42ODc3ICAgICAgICAgICAzNS45OTAxKy0wLjcwNjYg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDQ5eCBmYXN0ZXIKICAgaG9pc3QtbWFrZS1yb3BlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xNTYwKy0wLjMzNjYgICAgID8gICAgICA1
LjE5NzIrLTAuNTE0NiAgICAgICAgPwogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZl
Y3RmdWwtbG9vcCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjA2MDArLTAuMjAxOSAgICAgPyAgICAgIDQuMTM0MistMC4zMTkxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE4M3ggc2xvd2VyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJl
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTMyNCstMC4yNjEzICAgICAgICAgICAgMi43NjAx
Ky0wLjA4MTMgICAgICAgICAgbWlnaHQgYmUgMS4wNjI0eCBmYXN0ZXIKICAgaW11bC1kb3VibGUt
b25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42Nzk5Ky0xLjM2MjIgICAg
ICAgICAgICA0LjMyOTMrLTAuNjA1MyAgICAgICAgICBtaWdodCBiZSAxLjA4MTB4IGZhc3Rlcgog
ICBpbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljgx
NzcrLTEuNDY4NyAgICAgICAgICAgIDYuMTc3MistMC4zNDczICAgICAgICAgIG1pZ2h0IGJlIDEu
MTAzN3ggZmFzdGVyCiAgIGltdWwtbWl4ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuMzU5MCstMS4wNzcxICAgICAgICAgICAgMy45MDczKy0wLjE0ODEgICAgICAg
ICAgbWlnaHQgYmUgMS4xMTU2eCBmYXN0ZXIKICAgaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyMy41MjU5Ky0wLjg4NTQgICAgICAgICAgIDIzLjI3NDEr
LTIuMDU5MyAgICAgICAgICBtaWdodCBiZSAxLjAxMDh4IGZhc3RlcgogICBpbi1vbmUtY2FzZS1m
YWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjYyNDcrLTAuNzYwMCAgICAg
PyAgICAgMTEuNzcwNistMC41NTk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2VyCiAg
IGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMDAz
MistMC42OTI2ICAgICAgICAgICAxMS41MDA4Ky0wLjM4NDQgICAgICAgICAgbWlnaHQgYmUgMS4w
NDM3eCBmYXN0ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMi40Mzk1Ky0wLjQyNjAgICAgICAgICAgIDExLjg3MDcrLTAuNjU1NyAgICAgICAg
ICBtaWdodCBiZSAxLjA0Nzl4IGZhc3RlcgogICBpbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0
cyAgICAgICAgICAgICAgICAgICAgICAzLjc5NzErLTAuMjgxNyAgICAgPyAgICAgIDMuODYxNSst
MC40MjczICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3MHggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUt
Y29uc3QtdGhlbi1tb3Ytbm8taW5saW5lICAgICAgICAgICAgIDQuMjI5MystMC4zMjc2ICAgICA/
ICAgICAgNC4yMzA4Ky0wLjUxNTcgICAgICAgID8KICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LW1vdiAgICAgICAgICAgICAgICAgICAgICAgOS4yNzI5Ky0wLjQ2MDMgICAgICAgICAgICA5LjI2
NjYrLTAuNjEzMyAgICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2Nv
cGUtbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTMuODE0MCstMC43ODY1ICAgICA/ICAgICAxNC4xMzc4Ky0wLjYzODAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjM0eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LXB1dC10by1zY29wZSAgICAgICAgICAgICAzMS43MzY4Ky0yLjA5ODcgICAgICAgICAgIDMwLjg0
NzUrLTEuODM1NCAgICAgICAgICBtaWdodCBiZSAxLjAyODh4IGZhc3RlcgogICBpbmZlci1jbG9z
dXJlLWNvbnN0LXRoZW4tcmVlbnRlci1uby1pbmxpbmUgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OC45NzgxKy0yLjU5ODMgICAgID8gICAg
IDcxLjM4MTkrLTMuNTgyNiAgICAgICAgPyBtaWdodCBiZSAxLjAzNDh4IHNsb3dlcgogICBpbmZl
ci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlciAgICAgICAgICAgICAgICAgIDMwLjc5OTQrLTIu
MjkyNSAgICAgICAgICAgMzAuNDM4NCstMi4wMTQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExOXgg
ZmFzdGVyCiAgIGluZmVyLWNvbnN0YW50LWdsb2JhbC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAg
ICAgIDQuNjMxOSstMC41MDMxICAgICAgICAgICAgNC42MjYwKy0wLjQxNDAgICAgICAgIAogICBp
bmZlci1jb25zdGFudC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA0MzYr
LTAuMTcyMiAgICAgICAgICAgIDIuOTUzMSstMC4xMTk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMw
NnggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdGVuLXZhcnMgICAgICAgICAgICAg
ICAgICAgIDguNjE5NystMC4zMjg3ICAgICA/ICAgICAgOC42NjYwKy0wLjI4MzcgICAgICAgID8K
ICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10d28tdmFycyAgICAgICAgICAgICAgICAgICAgOC4w
NjUxKy0wLjM1NTkgICAgID8gICAgICA4LjI5OTArLTAuNDkwMSAgICAgICAgPyBtaWdodCBiZSAx
LjAyOTB4IHNsb3dlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3LjkwNTkrLTAuMTIwNCAgICAgPyAgICAgIDguMDQ3NSstMC4yNDU1ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCiAgIGluZmVyLW9uZS10aW1lLWRlZXAtY2xvc3Vy
ZSAgICAgICAgICAgICAgICAgICAgICAgMTUuNTE1MSstMC40MjgwICAgICAgICAgICAxNS4wMzM3
Ky0wLjQzNTQgICAgICAgICAgbWlnaHQgYmUgMS4wMzIweCBmYXN0ZXIKICAgaW5saW5lLWFyZ3Vt
ZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMzU4Ky0wLjczMDMgICAg
ICAgICAgICA0LjgwNzkrLTAuMjMyNCAgICAgICAgICBtaWdodCBiZSAxLjA2ODJ4IGZhc3Rlcgog
ICBpbmxpbmUtYXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzICAgICAgICAgICAgICAgICAgICA1LjA1
NTUrLTAuNzcwMSAgICAgICAgICAgIDUuMDM2NSstMC43OTMxICAgICAgICAKICAgaW5saW5lLWFy
Z3VtZW50cy1sb2NhbC1lc2NhcGUgICAgICAgICAgICAgICAgICAgICAgNi4xMjA5Ky0zLjU2ODIg
ICAgICAgICAgICA1LjE1NTUrLTAuNjg4MyAgICAgICAgICBtaWdodCBiZSAxLjE4NzN4IGZhc3Rl
cgogICBpbmxpbmUtZ2V0LXNjb3BlZC12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjI5MDMrLTAuMzAxMSAgICAgICAgICAgIDMuMDM5OSstMC4wNzg3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDgyNHggZmFzdGVyCiAgIGlubGluZWQtcHV0LWJ5LWlkLXRyYW5zaXRpb24gICAgICAgICAg
ICAgICAgICAgICAgMTIuMjk4MSstMC45OTM4ICAgICAgICAgICAxMi4wNDUyKy0wLjkyMjIgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjEweCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgt
c3RyaW5nLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1NS4yNzMwKy0wLjg4NDkgICAgID8gICAgIDU1LjgwMzArLTEuNjE5
OSAgICAgICAgPwogICBpbmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zeW1ib2wtdHJhbnNpdGlvbiAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2
LjQwODMrLTEuMTg2OCAgICAgPyAgICAgNTcuNzM5NystMy41NzQ0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIzNnggc2xvd2VyCiAgIGluc3RhbmNlb2YtYm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjguMDI3NistMi4wMzMwICAgICAgICAgICAyNy42NTIzKy0xLjEyNDYgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTM2eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS41NzEyKy0wLjE4MzcgICAgID8gICAgICA1Ljkw
MjIrLTAuNTA3MCAgICAgICAgPyBtaWdodCBiZSAxLjA1OTR4IHNsb3dlcgogICBpbnQtb3Itb3Ro
ZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgIDIyLjY4NjQrLTIuODI4MSAg
ICAgPyAgICAgMjQuMjM1MystMy43NjkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDY4M3ggc2xvd2Vy
CiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDUu
NDMyMystMC4xMjYzICAgICA/ICAgICAgNS43ODMyKy0wLjQ1OTQgICAgICAgID8gbWlnaHQgYmUg
MS4wNjQ2eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLWFkZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi40MjIwKy0wLjQ3NzggICAgID8gICAgICA2LjY0NDArLTAuNTQ0MyAgICAg
ICAgPyBtaWdodCBiZSAxLjAzNDZ4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA0Ljg0NDYrLTAuMTYwNiAgICAgICAgICAgIDQuNzg3
MistMC4xOTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMHggZmFzdGVyCiAgIGludC1vci1vdGhl
ci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDUuMTM5NSstMC41MzY2ICAg
ICA/ICAgICAgNS40MjcwKy0wLjkyMzQgICAgICAgID8gbWlnaHQgYmUgMS4wNTU5eCBzbG93ZXIK
ICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC42
OTM4Ky0wLjA3MjggICAgID8gICAgICA0Ljc1OTErLTAuMTkxNyAgICAgICAgPyBtaWdodCBiZSAx
LjAxMzl4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAg
ICAgICAgICAgICA1LjEwOTUrLTEuMTg5NCAgICAgICAgICAgIDQuNDYxMCstMC4zOTQwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMTQ1NHggZmFzdGVyCiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgIDQuNzY0OSstMC4zMDI2ICAgICAgICAgICAgNC42MzUz
Ky0wLjE1NjEgICAgICAgICAgbWlnaHQgYmUgMS4wMjgweCBmYXN0ZXIKICAgaW50LW9yLW90aGVy
LW5lZy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS41NTg1Ky0wLjU5NzggICAg
ICAgICAgICA1LjM0NzMrLTAuMjI5MiAgICAgICAgICBtaWdodCBiZSAxLjAzOTV4IGZhc3Rlcgog
ICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgIDIwLjk4
NDArLTEuMjEyNSAgICAgPyAgICAgMjEuNTg4NCstMS4xMDk5ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDI4OHggc2xvd2VyCiAgIGludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgIDUuMjI0NistMC4xMDE2ICAgICA/ICAgICAgNS4zMDUxKy0wLjEzOTQgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTU0eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLXN1YiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC42Mzk2Ky0wLjQ3NjMgICAgICAgICAgICA0LjQ0NzYr
LTAuMTc3NiAgICAgICAgICBtaWdodCBiZSAxLjA0MzJ4IGZhc3RlcgogICBpbnQtb3ZlcmZsb3ct
bG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjI2NDMrLTAuMzMwOSAgICAg
PyAgICAgIDYuODg2MCstMy45OTE4ICAgICAgICA/IG1pZ2h0IGJlIDEuMzA4MHggc2xvd2VyCiAg
IEludDE2QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgNjAuOTMx
MystMi4yNjc0ICAgICAgICAgICA2MC40NzAwKy0yLjE0MDQgICAgICAgIAogICBJbnQxNkFycmF5
LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgIDIzLjg0NDgrLTAuOTU5OSAg
ICAgPyAgICAgMjMuODQ3MistMi4xOTE1ICAgICAgICA/CiAgIEludDE2QXJyYXktYnViYmxlLXNv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNjAwMystMi4yMDg5ICAgICA/ICAgICAy
My42NjM5Ky0wLjYyNzQgICAgICAgID8KICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi4wMjE1Ky0wLjEwMTcgICAgID8gICAgICAyLjEyNTQrLTAu
MjcyOSAgICAgICAgPyBtaWdodCBiZSAxLjA1MTR4IHNsb3dlcgogICBJbnQxNkFycmF5LXRvLUlu
dDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDYxLjQ0NTkrLTIuMzIzOSAgICAgICAg
ICAgNjAuMzMzNistMS43MDk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NHggZmFzdGVyCiAgIElu
dDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNzM1OCst
MC45ODEzICAgICA/ICAgICAxNi4zNjYyKy0xLjA4MDUgICAgICAgID8gbWlnaHQgYmUgMS4wNDAx
eCBzbG93ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAg
ICAgICA2Ny4yOTU3Ky0xLjAxMjYgICAgID8gICAgIDY4LjI5MjYrLTMuNjQ5MCAgICAgICAgPyBt
aWdodCBiZSAxLjAxNDh4IHNsb3dlcgogICBJbnQzMkFycmF5LWFsbG9jICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjgyNzYrLTAuNzc1NiAgICAgICAgICAgIDMuNjA2NCstMC4z
MDUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDYxM3ggZmFzdGVyCiAgIEludDMyQXJyYXktSW50OEFy
cmF5LXZpZXctYWxsb2MgICAgICAgICAgICAgICAgICAgMTAuMjg1MistMS43OTA1ICAgICAgICAg
ICAxMC4xNjU0Ky0xLjE3ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMTE4eCBmYXN0ZXIKICAgaW50
NTItc3BpbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43MDc0Ky0w
LjMwMjEgICAgID8gICAgICA2LjcxMzErLTAuNDI0NCAgICAgICAgPwogICBJbnQ4QXJyYXktYWxs
b2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgIDU0LjUzNjgrLTEuNDI3NCAgICAg
ICAgICAgNTQuMzIyNistMS4yNzI5ICAgICAgICAKICAgSW50OEFycmF5LWxvYWQtd2l0aC1ieXRl
TGVuZ3RoICAgICAgICAgICAgICAgICAgICAgNC4yOTUyKy0wLjEyOTUgICAgID8gICAgICA0LjM1
MTErLTAuMTU0MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMzB4IHNsb3dlcgogICBJbnQ4QXJyYXkt
bG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM0OTQrLTAuMjI2OSAg
ICAgPyAgICAgIDQuNjEzMSstMC40NjcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDYwNnggc2xvd2Vy
CiAgIGludGVnZXItZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMu
OTI5MystMC43NzQ0ICAgICA/ICAgICAxNC40NjI2Ky0xLjA3MzcgICAgICAgID8gbWlnaHQgYmUg
MS4wMzgzeCBzbG93ZXIKICAgaW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi4wNjc5Ky0wLjIzMDAgICAgID8gICAgICAyLjE0NTkrLTAuMzI1MiAgICAg
ICAgPyBtaWdodCBiZSAxLjAzNzd4IHNsb3dlcgogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjE0NDUrLTAuMTQwNyAgICAgPyAgICAgIDQuMzMz
OSstMC44Njk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ1N3ggc2xvd2VyCiAgIGlzLWJvb2xlYW4t
Zm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDIyNistMC4xMzAwICAg
ICAgICAgICAgMy4wMjA2Ky0wLjI4MzUgICAgICAgIAogICBpcy1mdW5jdGlvbi1mb2xkLXRyaWNr
eS1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE1LjAwMDkrLTAuNjQ2MSAgICAgICAgICAgMTQuNjU1MistMC45
NDc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzNnggZmFzdGVyCiAgIGlzLWZ1bmN0aW9uLWZvbGQt
dHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjczOCstMC4wMjMxICAgICA/ICAg
ICAgNC42NTY3Ky0wLjQzNDMgICAgICAgID8gbWlnaHQgYmUgMS4wODk2eCBzbG93ZXIKICAgaXMt
ZnVuY3Rpb24tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wNDA0Ky0w
LjE3MjggICAgICAgICAgICAyLjk2MzUrLTAuMDcyNiAgICAgICAgICBtaWdodCBiZSAxLjAyNjB4
IGZhc3RlcgogICBpcy1udW1iZXItZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjMxNTMrLTAuMjk2NSAgICAgICAgICAgIDQuMjQ1NSstMC4wODMyICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE2NHggZmFzdGVyCiAgIGlzLW51bWJlci1mb2xkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTc4MystMC4wOTg2ICAgICA/ICAgICAgMi45OTY2Ky0wLjE1
OTQgICAgICAgID8KICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC1mdW5jdGlvbnMgICAgICAgICAg
ICAgICAgICAgMy4wOTExKy0wLjEzNTcgICAgICAgICAgICAzLjA2MTYrLTAuMTQ2NiAgICAgICAg
CiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtbGVzcy10cmlja3kgICAgICAgICAgICAgICAgIDQu
MjgwNistMC4wNTkwICAgICA/ICAgICAgNS4wMzgyKy0xLjA4NTUgICAgICAgID8gbWlnaHQgYmUg
MS4xNzcweCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC10cmlja3kgICAgICAgICAg
ICAgICAgICAgICAgNC42ODY5Ky0wLjMwMDUgICAgICAgICAgICA0LjYwOTcrLTAuMTMxNSAgICAg
ICAgICBtaWdodCBiZSAxLjAxNjh4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA3MjMrLTAuMTYyOCAgICAgICAgICAgIDMuMDUw
MystMC4xOTczICAgICAgICAKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24g
ICAgICAgICAgICAgICAgNC40NDgxKy0wLjI5OTMgICAgID8gICAgICA0LjYxNzUrLTAuMjY2OSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzODF4IHNsb3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlj
a2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE0LjIzMDkrLTAuNDE3MiAgICAgPyAgICAgMTQuNzgxOCst
MC43ODQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4N3ggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1u
dWxsLXRyaWNreS1mdW5jdGlvbiAgICAgICAgICAgICAgICAgIDQuNDk4NSstMC40NjY2ICAgICAg
ICAgICAgNC40MTE5Ky0wLjEzOTAgICAgICAgICAgbWlnaHQgYmUgMS4wMTk2eCBmYXN0ZXIKICAg
aXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDIzMCstMC4zOTk1
ICAgICA/ICAgICAgOS40NzU2Ky0wLjkyNDMgICAgICAgID8KICAgaXMtc3RyaW5nLWZvbGQtdHJp
Y2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MTA0Ky0wLjQzNjkgICAgICAgICAg
ICA0LjUxNzYrLTAuNjA2NSAgICAgICAgICBtaWdodCBiZSAxLjAyMDV4IGZhc3RlcgogICBpcy1z
dHJpbmctZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkwNzMrLTAu
MDQ3MCAgICAgPyAgICAgIDMuMTk1NCstMC40OTc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDk5MXgg
c2xvd2VyCiAgIGlzLXVuZGVmaW5lZC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNzE4NSstMC4xMTc4ICAgICA/ICAgICAgMy45NzczKy0wLjQ4NTUgICAgICAgID8gbWln
aHQgYmUgMS4wNjk2eCBzbG93ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi45Mjg1Ky0wLjAyOTYgICAgID8gICAgICAzLjAwMzcrLTAuMTUz
MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTZ4IHNsb3dlcgogICBKU09OUC1uZWdhdGl2ZS0wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM1MjgrLTAuMDE3NCAgICAgPyAgICAg
IDAuMzgxNistMC4wMzk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgxN3ggc2xvd2VyCiAgIGxhcmdl
LWludC1jYXB0dXJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzIyNystMC40
NTgxICAgICAgICAgICAgMy41NzA0Ky0wLjI4ODggICAgICAgICAgbWlnaHQgYmUgMS4wNDI3eCBm
YXN0ZXIKICAgbGFyZ2UtaW50LW5lZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNy44NDYwKy0xLjgxMTYgICAgICAgICAgIDE3LjA3NDArLTAuODMxOCAgICAgICAgICBtaWdo
dCBiZSAxLjA0NTJ4IGZhc3RlcgogICBsYXJnZS1pbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE1LjYyNzIrLTAuMzExNyAgICAgPyAgICAgMTYuOTI1MCstMS4xNTU0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgzMHggc2xvd2VyCiAgIGxvYWQtdmFyYXJncy1lbGltaW5h
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgMjguMjg5OCstNC4zMzcwICAgICA/ICAgICAy
OS4yMTM5Ky01LjkxMTUgICAgICAgID8gbWlnaHQgYmUgMS4wMzI3eCBzbG93ZXIKICAgbG9naWNh
bC1ub3Qtd2VpcmQtdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43OTA5Ky0wLjk3
MzAgICAgICAgICAgICAzLjU0OTMrLTAuMTI0NSAgICAgICAgICBtaWdodCBiZSAxLjA2ODF4IGZh
c3RlcgogICBsb2dpY2FsLW5vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0Ljk0NjMrLTAuMTIyMyAgICAgPyAgICAgIDUuNDIyNCstMC44NzQwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDk2Mnggc2xvd2VyCiAgIGxvdHMtb2YtZmllbGRzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTIuNDk1NCstMS4wMjQyICAgICAgICAgICAxMi4xNzkyKy0wLjc5OTYg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjYweCBmYXN0ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41MTkyKy0wLjYzMTYgICAgID8gICAgICAz
LjUyNTYrLTAuNDMyMiAgICAgICAgPwogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjQ0MzgrLTAuMjMwOCAgICAgPyAgICAgIDUuNTg1NistMC43
MjkxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2MHggc2xvd2VyCiAgIG1hbnktcmVwZWF0LXN0b3Jl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuNjQwNSstMC42MzkzICAgICAgICAg
ICAyMS4zNDU3Ky0wLjkyOTIgICAgICAgICAgbWlnaHQgYmUgMS4wMTM4eCBmYXN0ZXIKICAgbWFw
LWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi41NTEyKy0w
LjE3MjMgICAgID8gICAgICA2LjYxMTArLTAuNDUwMCAgICAgICAgPwogICBtYXAtZm9yLW9mICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjEwODUrLTAuOTAxNyAgICAg
ICAgICAgMjAuOTgzMistMS4wOTA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUzNnggZmFzdGVyCiAg
IG1hcnNhZ2xpYS1sYXJnZXItaW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDIuMTU1
OCstMS4yNzA2ICAgICAgICAgICA0MS43OTI4Ky0xLjQ0NzAgICAgICAgIAogICBtYXJzYWdsaWEt
b3NyLWVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjg0OTQrLTAuNzc1NiAg
ICAgPyAgICAgMjMuNTA1MCstMS41NTE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI4N3ggc2xvd2Vy
CiAgIG1hdGgtcmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTku
MzcxOCstMS4wNDIyICAgICA/ICAgICAxOS43ODc2Ky0wLjc1ODQgICAgICAgID8gbWlnaHQgYmUg
MS4wMjE1eCBzbG93ZXIKICAgbWF0aC13aXRoLW91dC1vZi1ib3VuZHMtYXJyYXktdmFsdWVzICAg
ICAgICAgICAgICAzOC4xNDY3Ky0zLjE2NzIgICAgID8gICAgIDM4LjI3NDYrLTEuNjIwMSAgICAg
ICAgPwogICBtYXgtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjk5NTgrLTAuMDc0OSAgICAgICAgICAgIDIuOTgyNistMC4xMTU1ICAgICAgICAKICAgbWV0
aG9kLW9uLW51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS45OTE1Ky0w
LjU0MTIgICAgICAgICAgIDIxLjQ4MDQrLTAuNzI3NiAgICAgICAgICBtaWdodCBiZSAxLjAyMzh4
IGZhc3RlcgogICBtaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjAwOTcrLTAuMTMxMCAgICAgPyAgICAgIDMuMDc3OCstMC4xODc5ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIyNnggc2xvd2VyCiAgIG1pbnVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMDUwOCstMC4wNDIwICAgICA/ICAgICAgMy4zNTcxKy0wLjM5
NzUgICAgICAgID8gbWlnaHQgYmUgMS4xMDA0eCBzbG93ZXIKICAgbWludXMtYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44Mzk4Ky0wLjI4NDkgICAgICAgICAg
ICAyLjgwNjIrLTAuMTcxNiAgICAgICAgICBtaWdodCBiZSAxLjAxMjB4IGZhc3RlcgogICBtaXNj
LXN0cmljdC1lcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3LjEzOTQrLTEu
NjU0NyAgICAgICAgICAgMjYuNjc1OSstMS45MzQ1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3NHgg
ZmFzdGVyCiAgIG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTIuNzE5NSstMS4zNDU1ICAgICA/ICAgICAxMi44NTg3Ky0wLjcxMTggICAgICAgID8gbWln
aHQgYmUgMS4wMTA5eCBzbG93ZXIKICAgbW9kLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS4yMjQwKy0wLjM0MzQgICAgICAgICAgICA5LjE5NTkrLTAuNDA1
NCAgICAgICAgCiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuNTk3OSstMC4xMTgwICAgICA/ICAgICAgMy43ODg5Ky0wLjY0MzYgICAgICAgID8g
bWlnaHQgYmUgMS4wNTMxeCBzbG93ZXIKICAgbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4yNDcxKy0wLjEwMjggICAgID8gICAgICAzLjI3NjYrLTAu
MjU1MiAgICAgICAgPwogICBuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjQ5NTYrLTAuNTgzNSAgICAgPyAgICAgIDMuNTMxNystMC40MzQ5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDEwM3ggc2xvd2VyCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTEzMistMC4wMjM4ICAgICAgICAgICAgMC41MTIw
Ky0wLjA0MzYgICAgICAgIAogICBuZWdhdGl2ZS16ZXJvLW1vZHVsbyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjUyNzkrLTAuMDQyMyAgICAgICAgICAgIDAuNDgxNSstMC4wMDc3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDk2M3ggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8tbmVnYXRlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDczOCstMC4wMjU5ICAgICAgICAgICAgMC40
NjkyKy0wLjAyMDYgICAgICAgIAogICBuZXN0ZWQtZnVuY3Rpb24tcGFyc2luZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQzLjY2NDkrLTAuNjUwOSAgICAgPyAgICAgNDQuMjM3MystMS40ODA0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMXggc2xvd2VyCiAgIG5ldy1hcnJheS1idWZmZXItZGVh
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTYuNjAzNystMS4wNTIwICAgICA/ICAgIDEx
Ni44MzQ4Ky0xLjgxODYgICAgICAgID8KICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNy42NzI5Ky0wLjUxMDAgICAgID8gICAgICA3LjkyNTErLTAu
NzMyMSAgICAgICAgPyBtaWdodCBiZSAxLjAzMjl4IHNsb3dlcgogICBuZXctYXJyYXktZGVhZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjUxOTQrLTAuMzc5MiAgICAgXiAg
ICAgIDkuMDQyNSstMC4wODUxICAgICAgICBeIGRlZmluaXRlbHkgMS4wNTI3eCBmYXN0ZXIKICAg
bmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MjEx
Ky0wLjIzMjEgICAgICAgICAgICA0LjQ1ODYrLTAuMTEyMCAgICAgICAgICBtaWdodCBiZSAxLjAz
NjR4IGZhc3RlcgogICBuby1pbmxpbmUtY29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQxLjU4ODUrLTEuNjY5OSAgICAgICAgICAgNDEuMTA0NSstMC43ODYyICAgICAgICAg
IG1pZ2h0IGJlIDEuMDExOHggZmFzdGVyCiAgIG51bWJlci10ZXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuNDcyNCstMC41NDk2ICAgICA/ICAgICAgNC41NTg5Ky0w
LjU4MjggICAgICAgID8gbWlnaHQgYmUgMS4wMTk0eCBzbG93ZXIKICAgb2JqZWN0LWNsb3N1cmUt
Y2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45NzM3Ky0wLjA1NTEgICAgID8g
ICAgICA2LjA2MjErLTAuMjMyNSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDh4IHNsb3dlcgogICBv
YmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLW9uLWxhcmdlLWFycmF5ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDM5MSstMC4x
MzE2ICAgICAgICAgICAgMS4wMTc5Ky0wLjE0MTIgICAgICAgICAgbWlnaHQgYmUgMS4wMjA4eCBm
YXN0ZXIKICAgb2JqZWN0LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC40NTU1Ky0wLjY0ODEgICAgICAgICAgICA0LjI3NzQrLTAuNDM5NCAgICAgICAgICBtaWdo
dCBiZSAxLjA0MTZ4IGZhc3RlcgogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5LXRha2VuICAgICAg
ICAgICAgICAgICAgICAgMTYwLjk5MDQrLTUuNjQzNiAgICAgICAgICAxNTkuMDU3MistMS40Mzkw
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMnggZmFzdGVyCiAgIG9idmlvdXMtc2luay1wYXRob2xv
Z3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNTYyMCstMS4yNjM0ICAgICA/ICAgICAy
NC4wODE5Ky0xLjQ4NzkgICAgICAgID8gbWlnaHQgYmUgMS4wMjIxeCBzbG93ZXIKICAgb2J2aW91
c2x5LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAyMS40MjQzKy0wLjk3
NTIgICAgID8gICAgIDIxLjU5MjMrLTEuMzI3NiAgICAgICAgPwogICBwbHVzLWJvb2xlYW4tYXJp
dGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjgyODUrLTAuMDMzOCAgICAgPyAg
ICAgIDIuODk0MCstMC4xMDI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzMnggc2xvd2VyCiAgIHBs
dXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTg4OCst
MC45MDcwICAgICAgICAgICAgMy4xMDYyKy0wLjA4NTEgICAgICAgICAgbWlnaHQgYmUgMS4xNTU0
eCBmYXN0ZXIKICAgcGx1cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi43NjIzKy0wLjE1MTcgICAgID8gICAgICAyLjc5NzYrLTAuMTA2NSAgICAgICAgPyBt
aWdodCBiZSAxLjAxMjh4IHNsb3dlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJlbnQtcHJv
dG90eXBlcy1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy40Mjc0Ky0wLjE1MzEgICAgICAgICAgICAzLjMwNDIrLTAuMTMxNyAg
ICAgICAgICBtaWdodCBiZSAxLjAzNzN4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZm
ZXJlbnQtcHJvdG90eXBlcyAgICAgICAgICAgICAzLjQ2MjUrLTAuMjE2MSAgICAgPyAgICAgIDMu
Njk3MystMC42NTIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDY3OHggc2xvd2VyCiAgIHBvbHktY2hh
aW4tYWNjZXNzLXNpbXBsZXIgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDk1MistMC4zNTUz
ICAgICA/ICAgICAgMy45OTc0Ky0wLjkwNDQgICAgICAgID8gbWlnaHQgYmUgMS4xNDM3eCBzbG93
ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My4zMjg3Ky0wLjIyMTMgICAgID8gICAgICAzLjQwMDcrLTAuNDY1NCAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMTZ4IHNsb3dlcgogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcwLjQ0OTQrLTUuMDg4OSAgICAgPyAgICAgNzIuNDU2NSstMi4zNTk1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI4NXggc2xvd2VyCiAgIHBvbHltb3JwaGljLWFycmF5LWNhbGwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODM5MSstMC41MTgwICAgICAgICAgICAgMS42
NTM5Ky0wLjA3NTMgICAgICAgICAgbWlnaHQgYmUgMS4xMTIweCBmYXN0ZXIKICAgcG9seW1vcnBo
aWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41OTU0Ky0wLjEwMjMg
ICAgICAgICAgICAyLjUxMzErLTAuMDk3OSAgICAgICAgICBtaWdodCBiZSAxLjAzMjh4IGZhc3Rl
cgogICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2
LjkwNTYrLTIuMTc4MSAgICAgICAgICAgMzQuOTQwMistMS4zODk1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDU2M3ggZmFzdGVyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwtd2l0aC1zdHJpbmcgICAg
ICAgICAgICAgICAgMzUuMjc1NystMS4yMzkyICAgICA/ICAgICAzNS44NjIxKy0xLjk1NjMgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13
aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAzNC45MDA4Ky0xLjk3NjUgICAgID8gICAgIDM1LjAy
MjMrLTIuNDEzOCAgICAgICAgPwogICBwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE2Ljk1ODIrLTEuNzI2MiAgICAgICAgICAgMTYuNjIxNSstMC40Nzkz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwM3ggZmFzdGVyCiAgIHBvbHl2YXJpYW50LW1vbm9tb3Jw
aGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgIDQuOTU5NSstMC4yMzU3ICAgICA/ICAgICAg
NC45NjAyKy0wLjQ2NTYgICAgICAgID8KICAgcHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNC4yOTc3Ky0wLjMwNTIgICAgID8gICAgIDE1LjcxOTUrLTEu
NjYxOCAgICAgICAgPyBtaWdodCBiZSAxLjA5OTR4IHNsb3dlcgogICBwcm90b3R5cGUtYWNjZXNz
LXdpdGgtbXV0YXRpbmctcHJvdG90eXBlICAgICAgICAgICA1LjU0NDUrLTAuMjA3MCAgICAgPyAg
ICAgIDUuNzA2NystMC4yNzIyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5M3ggc2xvd2VyCiAgIHB1
dC1ieS1pZC1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgMTAuNzAyMCst
MS40NjA0ICAgICAgICAgICAgOS42NzA4Ky0wLjgyOTMgICAgICAgICAgbWlnaHQgYmUgMS4xMDY2
eCBmYXN0ZXIKICAgcHV0LWJ5LWlkLXNsaWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAg
ICAgICAgMy4zNzMyKy0wLjEyMTggICAgICAgICAgICAzLjMwMDQrLTAuMDUyNiAgICAgICAgICBt
aWdodCBiZSAxLjAyMjB4IGZhc3RlcgogICBwdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE0LjI3NzkrLTAuNjMyMyAgICAgICAgICAgMTQuMTQ2MCstMC4z
MTUxICAgICAgICAKICAgcHV0LWJ5LXZhbC1kaXJlY3QgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC44MzIyKy0wLjUyNTcgICAgICAgICAgICAwLjU3MjUrLTAuMDc0OSAgICAgICAg
ICBtaWdodCBiZSAxLjQ1MzZ4IGZhc3RlcgogICBwdXQtYnktdmFsLWxhcmdlLWluZGV4LWJsYW5r
LWluZGV4aW5nLXR5cGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi43MDE5Ky0wLjI0NDkgICAgID8gICAgICA2Ljg5MjMrLTAuNTgxMyAg
ICAgICAgPyBtaWdodCBiZSAxLjAyODR4IHNsb3dlcgogICBwdXQtYnktdmFsLW1hY2hpbmUtaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU0OTErLTAuNjM3MCAgICAgICAgICAgIDMu
MDEzOCstMC4wNzU1ICAgICAgICAgIG1pZ2h0IGJlIDEuMTc3NnggZmFzdGVyCiAgIHB1dC1ieS12
YWwtd2l0aC1zdHJpbmctcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjUxNjgrLTAuMzI2MCAgICAg
PyAgICAgMTYuODAwMystMC45MDIwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3Mnggc2xvd2VyCiAg
IHB1dC1ieS12YWwtd2l0aC1zdHJpbmctc2xpZ2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MjgxKy0wLjUw
NzYgICAgID8gICAgICA1LjA1MjkrLTAuMzc3MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTN4IHNs
b3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE1LjAxODYrLTAuOTU0MCAgICAgPyAgICAgMTUuMzE0NSstMC41NzA5ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE5N3ggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wtcmVwbGFjZS1hbmQt
dHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE1LjcwNDUrLTEuMTEwMyAgICAgPyAgICAgMTYuMDU2NCstMC44OTY3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIyNHggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wtc2xp
Z2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy45OTAwKy0wLjA4MzkgICAgID8gICAgICA0LjQ2MTUrLTEuNTgy
OCAgICAgICAgPyBtaWdodCBiZSAxLjExODJ4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3lt
Ym9sICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjU3MjgrLTAuOTAzNCAgICAgPyAgICAg
MTcuMTI0MistNC41MjE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDk5Nnggc2xvd2VyCiAgIHJhcmUt
b3NyLWV4aXQtb24tbG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuMTgyOCstMC44
MTA1ICAgICA/ICAgICAxNi41NDA0Ky0wLjk2NTIgICAgICAgID8gbWlnaHQgYmUgMS4wMjIxeCBz
bG93ZXIKICAgcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAg
ICAgOS4wMTU2Ky0xLjE0MjIgICAgID8gICAgICA5LjM1NDErLTAuODM2NSAgICAgICAgPyBtaWdo
dCBiZSAxLjAzNzV4IHNsb3dlcgogICByYXl0cmFjZS13aXRoLXRyeS1jYXRjaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE1LjY2NDcrLTAuOTg0NyAgICAgICAgICAgMTQuODM2NistMS43NDQ4
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU1OHggZmFzdGVyCiAgIHJlZ2V4cC1leGVjICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIuMzk1MSstMi45MDYxICAgICAgICAgICA0
OS44MTA2Ky0xLjkwNTAgICAgICAgICAgbWlnaHQgYmUgMS4wNTE5eCBmYXN0ZXIKICAgcmVnZXhw
LWxhc3QtaW5kZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi43NDE2Ky0xLjYw
NDIgICAgICAgICAgIDEyLjE0NTMrLTAuNDY4NyAgICAgICAgICBtaWdodCBiZSAxLjA0OTF4IGZh
c3RlcgogICByZWdleHAtc2V0LWxhc3QtaW5kZXggICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEyLjY3NzArLTAuNDA4NiAgICAgPyAgICAgMTIuODY0OSstMC4zNDU5ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE0OHggc2xvd2VyCiAgIHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAg
ICAgICAgICAgICAgICAgMjEuMTEwNistMC45MjM5ICAgICA/ICAgICAyMS43NDQ3Ky0wLjg1MzUg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzAweCBzbG93ZXIKICAgcmVwZWF0LW11bHRpLWdldC1ieS1v
ZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAyNS44MjM2Ky0xLjA0MDAgICAgICAgICAgIDI1
LjI5ODIrLTEuMTcxNyAgICAgICAgICBtaWdodCBiZSAxLjAyMDh4IGZhc3RlcgogICByaWNoYXJk
cy1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgIDcwLjY1NTcrLTIuMTg5
NiAgICAgICAgICAgNjguNjQ3NSstMS4wNDc2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5M3ggZmFz
dGVyCiAgIHJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
OTguODc4NSstNC4yMTU2ICAgICAgICAgIDI5Ny43MzM2Ky00LjkyNDkgICAgICAgIAogICBzZXQt
Zm9yLWVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjEzMTgrLTAu
NzkzMCAgICAgPyAgICAgIDYuMTYyMystMC4xNTc3ICAgICAgICA/CiAgIHNldC1mb3Itb2YgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuOTIzNSstMC45NTQxICAgICAg
ICAgICAxMC4zNzM3Ky0wLjQ2NjQgICAgICAgICAgbWlnaHQgYmUgMS4wNTMweCBmYXN0ZXIKICAg
c2V0dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4zODIy
Ky0xLjExNDYgICAgICAgICAgICA2LjAyMTkrLTAuMjg5OSAgICAgICAgICBtaWdodCBiZSAxLjA1
OTh4IGZhc3RlcgogICBzZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjM0MjgrLTAuNjg2NCAgICAgPyAgICAgIDQuNTMxMystMC44OTMzICAgICAgICA/
IG1pZ2h0IGJlIDEuMDQzNHggc2xvd2VyCiAgIHNpbXBsZS1hY3RpdmF0aW9uLWRlbW8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzAuNTgyOCstMS42MTQ1ICAgICAgICAgICAzMC4zMTA4Ky0x
LjkwMjEgICAgICAgIAogICBzaW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIyLjY1NjMrLTEuMzA2MCAgICAgPyAgICAgMjMuMDUyNistMS41NzkzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE3NXggc2xvd2VyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDUuNjcxMystMC4zNDQ5ICAgICAgICAgICAgNS41MTgz
Ky0wLjQ3NjUgICAgICAgICAgbWlnaHQgYmUgMS4wMjc3eCBmYXN0ZXIKICAgc2ltcGxlLXBvbHkt
Y2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45NTc5Ky0wLjU0NTAgICAg
ICAgICAgICAxLjY4ODYrLTAuMDE5NCAgICAgICAgICBtaWdodCBiZSAxLjE1OTR4IGZhc3Rlcgog
ICBzaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjM1
NDIrLTAuMzQwNyAgICAgPyAgICAgIDguNzExMSstMC40ODQ3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDQyN3ggc2xvd2VyCiAgIHNpbmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNzkuMTgxNCstMy4yNjM5ICAgICA/ICAgICA4MC4yNDg0Ky0yLjMxNDMgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTM1eCBzbG93ZXIKICAgc2luay1mdW5jdGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOC41NDAyKy0wLjMzNzcgICAgID8gICAgICA4LjkwMDkr
LTAuODk4OCAgICAgICAgPyBtaWdodCBiZSAxLjA0MjJ4IHNsb3dlcgogICBzaW5rLWh1Z2UtYWN0
aXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjAxMzIrLTEuMTY3MSAgICAg
ICAgICAgMTYuMDI1NSstMC45MTMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDYxNnggZmFzdGVyCiAg
IHNpbmthYmxlLW5ldy1vYmplY3QtZGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgNTMuMDI3
NystMS45MDMyICAgICA/ICAgICA1My42MzY0Ky0xLjI2ODYgICAgICAgID8gbWlnaHQgYmUgMS4w
MTE1eCBzbG93ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC10YWtlbiAgICAgICAgICAgICAgICAg
ICAgICAgICA0Ny41MTY2Ky0yLjI4OTQgICAgICAgICAgIDQ0LjYzNDYrLTEuMTEzOSAgICAgICAg
ICBtaWdodCBiZSAxLjA2NDZ4IGZhc3RlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI0LjQ3MDkrLTEuNjcyNCAgICAgICAgICAgMjMuOTM5NSst
MS45MjYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyMnggZmFzdGVyCiAgIHNsb3ctYXJyYXktcHJv
ZmlsZS1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgIDMuNzE3MistMC41NDA1ICAgICA/
ICAgICAgMy44NTQ3Ky0wLjg3NzAgICAgICAgID8gbWlnaHQgYmUgMS4wMzcweCBzbG93ZXIKICAg
c2xvdy1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zMTMw
Ky0wLjIyMzQgICAgID8gICAgICAzLjM1NDYrLTAuMjgxNiAgICAgICAgPyBtaWdodCBiZSAxLjAx
MjZ4IHNsb3dlcgogICBzbG93LXRlcm5hcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE2LjcxNDErLTAuNTY2OSAgICAgPyAgICAgMTYuODc0NCstMC43MTE3ICAgICAgICA/
CiAgIHNvcnRpbmctYmVuY2htYXJrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQu
NjE3NCstMS4wMzcxICAgICAgICAgICAyNC40ODA5Ky0wLjg5NjQgICAgICAgIAogICBzcGFyc2Ut
Y29uZGl0aW9uYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkzMjUrLTAuNjE3
NSAgICAgICAgICAgIDEuNTcwMCstMC4wOTM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMjMwOXggZmFz
dGVyCiAgIHNwbGljZS10by1yZW1vdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTcuNDk5NCstMS4xMzAzICAgICA/ICAgICAxNy44Mzk0Ky0wLjcyMjQgICAgICAgID8gbWlnaHQg
YmUgMS4wMTk0eCBzbG93ZXIKICAgc3RyY2F0LWNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi44NTQ0Ky0xLjIzODMgICAgICAgICAgICA2LjQyOTgrLTAuMTQ2NCAg
ICAgICAgICBtaWdodCBiZSAxLjA2NjB4IGZhc3RlcgogICBzdHJjYXQtbGVuZ3RoLWNvbnN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljg0NjgrLTAuMzYzMSAgICAgPyAgICAgIDYu
OTYwOCstMC4zNjgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2N3ggc2xvd2VyCiAgIHN0cmluZy1j
aGFyLWNvZGUtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguMjUzNistMC41MDA2
ICAgICA/ICAgICAxOC43NTk4Ky0xLjA1OTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjc3eCBzbG93
ZXIKICAgc3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My41Mzc2Ky0xLjM5MDEgICAgICAgICAgICAyLjg0MTIrLTAuMTI3MSAgICAgICAgICBtaWdodCBi
ZSAxLjI0NTF4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjgyOTArLTAuMTA2MCAgICAgPyAgICAgIDMuMjQyOSstMS4yNjUxICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTQ2M3ggc2xvd2VyCiAgIHN0cmluZy1jb25jYXQtcGFpci1zaW1w
bGUgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzIwNistMC41NDU4ICAgICAgICAgICAgNC4w
OTc5Ky0wLjI1MzYgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ0eCBmYXN0ZXIKICAgc3RyaW5nLWNv
bmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy41NDIzKy0wLjYzNjgg
ICAgICAgICAgIDEyLjkyMDQrLTAuNDU4MyAgICAgICAgICBtaWdodCBiZSAxLjA0ODF4IGZhc3Rl
cgogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjkyNzYrLTAuNDc0MSAgICAgPyAgICAgMTAuMjk5NCstMC45MDM1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM3NHggc2xvd2VyCiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAuMTEwMCstMC44Mzc3ICAgICAgICAgICAgOS42OTY3Ky0wLjMwOTcgICAg
ICAgICAgbWlnaHQgYmUgMS4wNDI2eCBmYXN0ZXIKICAgc3RyaW5nLWVxdWFsaXR5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyNS44MjMxKy0zLjAwNjUgICAgICAgICAgIDIzLjM1
MDArLTAuODE4MiAgICAgICAgICBtaWdodCBiZSAxLjEwNTl4IGZhc3RlcgogICBzdHJpbmctZnJv
bS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjEyMTkrLTAuNTQwOSAg
ICAgPyAgICAgIDguNjY0MSstMS4wNzA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY2OHggc2xvd2Vy
CiAgIHN0cmluZy1nZXQtYnktdmFsLWJpZy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgIDYu
NTI0OSstMC41NzY3ICAgICAgICAgICAgNi4zMTAzKy0wLjkwNzQgICAgICAgICAgbWlnaHQgYmUg
MS4wMzQweCBmYXN0ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUg
ICAgICAgICAgICAgNC42MDIzKy0wLjE4NTggICAgID8gICAgICA0LjgzODcrLTAuNDI0NCAgICAg
ICAgPyBtaWdodCBiZSAxLjA1MTR4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2Yt
Ym91bmRzICAgICAgICAgICAgICAgICAgICA2LjE0MDMrLTAuMTQwNyAgICAgICAgICAgIDUuOTc4
MSstMC4zMDI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3MXggZmFzdGVyCiAgIHN0cmluZy1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzIyNistMC4xNzU2ICAg
ICAgICAgICAgMi43MTUwKy0wLjEwMTAgICAgICAgIAogICBzdHJpbmctaGFzaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjczMzErLTAuMjI1NSAgICAgICAgICAgIDIu
NjM3MistMC4xNjQ3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2NHggZmFzdGVyCiAgIHN0cmluZy1s
b25nLWlkZW50LWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgMjAuNDE0MCstMy42MTI5
ICAgICAgICAgICAxOS44ODg5Ky0xLjc4NzkgICAgICAgICAgbWlnaHQgYmUgMS4wMjY0eCBmYXN0
ZXIKICAgc3RyaW5nLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OC41MTkwKy0wLjQxNDAgICAgID8gICAgICA4Ljc3OTMrLTEuMjEwMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAzMDZ4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMwLjAxNjkrLTAuOTI3OSAgICAgXiAgICAgMjcuOTk0NCstMC45Nzk5ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4wNzIyeCBmYXN0ZXIKICAgc3RyaW5nLXJlcGxhY2UtZW1wdHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMi44Mzk4Ky0xLjc3MzkgICAgICAgICAgIDMx
LjUxOTMrLTEuMDEwMCAgICAgICAgICBtaWdodCBiZSAxLjA0MTl4IGZhc3RlcgogICBzdHJpbmct
cmVwbGFjZS1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY5LjI0NzYrLTIuMzU5
OSAgICAgPyAgICAgNzMuNzI4MSstOC4xOTQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY0N3ggc2xv
d2VyCiAgIHN0cmluZy1yZXBsYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NTIuNTU5MistMi4wODI5ICAgICA/ICAgICA1Ny41MjExKy04LjQ2OTMgICAgICAgID8gbWlnaHQg
YmUgMS4wOTQ0eCBzbG93ZXIKICAgc3RyaW5nLXJvcGUtd2l0aC1vYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMS42NzQyKy0wLjQwMTEgICAgID8gICAgIDIyLjgzMzArLTEuODI2NSAg
ICAgICAgPyBtaWdodCBiZSAxLjA1MzV4IHNsb3dlcgogICBzdHJpbmctc3ViICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjE4NDErLTMuMTk4OSAgICAgPyAgICAgNTAu
Mjk3NSstMi41ODU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTEzMnggc2xvd2VyCiAgIHN0cmluZy10
ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjgwNSstMC4zMTQw
ICAgICAgICAgICAgNC4xMzM1Ky0wLjEyMjEgICAgICAgICAgbWlnaHQgYmUgMS4wMzU1eCBmYXN0
ZXIKICAgc3RyaW5nLXRyYW5zY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
MS4zNzE1Ky0xLjU4MjkgICAgID8gICAgIDIxLjcwNzUrLTEuNDM4NSAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNTd4IHNsb3dlcgogICBzdHJpbmctdmFyLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM1LjUyNTUrLTIuMDgwNSAgICAgPyAgICAgMzUuOTg0NCstMi4xNjM2ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDEyOXggc2xvd2VyCiAgIHN0cnVjdHVyZS1ob2lzdC1vdmVyLXRy
YW5zaXRpb25zICAgICAgICAgICAgICAgICAgIDMuMDU3MCstMC4yNDI5ICAgICA/ICAgICAgMy4y
MjUzKy0wLjY1OTggICAgICAgID8gbWlnaHQgYmUgMS4wNTUxeCBzbG93ZXIKICAgc3Vic3RyaW5n
LWNvbmNhdC13ZWlyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OS42MDQ2Ky0zLjIzNjUg
ICAgID8gICAgIDUxLjAwMDUrLTUuODcxNCAgICAgICAgPyBtaWdodCBiZSAxLjAyODF4IHNsb3dl
cgogICBzdWJzdHJpbmctY29uY2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUz
LjgxOTUrLTEuNzI2OSAgICAgICAgICAgNTIuNzEyMystMS4wMzE2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDIxMHggZmFzdGVyCiAgIHN1YnN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTkuMzgwMystMS41NDA3ICAgICAgICAgICA1OC4xOTY5Ky0yLjMyODcgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjAzeCBmYXN0ZXIKICAgc3dpdGNoLWNoYXItY29uc3RhbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMjc4Ky0wLjc3NjcgICAgICAgICAgICAyLjkz
OTgrLTAuNDc0NSAgICAgICAgICBtaWdodCBiZSAxLjA2Mzl4IGZhc3RlcgogICBzd2l0Y2gtY2hh
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjYwNjkrLTAuMzQwMiAg
ICAgPyAgICAgIDYuNzQ1MistMC4zMDgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwOXggc2xvd2Vy
CiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
MDUzNCstMC42MDI1ICAgICAgICAgICAgNC43ODMyKy0wLjU5NzYgICAgICAgICAgbWlnaHQgYmUg
MS4wNTY1eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFyICAgICAgICAgICAg
ICAgICAgICAgICAxOC42NzMyKy0wLjY5NjEgICAgID8gICAgIDE5LjgwMDErLTEuNzkyOCAgICAg
ICAgPyBtaWdodCBiZSAxLjA2MDN4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjUzNTkrLTAuNTg3MiAgICAgPyAgICAgMTcuODAw
MistMS4zMjI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIHN3aXRjaC1zdHJp
bmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguOTA4MistMC41NjU4ICAg
ICAgICAgICAxOC41MjAyKy0wLjk0NzAgICAgICAgICAgbWlnaHQgYmUgMS4wMjEweCBmYXN0ZXIK
ICAgc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4y
MDQ1Ky0wLjczNDUgICAgID8gICAgIDE2LjMyNzcrLTAuNDIyNCAgICAgICAgPwogICBzd2l0Y2gt
c3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgIDI2LjUxOTErLTAuODk1
MyAgICAgICAgICAgMjYuMjgyMSstMS44NDM1ICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1sZW5n
dGgtdG93ZXItdmFyICAgICAgICAgICAgICAgICAgICAxOS4wMjk0Ky0xLjExNjAgICAgICAgICAg
IDE4LjgwOTkrLTAuNTkwOCAgICAgICAgICBtaWdodCBiZSAxLjAxMTd4IGZhc3RlcgogICBzd2l0
Y2gtc3RyaW5nLWxlbmd0aC10b3dlciAgICAgICAgICAgICAgICAgICAgICAgIDE0LjcyNTYrLTAu
NDk1MCAgICAgPyAgICAgMTUuNzMyNCstMC44OTM0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY4NHgg
c2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTUuMjMxNistMC45MjIwICAgICAgICAgICAxNS4wMDc0Ky0xLjExMzcgICAgICAgICAgbWln
aHQgYmUgMS4wMTQ5eCBmYXN0ZXIKICAgc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS4yOTU1Ky0wLjc2NDIgICAgICAgICAgICA5LjA2ODYrLTAuNDgz
NiAgICAgICAgICBtaWdodCBiZSAxLjAyNTB4IGZhc3RlcgogICBzeW1ib2wtdG9zdHJpbmd0YWcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQxNzYrLTAuMzk4NyAgICAgICAgICAg
IDQuMTkwNistMC4yNDc3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0MnggZmFzdGVyCiAgIHRlYXIt
b2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTY0NCstMC4w
OTkwICAgICA/ICAgICAgMy4xNzg3Ky0wLjE3NzMgICAgICAgID8gbWlnaHQgYmUgMS4wNzIzeCBz
bG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC4yMzEwKy0wLjE2MDAgICAgID8gICAgICA0LjgzMjIrLTEuMDQ5NiAgICAgICAgPyBtaWdo
dCBiZSAxLjE0MjF4IHNsb3dlcgogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE2LjU1NjYrLTEuMDc5NyAgICAgICAgICAgMTYuMTk4MSstMS4zMDM1
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyMXggZmFzdGVyCiAgIHRvLWludDMyLWJvb2xlYW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMzE4MystMC45NDE0ICAgICAgICAgICAx
OC41ODcwKy0wLjcwNjEgICAgICAgICAgbWlnaHQgYmUgMS4wMzkzeCBmYXN0ZXIKICAgdHJ5LWNh
dGNoLWdldC1ieS12YWwtY2xvbmVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgNS4xMjgxKy0wLjc5
MzUgICAgICAgICAgICA1LjAzMzArLTAuMjg3MSAgICAgICAgICBtaWdodCBiZSAxLjAxODl4IGZh
c3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1kaXJlY3QtYXJndW1lbnRzICAgICAgICAgICAg
ICAyLjc4NTYrLTAuMTYyNyAgICAgPyAgICAgIDIuOTI5MistMC4zOTcyICAgICAgICA/IG1pZ2h0
IGJlIDEuMDUxNXggc2xvd2VyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLXNjb3BlZC1hcmd1bWVu
dHMgICAgICAgICAgICAgIDUuNzE5MistMC4xNDk4ICAgICA/ICAgICAgNS44MzA3Ky0wLjcxMzIg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTk1eCBzbG93ZXIKICAgdHlwZWQtYXJyYXktZ2V0LXNldC1i
eS12YWwtcHJvZmlsaW5nICAgICAgICAgICAgICAyNy44MzAwKy0xLjMzNjEgICAgID8gICAgIDI4
LjY4NTIrLTEuOTg5OCAgICAgICAgPyBtaWdodCBiZSAxLjAzMDd4IHNsb3dlcgogICB1bmRlZmlu
ZWQtcHJvcGVydHktYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgNDI0LjU3NjYrLTgzLjY5
NTEgICAgICAgICAzODkuMjE4OCstNy4wNDI4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkwOHggZmFz
dGVyCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMzc0MSstMC4yNTA5ICAgICAgICAgICAgNC4yNTE2Ky0wLjA0ODcgICAgICAgICAgbWlnaHQg
YmUgMS4wMjg4eCBmYXN0ZXIKICAgdW5wcm9maWxlZC1saWNtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy43MDI2Ky0wLjE2NzcgICAgID8gICAgICA3LjkyNDUrLTAuNDcxNSAg
ICAgICAgPyBtaWdodCBiZSAxLjAyODh4IHNsb3dlcgogICB1bnR5cGVkLXN0cmluZy1mcm9tLWNo
YXItY29kZSAgICAgICAgICAgICAgICAgICAgIDEyLjc3MjArLTAuNjIzOCAgICAgPyAgICAgMTMu
MjE0MistMC41NTU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0Nnggc2xvd2VyCiAgIHY4LXJheXRy
YWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgODEuNjI5OCstMS4xOTQ4
ICAgICA/ICAgICA4MS44NzI1Ky0xLjA0MzggICAgICAgID8KICAgdjgtcmF5dHJhY2Utd2l0aC10
cnktY2F0Y2gtaGlnaC1mcmVxdWVuY3ktdGhyb3dzICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ODcuNjExNystNS42NjM1ICAgICA/ICAgIDU3
My41ODUxKy0xODQuNTM5MSAgICAgID8gbWlnaHQgYmUgMS4xNzYzeCBzbG93ZXIKICAgdjgtcmF5
dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA4My42NTc2Ky0zLjEz
NzQgICAgICAgICAgIDgzLjYwMDErLTEuNjk5MiAgICAgICAgCiAgIHY4LXJlZ2V4cC1zZWFyY2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzAuMTU3MCstMi4wMDcyICAgICAgICAg
ICA2Ny44NjE1Ky0yLjkzNDYgICAgICAgICAgbWlnaHQgYmUgMS4wMzM4eCBmYXN0ZXIKICAgdmFy
YXJncy1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi42MzA5Ky0w
Ljk0NDUgICAgID8gICAgIDE2LjcxMTgrLTAuODExMyAgICAgICAgPwogICB2YXJhcmdzLWNvbnN0
cnVjdC1pbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgIDI3LjA3NTQrLTEuMDExOCAgICAg
ICAgICAgMjYuNzQzOCstMS4xODE4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNHggZmFzdGVyCiAg
IHZhcmFyZ3MtY29uc3RydWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuNDU5
MystMi4zNzY1ICAgICAgICAgICAzMS42MzA1Ky0wLjY2NTMgICAgICAgICAgbWlnaHQgYmUgMS4w
MjYyeCBmYXN0ZXIKICAgdmFyYXJncy1pbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMC43NzQxKy0wLjY0NjYgICAgICAgICAgIDEwLjcyMjcrLTAuNTIxOSAgICAgICAg
CiAgIHZhcmFyZ3Mtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIu
MzMzNSstMC4zNzE3ICAgICA/ICAgICAxMi43NTI5Ky0wLjkwOTIgICAgICAgID8gbWlnaHQgYmUg
MS4wMzQweCBzbG93ZXIKICAgdmFyYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMi40MzMzKy0wLjU5MDQgICAgID8gICAgIDEyLjczNDIrLTAuOTMzNCAgICAg
ICAgPyBtaWdodCBiZSAxLjAyNDJ4IHNsb3dlcgogICB3ZWlyZC1pbmxpbmluZy1jb25zdC1wcm9w
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk1NzYrLTAuMTgyNCAgICAgICAgICAgIDIuODQy
MCstMC4yNTEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwN3ggZmFzdGVyCgogICA8Z2VvbWV0cmlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjk0MTIrLTAuMDc4NiAg
ICAgPyAgICAgMTAuOTQzOSstMC4wNTIxICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMnggc2xvd2Vy
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJhc2UgICAgICAgICAgICAgICAgICAgICBuZXc2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIApBc21CZW5jaDoKICAgYmlnZmliLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDYyNS41MzU4Ky0yNi4xNzY3ICAgICAgICAgNjIxLjU0MjEr
LTE2Ljc3MjkgICAgICAgCiAgIGNyYXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1MDQuMTU4MistNS4zMDM3ICAgICA/ICAgIDUwNi4wMTQwKy00Ljg0NTggICAg
ICAgID8KICAgZHJ5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDU4NC4xMDMzKy03LjU3MDYgICAgID8gICAgNTg3LjI5MjYrLTE3LjM2NjQgICAgICAgPwogICBG
bG9hdE1NLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwLjY3Njcr
LTEwLjgwNjkgICAgICAgICA5OTguMDc3NSstOC4yODkzICAgICAgICAKICAgZ2NjLWxvb3BzLmNw
cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTY2NC40NDAwKy0xMzA1LjgwNDcg
ICAgICA1MTA3LjA5MDkrLTIyLjQ5NDkgICAgICAgICBtaWdodCBiZSAxLjEwOTF4IGZhc3Rlcgog
ICBuLWJvZHkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTMxLjgw
NDMrLTEwLjE1MTMgICAgPyAgIDExMzEuODgyMystMTMuNTk4MSAgICAgICA/CiAgIFF1aWNrc29y
dC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NDUuODc4NystNC4xMDA0
ICAgICAgICAgIDU0MS40MjEwKy03LjUyMzcgICAgICAgIAogICBzdGVwYW5vdl9jb250YWluZXIu
Y3BwICAgICAgICAgICAgICAgICAgICAgICAgICA1MDY5LjY3MzIrLTUwLjE5NTAgICAgPyAgIDUw
NzQuODUxOSstMjUuNTY4NCAgICAgICA/CiAgIFRvd2Vycy5jICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzNzEuNTMxMCstNC44NzEyICAgICA/ICAgIDM3My41MjkxKy0x
LjgzNjEgICAgICAgID8KCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMjAuMDY3MCstMjIuMDE0MyAgICAgICAgMTAwOS45MjY3Ky02LjEzOTcgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTAweCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSAgICAgICAgICAgICAgICAgICAg
IG5ldzY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkNvbXByZXNzaW9u
QmVuY2g6CiAgIGh1ZmZtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzguODk1OSstMS40NzY0ICAgICAgICAgICAzOC41NDE2Ky0xLjkxNzMgICAgICAgIAogICBh
cml0aG1ldGljLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYwLjEwMDUr
LTYuMjMxMiAgICAgICAgICAzNTkuNDg3OSstNS4wMjIxICAgICAgICAKICAgYXJpdGhtZXRpYy1w
cmVjaXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0NS4wNjE3Ky0xNC42OTEwICAg
ICAgICAgMzM2LjU1NjgrLTYuMjI1NyAgICAgICAgICBtaWdodCBiZSAxLjAyNTN4IGZhc3Rlcgog
ICBhcml0aG1ldGljLWNvbXBsZXgtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAgMzM1LjE3
MTQrLTUuMDAxOSAgICAgICAgICAzMzMuNDMzOCstOS41NDk0ICAgICAgICAKICAgYXJpdGhtZXRp
Yy1wcmVjaXNlLW9yZGVyLTAgICAgICAgICAgICAgICAgICAgICAgIDM2MS42NjQ2Ky0zLjkyODMg
ICAgID8gICAgMzY1LjI3NzArLTMuNTIwMiAgICAgICAgPwogICBhcml0aG1ldGljLXByZWNpc2Ut
b3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAgNDA4Ljg0MzgrLTYuOTM3MCAgICAgPyAgICA0
MTIuMDAyNCstNy4xMzk2ICAgICAgICA/CiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0yICAg
ICAgICAgICAgICAgICAgICAgICA0NzYuNzEzMystNy41NTI4ICAgICA/ICAgIDQ4Mi4wNjU2Ky01
LjAzNTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIKICAgYXJpdGhtZXRpYy1zaW1w
bGUtb3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAgIDQyNC4wNjI1Ky01LjEwNTAgICAgICAg
ICAgNDIyLjkyMTErLTIuMzQyMyAgICAgICAgCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTIg
ICAgICAgICAgICAgICAgICAgICAgICA1MDUuMTM1MistNy45MTIzICAgICAgICAgIDQ5OS41MTQy
Ky05LjIwMDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTEzeCBmYXN0ZXIKICAgbHotc3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3Ni40OTQ3Ky0xMy4xMTQ3ICAg
ICAgICAgNDc2LjA3NDQrLTcuNDcwOCAgICAgICAgCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIxLjA0NDgrLTEuODk1OCAgICAgICAgICAzMjAu
MTg4MystMS45OTU5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAyN3ggZmFzdGVyCgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UgICAg
ICAgICAgICAgICAgICAgICBuZXc2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIApHZW9tZWFuIG9mIHByZWZlcnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ny43NzIxKy0wLjQ3NTggICAgICAgICAgIDY3
LjQzMzArLTAuMzYyNiAgICAgICAgICBtaWdodCBiZSAxLjAwNTB4IGZhc3RlcgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274199</attachid>
            <date>2016-03-16 11:14:35 -0700</date>
            <delta_ts>2016-03-16 11:14:35 -0700</delta_ts>
            <desc>patch for landing w/ a more detailed ChangeLog + some requested comments.</desc>
            <filename>bug-155437.patch</filename>
            <type>text/plain</type>
            <size>63936</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNi0wMy0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgRnVuY3Rpb24ubmFtZSBmcm9tIGNvbXB1dGVkIHByb3Bl
cnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU0MzcKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBJbiBK
UyBjb2RlLCB3ZSBjYW4gaGF2ZSBpbml0aWFsaXphdGlvbiBvZiBjb21wdXRlZCBwcm9wZXJ0aWVz
IHdpdGggZnVuY3Rpb24gYW5kCisgICAgICAgIGNsYXNzIG9iamVjdHMgZS5nLgorCisgICAgICAg
ICAgICB2YXIgbyA9IHsKKyAgICAgICAgICAgICAgICBbeF06IGZ1bmN0aW9uKCkge30sCisgICAg
ICAgICAgICAgICAgW3ldOiBjbGFzcyB7fQorICAgICAgICAgICAgfQorCisgICAgICAgIFRoZSBF
UzYgc3BlYyBzdGF0ZXMgdGhhdCB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzIGluIHRoZSBleGFtcGxl
IGFib3ZlIChiZWluZworICAgICAgICBhbm9ueW1vdXMpIHNob3VsZCB0YWtlIG9uIHRoZSB2YWx1
ZSBvZiB4IGFuZCB5IHJlc3BlY3RpdmVseSBhcyB0aGVpciBuYW1lczoKKworICAgICAgICAgICAg
b1t4XS5uYW1lOyAvLyBzaG91bGQgYmUgdGhlICJzdHJpbmdpZmllZCIgdmFsdWUgb2YgeC4KKyAg
ICAgICAgICAgIG9beV0ubmFtZTsgLy8gc2hvdWxkIGJlIHRoZSAic3RyaW5naWZpZWQiIHZhbHVl
IG9mIHkuCisKKyAgICAgICAgVG8gYWNoaWV2ZSB0aGlzLCB3ZSB3aWxsIG5vdyBpbmplY3QgYW4g
b3Bfc2V0X2Z1bmN0aW9uX25hbWUgYnl0ZWNvZGUgYXQgcHJvcGVydHkKKyAgICAgICAgaW5pdGlh
bGl6YXRpb24gc2l0ZXMgaWY6CisKKyAgICAgICAgMS4gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHZh
bHVlIGlzIGEgZnVuY3Rpb24gb3IgY2xhc3MsIGFuZAorICAgICAgICAyLiB0aGUgZnVuY3Rpb24g
YW5kIGNsYXNzIGlzIGFub255bW91cywgYW5kCisgICAgICAgIDMuIGlmIHByb3BlcnR5IGFzc2ln
bmVkIHZhbHVlIGlzIGEgY2xhc3MsIGl0IGRvZXNuJ3QgaGF2ZSBhIHN0YXRpYyBtZXRob2QKKyAg
ICAgICAgICAgdGhhdCBpcyBzdGF0aWNhbGx5IG5hbWVkICJuYW1lIi4KKworICAgICAgICBUaGUg
b3Bfc2V0X2Z1bmN0aW9uX25hbWUgd2lsbCByZXN1bHQgaW4gSlNGdW5jdGlvbjo6c2V0RnVuY3Rp
b25OYW1lKCkgYmVpbmcKKyAgICAgICAgY2FsbGVkIG9uIHRoZSB0YXJnZXQgZnVuY3Rpb24gLyBj
bGFzcyBiZWZvcmUgaXQgaXMgYXNzaWduZWQgdG8gdGhlIHByb3BlcnR5LgorICAgICAgICBKU0Z1
bmN0aW9uOjpzZXRGdW5jdGlvbk5hbWUoKSB3aWxsIHRha2UgY2FyZSBvZjoKKworICAgICAgICAx
LiBjb21wdXRpbmcgdGhlIG5hbWUgdG8gdXNlIGZyb20gdGhlIHZhbHVlIG9mIHRoZSBjb21wdXRl
ZCBwcm9wZXJ0eSBuYW1lCisgICAgICAgICAgIGUuZy4geCBhbmQgeSBpbiB0aGUgZXhhbXBsZSBh
Ym92ZS4KKworICAgICAgICAgICBJZiB0aGUgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBpcyBub3Qg
YSBzeW1ib2wsIHRoZW4gdGhlIGZ1bmN0aW9uIC8gY2xhc3MgbmFtZQorICAgICAgICAgICBzaG91
bGQgYmUgdGhlIHRvU3RyaW5nKCkgdmFsdWUgb2YgdGhhdCBjb21wdXRlZCBwcm9wZXJ0eSBuYW1l
LgorCisgICAgICAgICAgIElmIHRoZSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIGlzIGEgc3ltYm9s
LCB0aGVuIC4uLgorICAgICAgICAgICBhLiBpZiB0aGUgU3ltYm9sIGhhcyBhIGRlZmluZWQgZGVz
Y3JpcHRpb24gKGUuZy4gU3ltYm9sKCJmb28iKSksIHRoZW4gdGhlCisgICAgICAgICAgICAgIGZ1
bmN0aW9uIC8gY2xhc3MgbmFtZSBzaG91bGQgYmUgIls8c3ltYm9sIGRlc2NyaXB0aW9uPl0iIGUu
Zy4gIltmb29dIi4KKyAgICAgICAgICAgYi4gaWYgdGhlIFN5bWJvbCBoYXMgYW4gdW5kZWZpbmVk
IGRlc2NyaXB0aW9uIChlLmcuIFN5bWJvbCgpKSwgdGhlbiB0aGUKKyAgICAgICAgICAgICAgZnVu
Y3Rpb24gLyBjbGFzcyBuYW1lIHNob3VsZCBiZSAiIi4KKworICAgICAgICAgICBOb3RlOiBTeW1i
b2woIiIpIGlzIG5vdCB0aGUgc2FtZSBhcyBTeW1ib2woKS4gIFRoZSBmb3JtZXIgaGFzIGEgZGVm
aW5lZAorICAgICAgICAgICBkZXNjcmlwdG9yICIiLCBhbmQgaGVuY2UsIHlpZWxkcyBhIGZ1bmN0
aW9uIC8gY2xhc3MgbmFtZSBvZiAiW10iLiAgVGhlIGxhdHRlcgorICAgICAgICAgICB5aWVsZHMg
YSBmdW5jdGlvbiAvIGNsYXNzIG5hbWUgb2YgIiIuCisKKyAgICAgICAgMi4gcmVpZnlpbmcgdGhl
IGxhenkgbmFtZSBwcm9wZXJ0eSB3aXRoIHRoaXMgZnVuY3Rpb24gLyBjbGFzcyBuYW1lLgorCisg
ICAgICAgIG9wX3NldF9mdW5jdGlvbl9uYW1lIGlzIG5hbWVkIGFmdGVyIHRoZSBTZXRGdW5jdGlv
bk5hbWUgaW50ZXJuYWwgZnVuY3Rpb24KKyAgICAgICAgaW4gdGhlIEVTNiBzcGVjIHRoYXQgcGVy
Zm9ybXMgdGhlIGFib3ZlIG9wZXJhdGlvbi4KKworICAgICAgICBJdCBpcyBiZWhhdmlvcmFsbHkg
Y29ycmVjdCB0byB1c2Ugb3Bfc2V0X2Z1bmN0aW9uX25hbWUgYXQgZXZlcnkgcHJvcGVydHkKKyAg
ICAgICAgaW5pdGlhbGl6YXRpb24gc2l0ZSB3aXRoIGNvbXB1dGVkIHByb3BlcnR5IG5hbWVzLiAg
SG93ZXZlciwgd2UgY2hvb3NlIHRvIG5vdAorICAgICAgICBlbWl0IHRoZSBvcF9zZXRfZnVuY3Rp
b25fbmFtZSBieXRlY29kZSB3aGVuIHdlIGFscmVhZHkga25vdyB0aGF0IGl0IHdpbGwgZG8KKyAg
ICAgICAgbm90aGluZyBpLmUuIHdoZW4gdGhlIHRhcmdldCBmdW5jdGlvbiAvIGNsYXNzIGlzIHBy
b3ZlbiB0byBhbHJlYWR5IGhhdmUgYSBuYW1lIG9yCisgICAgICAgIG5hbWUgcHJvcGVydHkuICBU
aGlzIGlzIGRvbmUgYXMgYW4gb3B0aW1pemF0aW9uIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNhbGxz
IHRvCisgICAgICAgIEpTRnVuY3Rpb246OnNldEZ1bmN0aW9uTmFtZSgpLgorCisgICAgICAgIE5v
dGU6IHdlIGNvdWxkIGZ1cnRoZXIgY2hlY2sgaWYgdGhlIGNsYXNzIGhhcyBhIHN0YXRpYyBtZXRo
b2Qgd2l0aCBhIGNvbXB1dGVkCisgICAgICAgIG5hbWUgdGhhdCBpcyBhIGNvbnN0YW50IHN0cmlu
ZyAibmFtZSIgYW5kIGVsaWRlIG9wX3NldF9mdW5jdGlvbl9uYW1lIHRoZXJlIHRvby4KKyAgICAg
ICAgSG93ZXZlciwgd2UgZG9uJ3QgYm90aGVyIGJlY2F1c2UgdGhpcyBzaG91bGQgYmUgcmFyZS4g
IEpTRnVuY3Rpb246OnNldEZ1bmN0aW9uTmFtZSgpCisgICAgICAgIHdpbGwgc3RpbGwgZG8gdGhl
IHJpZ2h0IHRoaW5nLgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246Cisg
ICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0
ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdE5ld0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRT
ZXRGdW5jdGlvbk5hbWVJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0Q2FsbCk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6
CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6
OlByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5
TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFByb3BlcnR5KToKKyAgICAgICAgKiBkZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBk
ZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlU2V0RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdzKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25Q
aGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5ld1JlZ2V4cCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVTZXRGdW5jdGlvbk5h
bWUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlU3RyaW5n
UmVwbGFjZSk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9f
cHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3NldF9mdW5jdGlvbl9uYW1l
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfdG9fcHJp
bWl0aXZlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3NldF9mdW5jdGlvbl9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6CisgICAgICAgICogaml0L0pJVE9w
ZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICog
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xP
V19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjpMTEludDo6aGFuZGxlSG9zdENhbGwpOgorICAg
ICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL05vZGVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RnVuY3Rpb25Ob2RlOjpmaW5pc2hQYXJzaW5nKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlM
aXN0Tm9kZTo6aGFzU3RhdGljYWxseU5hbWVkUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpWYXJp
YWJsZUVudmlyb25tZW50Tm9kZTo6VmFyaWFibGVFbnZpcm9ubWVudE5vZGUpOgorICAgICAgICAq
IHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OmdldENhbGN1bGF0ZWREaXNwbGF5TmFtZSk6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OnNldEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnJlaWZ5
TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6cmVpZnlOYW1lKToKKyAgICAgICAg
KiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiB0ZXN0cy9lczYueWFtbDoKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvY29tcHV0ZWQtZnVuY3Rpb24tbmFtZXMuanM6IEFkZGVkLgorICAg
ICAgICAodG9LZXlTdHJpbmcpOgorICAgICAgICAodG9GdW5jTmFtZSk6CisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChyZXR1cm4ucHJvcEtleSk6CisKIDIwMTYtMDMtMTYgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0gUmVmbGVjdC5z
ZXQgd2l0aCByZWNlaXZlcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC05
NCw2ICs5NCw3IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9uZXdfZ2VuZXJhdG9yX2Z1
bmMiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX25ld19nZW5l
cmF0b3JfZnVuY19leHAiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX25ld19hcnJvd19mdW5jX2V4cCIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3Bfc2V0X2Z1bmN0aW9uX25hbWUiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2NhbGwiLCAibGVuZ3RoIiA6IDkgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3RhaWxfY2FsbCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfY2FsbF9ldmFsIiwgImxlbmd0aCIgOiA5IH0sCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAkocmV2aXNpb24gMTk4
Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVj
b2RlT2Zmc2V0KAogICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgogICAgIGNhc2Ugb3Bfam5ncmVhdGVy
ZXE6CiAgICAgY2FzZSBvcF9qbGVzczoKKyAgICBjYXNlIG9wX3NldF9mdW5jdGlvbl9uYW1lOgog
ICAgIGNhc2Ugb3BfY29weV9yZXN0OiB7CiAgICAgICAgIEFTU0VSVChvcGNvZGVMZW5ndGhzW29w
Y29kZUlEXSA+IDIpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9w
Y29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwpAQCAtMzIyLDYgKzMyMyw3IEBAIHZv
aWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChDb2RlQmwKICAgICBjYXNlIG9wX3Byb2Zp
bGVfdHlwZToKICAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ugb3Bf
cHV0X3RvX2FyZ3VtZW50czoKKyAgICBjYXNlIG9wX3NldF9mdW5jdGlvbl9uYW1lOgogICAgIGNh
c2Ugb3Bfd2F0Y2hkb2c6CiAjZGVmaW5lIExMSU5UX0hFTFBFUl9PUENPREVTKG9wY29kZSwgbGVu
Z3RoKSBjYXNlIG9wY29kZToKICAgICAgICAgRk9SX0VBQ0hfTExJTlRfT1BDT0RFX0VYVEVOU0lP
TihMTElOVF9IRUxQRVJfT1BDT0RFUyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNzEs
NiArMTM3MSwxMyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAg
b3V0LnByaW50ZigiJXMsICVzLCBmJWQiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIxKS5kYXRhKCksIGYwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cisg
ICAgICAgIGNhc2Ugb3Bfc2V0X2Z1bmN0aW9uX25hbWU6IHsKKyAgICAgICAgICAgIGludCBmdW5j
UmVnID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbmFtZVJlZyA9ICgrK2l0
KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywg
bG9jYXRpb24sIGl0LCAic2V0X2Z1bmN0aW9uX25hbWUiKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIiVzLCAlcyIsIHJlZ2lzdGVyTmFtZShmdW5jUmVnKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShu
YW1lUmVnKS5kYXRhKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9jYWxsOiB7CiAgICAgICAgICAgICBwcmludENhbGxPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgImNhbGwiLCBEdW1wQ2FjaGVzLCBoYXNQcmludGVkUHJvZmlsaW5nLCBjYWxsTGlu
a0luZm9zKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlz
aW9uIDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIwLDYgKzI4MjAsMjggQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdGdQogICAgIHJldHVybiBkc3Q7CiB9
CiAKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRlZChF
eHByZXNzaW9uTm9kZSogdmFsdWVOb2RlLCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCog
bmFtZSkKK3sKKyAgICBpZiAodmFsdWVOb2RlLT5pc0Z1bmNFeHByTm9kZSgpKSB7CisgICAgICAg
IEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEZ1bmNFeHByTm9k
ZSo+KHZhbHVlTm9kZSktPm1ldGFkYXRhKCk7CisgICAgICAgIGlmICghbWV0YWRhdGEtPmVjbWFO
YW1lKCkuaXNOdWxsKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmICh2YWx1
ZU5vZGUtPmlzQ2xhc3NFeHByTm9kZSgpKSB7CisgICAgICAgIENsYXNzRXhwck5vZGUqIGNsYXNz
RXhwck5vZGUgPSBzdGF0aWNfY2FzdDxDbGFzc0V4cHJOb2RlKj4odmFsdWVOb2RlKTsKKyAgICAg
ICAgaWYgKCFjbGFzc0V4cHJOb2RlLT5lY21hTmFtZSgpLmlzTnVsbCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBpZiAoY2xhc3NFeHByTm9kZS0+aGFzU3RhdGljUHJvcGVydHkobV92
bS0+cHJvcGVydHlOYW1lcy0+bmFtZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNl
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIGFuIG9wX2Nh
bGwgdG8gYW4gaW50ZXJuYWwgZnVuY3Rpb24gaGVyZSBpbnN0ZWFkLgorICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU1NDcKKyAgICBlbWl0T3Bjb2RlKG9w
X3NldF9mdW5jdGlvbl9uYW1lKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmlu
ZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChuYW1lLT5pbmRleCgpKTsKK30KKwog
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiBleHBlY3RlZEZ1bmN0aW9uLCBDYWxs
QXJndW1lbnRzJiBjYWxsQXJndW1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpCiB7CiAgICAgcmV0dXJuIGVtaXRDYWxsKG9wX2NhbGwsIGRzdCwgZnVuYywgZXhwZWN0
ZWRGdW5jdGlvbiwgY2FsbEFyZ3VtZW50cywgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIyLDYgKzUyMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
TmV3QXJyb3dGdW5jdGlvbkV4cHJlc3Npb24oUmVnaXN0ZXJJRCosIEFycm93RnVuY0V4cHJOb2Rl
Kik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdSZWdFeHAoUmVnaXN0ZXJJRCogZHN0LCBS
ZWdFeHAqKTsKIAorICAgICAgICB2b2lkIGVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRlZChFeHBy
ZXNzaW9uTm9kZSogdmFsdWVOb2RlLCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogbmFt
ZSk7CisKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE1vdmVMaW5rVGltZUNvbnN0YW50KFJlZ2lz
dGVySUQqIGRzdCwgTGlua1RpbWVDb25zdGFudCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRN
b3ZlRW1wdHlWYWx1ZShSZWdpc3RlcklEKiBkc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCShyZXZp
c2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMSw2ICs1MTEsNyBAQCBSZWdpc3RlcklE
KiBQcm9wZXJ0eUxpc3ROb2RlOjplbWl0Qnl0ZWNvCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0
ZWQgYWNjZXNzb3JzLgogICAgICAgICAgICAgICAgIGlmIChub2RlLT5tX3R5cGUgJiBQcm9wZXJ0
eU5vZGU6OkNvbXB1dGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBwcm9wZXJ0eU5hbWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZS0+bV9leHByZXNzaW9uKTsK
KyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRTZXRGdW5jdGlvbk5hbWVJZk5lZWRl
ZChub2RlLT5tX2Fzc2lnbiwgdmFsdWUuZ2V0KCksIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5tX3R5cGUgJiBQcm9wZXJ0eU5vZGU6OkdldHRlcikK
ICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0dGVyQnlWYWwoZHN0
LCBwcm9wZXJ0eU5hbWUuZ2V0KCksIGF0dHJpYnV0ZSwgdmFsdWUuZ2V0KCkpOwogICAgICAgICAg
ICAgICAgICAgICBlbHNlCkBAIC02MDEsNiArNjAyLDcgQEAgdm9pZCBQcm9wZXJ0eUxpc3ROb2Rl
OjplbWl0UHV0Q29uc3RhbnRQcgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBwcm9wZXJ0eU5hbWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZS5tX2V4cHJl
c3Npb24pOworICAgIGdlbmVyYXRvci5lbWl0U2V0RnVuY3Rpb25OYW1lSWZOZWVkZWQobm9kZS5t
X2Fzc2lnbiwgdmFsdWUuZ2V0KCksIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAgICAgZ2VuZXJhdG9y
LmVtaXREaXJlY3RQdXRCeVZhbChuZXdPYmosIHByb3BlcnR5TmFtZS5nZXQoKSwgdmFsdWUuZ2V0
KCkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAxOTgyODcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2NTMsNiArMjY1MywxMSBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2Ug
U2V0RnVuY3Rpb25OYW1lOiB7CisgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2Vt
YW50aWMsIGNsb2JiZXJMaW1pdCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2Ug
U3RvcmVCYXJyaWVyOiB7CiAgICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY0NlbGwp
OwogICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYz
Niw2ICs0NjM2LDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGNhc2Ugb3Bfc2V0X2Z1bmN0aW9u
X25hbWU6IHsKKyAgICAgICAgICAgIE5vZGUqIGZ1bmMgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIG5hbWUg
PSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsK
KyAgICAgICAgICAgIGFkZFRvR3JhcGgoU2V0RnVuY3Rpb25OYW1lLCBmdW5jLCBuYW1lKTsKKyAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3NldF9mdW5jdGlvbl9uYW1lKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGNhc2Ugb3BfdHlwZW9mOiB7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAogICAgICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoVHlwZU9mLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjE5LDYgKzIxOSw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2Rl
SUQKICAgICBjYXNlIG9wX25ld19nZW5lcmF0b3JfZnVuYzoKICAgICBjYXNlIG9wX25ld19nZW5l
cmF0b3JfZnVuY19leHA6CiAgICAgY2FzZSBvcF9uZXdfYXJyb3dfZnVuY19leHA6CisgICAgY2Fz
ZSBvcF9zZXRfZnVuY3Rpb25fbmFtZToKICAgICBjYXNlIG9wX2NyZWF0ZV9sZXhpY2FsX2Vudmly
b25tZW50OgogICAgIGNhc2Ugb3BfZ2V0X3BhcmVudF9zY29wZToKICAgICBjYXNlIG9wX2NhdGNo
OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlz
aW9uIDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NDQsNiArNDQ0LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZQogICAgIGNhc2UgVG9QcmltaXRpdmU6CiAgICAgY2FzZSBJbjoK
ICAgICBjYXNlIFZhbHVlQWRkOgorICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgogICAgICAgICBy
ZWFkKFdvcmxkKTsKICAgICAgICAgd3JpdGUoSGVhcCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDE5ODI4NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYzLDYgKzI2Myw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIFRvSW5kZXhTdHJpbmc6CiAgICAgY2FzZSBNYXRlcmlhbGl6ZU5ld09iamVj
dDoKICAgICBjYXNlIE1hdGVyaWFsaXplQ3JlYXRlQWN0aXZhdGlvbjoKKyAgICBjYXNlIFNldEZ1
bmN0aW9uTmFtZToKICAgICBjYXNlIFN0ckNhdDoKICAgICBjYXNlIFN0cmluZ1JlcGxhY2U6CiAg
ICAgICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDM5LDYgKzE0Mzks
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAg
Y2FzZSBTZXRGdW5jdGlvbk5hbWU6IHsKKyAgICAgICAgICAgIC8vIFRoZSBmaXJzdCBjaGlsZCBp
cyBndWFyYW50ZWVkIHRvIGJlIGEgY2VsbCBiZWNhdXNlIG9wX3NldF9mdW5jdGlvbl9uYW1lIGlz
IG9ubHkgdXNlZAorICAgICAgICAgICAgLy8gb24gYSBuZXdseSBpbnN0YW50aWF0ZWQgZnVuY3Rp
b24gb2JqZWN0ICh0aGUgZmlyc3QgY2hpbGQpLgorICAgICAgICAgICAgZml4RWRnZTxLbm93bkNl
bGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIENvcHlSZXN0OiB7CiAgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgZml4RWRnZTxLbm93bkludDMyVXNlPihub2RlLT5j
aGlsZDIoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShy
ZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwOCw2ICszMDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSW4sIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKFByb2ZpbGVUeXBlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAg
ICAgbWFjcm8oUHJvZmlsZUNvbnRyb2xGbG93LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFj
cm8oU2V0RnVuY3Rpb25OYW1lLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIG1hY3Jv
KENyZWF0ZUFjdGl2YXRpb24sIE5vZGVSZXN1bHRKUykgXAogICAgIFwKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzUyLDYgKzc1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJv
cjoKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgU2V0QXJndW1lbnQ6
CisgICAgICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgogICAgICAgICBjYXNlIENoZWNrU3RydWN0
dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5
OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJ
KHJldmlzaW9uIDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjIsNiArMjYyLDcgQEAgYm9vbCBzYWZlVG9F
eGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBj
YXNlIFRvUHJpbWl0aXZlOgogICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBTZXRGdW5jdGlv
bk5hbWU6CiAgICAgY2FzZSBTdHJDYXQ6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6
CiAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE5ODI4
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MTAsNiArNDYxMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVOZXdGdW5jdGlvbihub2Rl
KTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKKyAgICAgICAg
Y29tcGlsZVNldEZ1bmN0aW9uTmFtZShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNl
IEluOgogICAgICAgICBjb21waWxlSW4obm9kZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShy
ZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTk0LDYgKzQ1OTQsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlTmV3RnVu
Y3Rpb24obm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6
CisgICAgICAgIGNvbXBpbGVTZXRGdW5jdGlvbk5hbWUobm9kZSk7CisgICAgICAgIGJyZWFrOwor
CiAgICAgY2FzZSBJbjoKICAgICAgICAgY29tcGlsZUluKG5vZGUpOwogICAgICAgICBicmVhazsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU5Nyw2ICs1NTk3LDIwIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdGdW5jdGlvbigKICAgICBjZWxsUmVzdWx0KHJl
c3VsdEdQUiwgbm9kZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRGdW5j
dGlvbk5hbWUoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJSZWcgZnVuY0dQUiA9IGZ1bmMuZ3ByKCk7Cisg
ICAgSlNWYWx1ZU9wZXJhbmQgbmFtZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBK
U1ZhbHVlUmVncyBuYW1lVmFsdWVSZWdzID0gbmFtZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisKKyAg
ICBmbHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2V0RnVuY3Rp
b25OYW1lLCBmdW5jR1BSLCBuYW1lVmFsdWVSZWdzKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVj
aygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVGb3J3YXJkVmFyYXJncyhOb2RlKiBub2RlKQogewogICAgIExvYWRWYXJhcmdzRGF0YSog
ZGF0YSA9IG5vZGUtPmxvYWRWYXJhcmdzRGF0YSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTQ4LDYgKzE1NDgsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoYXJnMSwgYXJnMi5wYXlsb2FkR1BSKCkpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChv
cGVyYXRpb24pOworICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VDSkogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQ
UlJlZyBhcmczKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwpAQCAtMTkyNyw2ICsxOTMyLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1
YkluZm8pLCBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMlBheWxvYWQsIFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpDZWxsVGFnKSwgVHJ1c3RlZEltbVB0cih1aWQpKTsKICAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgSlNWYWx1
ZVJlZ3MgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSk7CisgICAgICAgIHJl
dHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBHUFJSZWcgYXJnM1RhZywgR1BS
UmVnIGFyZzNQYXlsb2FkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBhcmczUGF5bG9hZCwgYXJnM1Rh
Zyk7CkBAIC0yMzc5LDYgKzIzODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlUHV0QnlW
YWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSos
IFR5cGVkQXJyYXlUeXBlKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NUeXBlPiB2b2lk
IGNvbXBpbGVOZXdGdW5jdGlvbkNvbW1vbihHUFJSZWcsIFN0cnVjdHVyZSosIEdQUlJlZywgR1BS
UmVnLCBHUFJSZWcsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYsIHNpemVfdCwgRnVuY3Rpb25F
eGVjdXRhYmxlKiwgcHRyZGlmZl90LCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7CiAgICAgdm9pZCBj
b21waWxlTmV3RnVuY3Rpb24oTm9kZSopOworICAgIHZvaWQgY29tcGlsZVNldEZ1bmN0aW9uTmFt
ZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRm9yd2FyZFZhcmFyZ3MoTm9kZSopOwogICAgIHZv
aWQgY29tcGlsZUNyZWF0ZUFjdGl2YXRpb24oTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNyZWF0
ZURpcmVjdEFyZ3VtZW50cyhOb2RlKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAkocmV2
aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJp
ZXJJbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Myw2ICsyODMsMTEgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOiB7CisgICAgICAgICAg
ICAgICAgY29uc2lkZXJCYXJyaWVyKG1fbm9kZS0+Y2hpbGQxKCksIG1fbm9kZS0+Y2hpbGQyKCkp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24g
MTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgU3RyaW5nUmVwbGFjZToKICAgICBjYXNlIEdl
dFJlZ0V4cE9iamVjdExhc3RJbmRleDoKICAgICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRl
eDoKKyAgICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjYsNiArOTI2
LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBOZXdSZWdleHA6CiAgICAgICAgICAgICBjb21w
aWxlTmV3UmVnZXhwKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTZXRGdW5j
dGlvbk5hbWU6CisgICAgICAgICAgICBjb21waWxlU2V0RnVuY3Rpb25OYW1lKCk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdSZXBsYWNlOgogICAgICAgICAgICAgY29t
cGlsZVN0cmluZ1JlcGxhY2UoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjU0OCw2ICs2NTUx
LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpTVmFsdWUocmVzdWx0KTsKICAgICB9CiAKKyAg
ICB2b2lkIGNvbXBpbGVTZXRGdW5jdGlvbk5hbWUoKQorICAgIHsKKyAgICAgICAgdm1DYWxsKG1f
b3V0LnZvaWRUeXBlLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKSwg
bV9jYWxsRnJhbWUsCisgICAgICAgICAgICBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBjb21waWxl
U3RyaW5nUmVwbGFjZSgpCiAgICAgewogICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkgPT0gU3RyaW5nVXNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZp
c2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5
LCAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDA5LCAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTgsNiArMjk4LDcgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfcnNo
aWZ0KQogICAgICAgICBERUZJTkVfT1Aob3BfdW5zaWduZWQpCiAgICAgICAgIERFRklORV9PUChv
cF91cnNoaWZ0KQorICAgICAgICBERUZJTkVfT1Aob3Bfc2V0X2Z1bmN0aW9uX25hbWUpCiAgICAg
ICAgIERFRklORV9PUChvcF9zdHJjYXQpCiAgICAgICAgIERFRklORV9PUChvcF9zdHJpY3RlcSkK
ICAgICAgICAgREVGSU5FX09QKG9wX3N1YikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
cmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTItMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU3MCw2ICs1NzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBlbWl0X29wX3B1dF9zZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKik7
CiAgICAgICAgIHZvaWQgZW1pdF9vcF9yZXQoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX3JzaGlmdChJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3Bfc2V0X2Z1
bmN0aW9uX25hbWUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N0cmNhdChJ
bnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24q
KTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N1YihJbnN0cnVjdGlvbiopOwpAQCAtNzkxLDggKzc5
MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihGX0pJVE9wZXJhdGlvbl9FRkpaWiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
aW50MzJfdCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8qLCBSZWdp
c3RlcklELCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgUmVnaXN0
ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklE
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FQ0osIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2Vsc2UKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklEKTsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
QXJyYXlQcm9maWxlKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEyLCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMi0yMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
NTgsNiArNTU4LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoK
ICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQog
CitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBSZWdpc3RlcklEIGFyZzEsIFJlZ2lzdGVySUQg
YXJnMikKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7Cisg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwog
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJ
RCByZWdPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCBy
ZWdPcDQpOwpAQCAtNjkyLDYgKzY5OCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBhcmcx
LCBSZWdpc3RlcklEIGFyZzJUYWcsIFJlZ2lzdGVySUQgYXJnMlBheWxvYWQpCit7CisgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKKyAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgYXJnMSwgUmVnaXN0ZXJJRCBh
cmcyVGFnLCBSZWdpc3RlcklEIGFyZzJQYXlsb2FkLCBpbnQzMl90IGFyZzMsIFJlZ2lzdGVySUQg
YXJnNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxv
YWQsIGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxOTgyODcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM5NSw2ICszOTUsMTUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX3By
aW1pdGl2ZShJbnN0cgogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK3ZvaWQgSklUOjpl
bWl0X29wX3NldF9mdW5jdGlvbl9uYW1lKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
Cit7CisgICAgaW50IGZ1bmMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAg
IGludCBuYW1lID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBlbWl0TG9h
ZFBheWxvYWQoZnVuYywgcmVnVDEpOworICAgIGVtaXRMb2FkKG5hbWUsIHJlZ1QzLCByZWdUMik7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHJlZ1QxLCByZWdU
MywgcmVnVDIpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9zdHJjYXQoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRo
aXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N0cmNhdCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE5ODI4NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5Niw2ICsyOTYsMTMgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fcHJpbWl0aXZlKEluc3RydWN0
aQogCiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3NldF9mdW5jdGlvbl9uYW1lKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CisgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kLCByZWdUMSk7CisgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHJlZ1QwLCByZWdUMSk7Cit9CisK
IHZvaWQgSklUOjplbWl0X29wX3N0cmNhdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogewogICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfc3RyY2F0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMTcs
NiArMTAxNywxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiAg
ICAgcmV0dXJuIG9wZXJhdGlvbk5ld0Z1bmN0aW9uQ29tbW9uPEpTR2VuZXJhdG9yRnVuY3Rpb24+
KGV4ZWMsIHNjb3BlLCBmdW5jdGlvbkV4ZWN1dGFibGUsIHRydWUpOwogfQogCit2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBmdW5jQ2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE5hbWUpCit7CisgICAgSlNGdW5jdGlv
biogZnVuYyA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZnVuY0NlbGwpOworICAgIEpTVmFsdWUgbmFt
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkTmFtZSk7CisgICAgZnVuYy0+c2V0RnVuY3Rpb25O
YW1lKGV4ZWMsIG5hbWUpOworfQorCiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgVk0q
IHZtID0gJmV4ZWMtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNSw2ICsyMjUsNyBAQCB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0CiB0eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5p
cXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
OwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0paQykoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEpTQ2VsbCopOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0
ZSosIEpTQ2VsbCosIEpTQ2VsbCosIElubGluZUNhbGxGcmFtZSopOwordHlwZWRlZiB2b2lkIEpJ
VF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRUNKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNQU1BT
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCB2b2lkKiwgc2l6ZV90LCB2b2lkKiwgc2l6ZV90KTsKIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNaKShFeGVjU3RhdGUq
LCBKU0NlbGwqLCBpbnQzMl90KTsKQEAgLTMzMyw2ICszMzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChF
eGVjU3RhdGUqLCBKU1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbihFeGVjU3RhdGUq
LCBKU1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxs
b2NhdGlvbldhdGNocG9pbnQoRXhlY1N0YXRlKiwgSlNTY29wZSosIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlKikgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdl
eHAoRXhlY1N0YXRlKiwgdm9pZCopIFdURl9JTlRFUk5BTDsKIFVudXNlZFB0ciBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhbmRsZVdhdGNoZG9nVGltZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4Myw2ICsxMDgzLDE1IEBAIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyb3cKICAgICBMTElOVF9SRVRVUk4o
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBleGVjdXRhYmxlLCBzY29wZSkpOwogfQogCitMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2V0X2Z1bmN0aW9uX25hbWUpCit7CisgICAgTExJTlRf
QkVHSU4oKTsKKyAgICBKU0Z1bmN0aW9uKiBmdW5jID0ganNDYXN0PEpTRnVuY3Rpb24qPihMTElO
VF9PUCgxKS5SZWdpc3Rlcjo6dW5ib3hlZENlbGwoKSk7CisgICAgSlNWYWx1ZSBuYW1lID0gTExJ
TlRfT1BfQygyKS5SZWdpc3Rlcjo6anNWYWx1ZSgpOworICAgIGZ1bmMtPnNldEZ1bmN0aW9uTmFt
ZShleGVjLCBuYW1lKTsKKyAgICBMTElOVF9FTkQoKTsKK30KKwogc3RhdGljIFNsb3dQYXRoUmV0
dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEluc3RydWN0aW9u
KiBwYywgSlNWYWx1ZSBjYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAg
ICBVTlVTRURfUEFSQU0ocGMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmgJKHJldmlzaW9uIDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MDIsNiArMTAyLDcgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZQog
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZ2VuZXJhdG9yX2Z1bmMp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZ2VuZXJhdG9yX2Z1
bmNfZXhwKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Fycm93
X2Z1bmNfZXhwKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2V0X2Z1
bmN0aW9uX25hbWUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxs
KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKIExM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJn
cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCAr
MSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDcxLDYgKzE0NzEs
MTEgQEAgX2xsaW50X29wX25ld19hcnJvd19mdW5jX2V4cDoKICAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9uZXdfYXJyb3dfZnVuY19leHApCiAgICAgZGlzcGF0Y2goNCkKIAorX2xs
aW50X29wX3NldF9mdW5jdGlvbl9uYW1lOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zZXRfZnVuY3Rpb25fbmFtZSkKKyAgICBkaXNwYXRj
aCgzKQorCiBfbGxpbnRfb3BfY2FsbDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgYXJyYXlQ
cm9maWxlRm9yQ2FsbCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNw
cAkocmV2aXNpb24gMTk4Mjg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogKiAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMDIgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICogIENvcHlyaWdodCAo
QykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotKiAgQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyogIENvcHlyaWdodCAoQykgMjAwMy0yMDA5LCAyMDEzLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICogIENvcHlyaWdodCAoQykgMjAwNyBD
YW1lcm9uIFp3YXJpY2ggKGN3endhcmljaEB1d2F0ZXJsb28uY2EpCiAqICBDb3B5cmlnaHQgKEMp
IDIwMDcgTWFrcyBPcmxvdmljaAogKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxl
cmljQHdlYmtpdC5vcmc+CkBAIC0xOTYsNiArMTk2LDE4IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjpm
aW5pc2hQYXJzaW5nKGNvbnN0IEkKICAgICBtX2Z1bmN0aW9uTW9kZSA9IGZ1bmN0aW9uTW9kZTsK
IH0KIAorYm9vbCBQcm9wZXJ0eUxpc3ROb2RlOjpoYXNTdGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShj
b25zdCBJZGVudGlmaWVyJiBwcm9wTmFtZSkKK3sKKyAgICBQcm9wZXJ0eUxpc3ROb2RlKiBsaXN0
ID0gdGhpczsKKyAgICB3aGlsZSAobGlzdCkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBj
dXJyZW50Tm9kZU5hbWUgPSBsaXN0LT5tX25vZGUtPm5hbWUoKTsKKyAgICAgICAgaWYgKGN1cnJl
bnROb2RlTmFtZSAmJiAqY3VycmVudE5vZGVOYW1lID09IHByb3BOYW1lKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGxpc3QgPSBsaXN0LT5tX25leHQ7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKK30KKwogVmFyaWFibGVFbnZpcm9ubWVudE5vZGU6OlZhcmlhYmxlRW52aXJv
bm1lbnROb2RlKFZhcmlhYmxlRW52aXJvbm1lbnQmIGxleGljYWxWYXJpYWJsZXMpCiB7CiAgICAg
bV9sZXhpY2FsVmFyaWFibGVzLnN3YXAobGV4aWNhbFZhcmlhYmxlcyk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0OCw2ICs2NDgs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5vZGUqKTsKICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5vZGUqLCBQcm9wZXJ0eUxpc3ROb2RlKik7
CiAKKyAgICAgICAgYm9vbCBoYXNTdGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShjb25zdCBJZGVudGlm
aWVyJiBwcm9wTmFtZSk7CisKICAgICBwcml2YXRlOgogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwog
ICAgICAgICB2b2lkIGVtaXRQdXRDb25zdGFudFByb3BlcnR5KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCosIFByb3BlcnR5Tm9kZSYpOwpAQCAtMTk4NCw2ICsxOTg2LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGVjbWFOYW1lKCkgeyByZXR1cm4g
bV9lY21hTmFtZSA/ICptX2VjbWFOYW1lIDogbV9uYW1lOyB9CiAgICAgICAgIHZvaWQgc2V0RWNt
YU5hbWUoY29uc3QgSWRlbnRpZmllciYgbmFtZSkgeyBtX2VjbWFOYW1lID0gbV9uYW1lLmlzTnVs
bCgpID8gJm5hbWUgOiAmbV9uYW1lOyB9CiAKKyAgICAgICAgYm9vbCBoYXNTdGF0aWNQcm9wZXJ0
eShjb25zdCBJZGVudGlmaWVyJiBwcm9wTmFtZSkgeyByZXR1cm4gbV9zdGF0aWNNZXRob2RzID8g
bV9zdGF0aWNNZXRob2RzLT5oYXNTdGF0aWNhbGx5TmFtZWRQcm9wZXJ0eShwcm9wTmFtZSkgOiBm
YWxzZTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9u
IDE5ODI4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NzEsNiArNTcxLDM0IEBAIFN0cmluZyBnZXRDYWxjdWxhdGVk
RGlzcGxheU5hbWUoQ2FsbEZyYW0KICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAordm9p
ZCBKU0Z1bmN0aW9uOjpzZXRGdW5jdGlvbk5hbWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIC8vIFRoZSAibmFtZSIgcHJvcGVydHkgbWF5IGhhdmUgYmVlbiBhbHJlYWR5
IGJlZW4gZGVmaW5lZCBhcyBwYXJ0IG9mIGEgcHJvcGVydHkgbGlzdCBpbiBhbgorICAgIC8vIG9i
amVjdCBsaXRlcmFsIChhbmQgdGhlcmVmb3JlIHJlaWZpZWQpLgorICAgIGlmIChoYXNSZWlmaWVk
TmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIWlzSG9zdEZ1bmN0aW9uKCkp
OworICAgIEFTU0VSVChqc0V4ZWN1dGFibGUoKS0+ZWNtYU5hbWUoKS5pc051bGwoKSk7CisgICAg
U3RyaW5nIG5hbWU7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgU3ltYm9s
SW1wbCogdWlkID0gYXNTeW1ib2wodmFsdWUpLT5wcml2YXRlTmFtZSgpLnVpZCgpOworICAgICAg
ICBpZiAodWlkLT5pc051bGxTeW1ib2woKSkKKyAgICAgICAgICAgIG5hbWUgPSBlbXB0eVN0cmlu
ZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuYW1lID0gbWFrZVN0cmluZygiWyIsIFN0
cmluZyhhc1N5bWJvbCh2YWx1ZSktPnByaXZhdGVOYW1lKCkudWlkKCkpLCAnXScpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgICAgIEpTU3RyaW5nKiBq
c1N0ciA9IHZhbHVlLnRvU3RyaW5nKGV4ZWMpOworICAgICAgICBpZiAodm0uZXhjZXB0aW9uKCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5hbWUgPSBqc1N0ci0+dmFsdWUoZXhlYyk7
CisgICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgcmVpZnlOYW1lKGV4ZWMsIG5hbWUpOworfQorCiB2b2lkIEpTRnVuY3Rpb246OnJlaWZ5
TGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAt
NTg4LDYgKzYxNiwxMiBAQCB2b2lkIEpTRnVuY3Rpb246OnJlaWZ5TGVuZ3RoKEV4ZWNTdGF0ZSog
CiAKIHZvaWQgSlNGdW5jdGlvbjo6cmVpZnlOYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBT
dHJpbmcgbmFtZSA9IGpzRXhlY3V0YWJsZSgpLT5lY21hTmFtZSgpLnN0cmluZygpOworICAgIHJl
aWZ5TmFtZShleGVjLCBuYW1lKTsKK30KKwordm9pZCBKU0Z1bmN0aW9uOjpyZWlmeU5hbWUoRXhl
Y1N0YXRlKiBleGVjLCBTdHJpbmcgbmFtZSkKK3sKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gdGhpcy0+cmFyZURhdGEodm0pOwogCkBA
IC01OTYsOCArNjMwLDYgQEAgdm9pZCBKU0Z1bmN0aW9uOjpyZWlmeU5hbWUoRXhlY1N0YXRlKiBl
eAogICAgIHVuc2lnbmVkIGluaXRpYWxBdHRyaWJ1dGVzID0gRG9udEVudW0gfCBSZWFkT25seTsK
ICAgICBjb25zdCBJZGVudGlmaWVyJiBwcm9wSUQgPSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFt
ZTsKIAotICAgIFN0cmluZyBuYW1lID0ganNFeGVjdXRhYmxlKCktPmVjbWFOYW1lKCkuc3RyaW5n
KCk7Ci0KICAgICBpZiAoanNFeGVjdXRhYmxlKCktPmlzR2V0dGVyKCkpCiAgICAgICAgIG5hbWUg
PSBtYWtlU3RyaW5nKCJnZXQgIiwgbmFtZSk7CiAgICAgZWxzZSBpZiAoanNFeGVjdXRhYmxlKCkt
PmlzU2V0dGVyKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0hvc3RGdW5jdGlvbk5vbklubGluZSgpIGNv
bnN0OwogICAgIGJvb2wgaXNDbGFzc0NvbnN0cnVjdG9yRnVuY3Rpb24oKSBjb25zdDsKIAorICAg
IHZvaWQgc2V0RnVuY3Rpb25OYW1lKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFtZSk7CisKIHByb3Rl
Y3RlZDoKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU0Z1bmN0aW9uKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBKU0Z1bmN0aW9uKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxl
KiwgSlNTY29wZSosIFN0cnVjdHVyZSopOwpAQCAtMTkxLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBoYXNSZWlmaWVkTmFtZSgpIGNvbnN0OwogICAgIHZvaWQgcmVpZnlMZW5ndGgoRXhl
Y1N0YXRlKik7CiAgICAgdm9pZCByZWlmeU5hbWUoRXhlY1N0YXRlKik7CisgICAgdm9pZCByZWlm
eU5hbWUoRXhlY1N0YXRlKiwgU3RyaW5nIG5hbWUpOwogICAgIHZvaWQgcmVpZnlMYXp5UHJvcGVy
dHlJZk5lZWRlZChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKTsKIAogICAg
IGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi55YW1sCShyZXZpc2lvbiAxOTgyODcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2LnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTgwNyw3ICs4MDcsNyBAQAog
LSBwYXRoOiBlczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zaG9ydGhhbmRfbWV0aG9kc19ub19s
ZXhpY2FsX2JpbmRpbmcuanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L2Z1bmN0
aW9uX25hbWVfcHJvcGVydHlfc3ltYm9sLWtleWVkX21ldGhvZHMuanMKLSAgY21kOiBydW5FUzYg
OmZhaWwKKyAgY21kOiBydW5FUzYgOm5vcm1hbAogLSBwYXRoOiBlczYvZnVuY3Rpb25fbmFtZV9w
cm9wZXJ0eV92YXJpYWJsZXNfY2xhc3MuanMKICAgY21kOiBydW5FUzYgOm5vcm1hbAogLSBwYXRo
OiBlczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV92YXJpYWJsZXNfZnVuY3Rpb24uanMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvY29tcHV0ZWQtZnVuY3Rpb24tbmFt
ZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9j
b21wdXRlZC1mdW5jdGlvbi1uYW1lcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvY29tcHV0ZWQtZnVuY3Rpb24tbmFtZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw2OCBAQAorbGV0IG51bGxTeW1ib2wgPSBTeW1ib2woKTsKKworbGV0
IHByb3BLZXlzID0gWworICAgICAiZm9vIiwgIiIsIHVuZGVmaW5lZCwgbnVsbCwgdHJ1ZSwgZmFs
c2UsIDAsIDEwLCAxMjM0LjU2NywKKyAgICAgU3ltYm9sKCJmb28iKSwgU3ltYm9sKCIiKSwgbnVs
bFN5bWJvbCwKK107CisKK2Z1bmN0aW9uIHRvS2V5U3RyaW5nKHgpIHsKKyAgICBpZiAodHlwZW9m
IHggPT09ICJzdHJpbmciKQorICAgICAgICByZXR1cm4gJyInICsgeCArICciJzsKKyAgICBpZiAo
dHlwZW9mIHggPT09ICJzeW1ib2wiKQorICAgICAgICByZXR1cm4geC50b1N0cmluZygpOworICAg
IHJldHVybiAiIiArIHg7Cit9CisKK2Z1bmN0aW9uIHRvRnVuY05hbWUoeCkgeworICAgIGlmICh0
eXBlb2YgeCA9PT0gInN5bWJvbCIpIHsKKyAgICAgICAgaWYgKHggIT09IG51bGxTeW1ib2wpIHsK
KyAgICAgICAgICAgIGxldCBzdHIgPSB4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsZXQga2V5
ID0gc3RyLnNsaWNlKDcsIHN0ci5sZW5ndGggLSAxKTsKKyAgICAgICAgICAgIHJldHVybiAiWyIg
KyBrZXkgKyAiXSI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBy
ZXR1cm4gIiIgKyB4OworfQorCitmdW5jdGlvbiBzaG91bGRCZSh0aXRsZSwgYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBFcnJv
cih0aXRsZSArICI6IGFjdHVhbDoiICsgYWN0dWFsICsgIiBleHBlY3RlZDoiICsgZXhwZWN0ZWQp
OworfQorCitmdW5jdGlvbiBtYWtlT2JqKHByb3BLZXksIGNsYXNzTWV0aG9kTmFtZSkgeworICAg
IHJldHVybiB7CisgICAgICAgIFtwcm9wS2V5XTogY2xhc3MgeyBzdGF0aWMgW2NsYXNzTWV0aG9k
TmFtZV0oKXt9IH0sCisgICAgfTsKK30KK25vSW5saW5lKG1ha2VPYmopOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcHJvcEtleXMu
bGVuZ3RoOyBrKyspIHsKKyAgICAgICAgbGV0IGtleSA9IHByb3BLZXlzW2tdOworICAgICAgICBs
ZXQgbyA9IG1ha2VPYmooa2V5LCAicHJvcCIpOworICAgICAgICBzaG91bGRCZSgidHlwZW9mIG9b
IiArIHRvS2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9ba2V5XS5uYW1lLCAic3Ry
aW5nIik7CisgICAgICAgIHNob3VsZEJlKCJvWyIgKyB0b0tleVN0cmluZyhrZXkpICsgIl0ubmFt
ZSIsIG9ba2V5XS5uYW1lLCB0b0Z1bmNOYW1lKGtleSkpOworICAgIH0KKworICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgcHJvcEtleXMubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgbGV0IGtleSA9IHBy
b3BLZXlzW2tdOworICAgICAgICBsZXQgbyA9IG1ha2VPYmooa2V5LCAibmFtZSIpOworICAgICAg
ICBzaG91bGRCZSgidHlwZW9mIG9bIiArIHRvS2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgdHlw
ZW9mIG9ba2V5XSwgImZ1bmN0aW9uIik7CisgICAgfQorCisgICAgZm9yICh2YXIgayA9IDA7IGsg
PCBwcm9wS2V5cy5sZW5ndGg7IGsrKykgeworICAgICAgICBsZXQga2V5ID0gcHJvcEtleXNba107
CisgICAgICAgIGxldCBwcm9wID0geyB0b1N0cmluZygpIHsgcmV0dXJuICJwcm9wIiB9IH07Cisg
ICAgICAgIGxldCBvID0gbWFrZU9iaihrZXksIHByb3ApOworICAgICAgICBzaG91bGRCZSgidHlw
ZW9mIG9bIiArIHRvS2V5U3RyaW5nKGtleSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9ba2V5XS5uYW1l
LCAic3RyaW5nIik7CisgICAgICAgIHNob3VsZEJlKCJvWyIgKyB0b0tleVN0cmluZyhrZXkpICsg
Il0ubmFtZSIsIG9ba2V5XS5uYW1lLCB0b0Z1bmNOYW1lKGtleSkpOworICAgIH0KKworICAgIGZv
ciAodmFyIGsgPSAwOyBrIDwgcHJvcEtleXMubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgbGV0IGtl
eSA9IHByb3BLZXlzW2tdOworICAgICAgICBsZXQgcHJvcCA9IHsgdG9TdHJpbmcoKSB7IHJldHVy
biAibmFtZSIgfSB9OworICAgICAgICBsZXQgbyA9IG1ha2VPYmooa2V5LCBwcm9wKTsKKyAgICAg
ICAgc2hvdWxkQmUoInR5cGVvZiBvWyIgKyB0b0tleVN0cmluZyhrZXkpICsgIl0ubmFtZSIsIHR5
cGVvZiBvW2tleV0sICJmdW5jdGlvbiIpOworICAgIH0KK30KSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5
ODI4NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE5IEBACisyMDE2LTAzLTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyBGdW5jdGlvbi5uYW1lIGZyb20gY29tcHV0ZWQg
cHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAg
ICoganMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgIC0gRXhlcmNpc2Ugb3Bfc2V0X2Z1bmN0aW9uX25hbWUgYXQgYWxsIHRpZXJzLgorCisgICAg
ICAgICoganMvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLXRvU3RyaW5nLXZzLW5hbWUuanM6CisgICAg
ICAgIC0gQWRkZWQgdGVzdHMgZm9yIGNvbXB1dGVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBq
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5qczoKKyAgICAg
ICAgLSByZWJhc2VkIHJlc3VsdHMuCisKIDIwMTYtMDMtMTYgIFJ5YW4gSGFkZGFkICA8cnlhbmhh
ZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFya2luZyBpbXBvcnRlZC9ibGluay9mYXN0L211
bHRpY29sL2R5bmFtaWMvcmVsYXlvdXQtYWJzcG9zLWluLXJlbHBvcy1zcGFubmVyLmh0bWwgYXMg
Zmxha3kgb24gaW9zLXNpbQpJbmRleDogTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29t
cHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
b2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5
ODI4NykKKysrIExheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBQQVNTIG8gPSB7IFsn
ZicrJ29vJ10oKSB7IHJldHVybiAxMDsgfSB9CiBQQVNTIG8uZm9vKCkgaXMgMTAKIFBBU1MgdHlw
ZW9mIG8uZm9vIGlzICdmdW5jdGlvbicKIFBBU1Mgby5mb28ubGVuZ3RoIGlzIDAKLVBBU1Mgby5m
b28ubmFtZSBpcyAnJworUEFTUyBvLmZvby5uYW1lIGlzICdmb28nCiBQQVNTIG8uZm9vLnRvU3Ry
aW5nKCkgaXMgJ2Z1bmN0aW9uICgpIHsgcmV0dXJuIDEwOyB9JwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS52YWx1ZSBpcyBvLmZvbwogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5lbnVtZXJhYmxlIGlzIHRydWUKQEAg
LTE3LDcgKzE3LDcgQEAgUEFTUyBtZXRob2ROYW1lID0gJ2FkZCc7IG8gPSB7IFttZXRob2ROYQog
UEFTUyBvLmFkZCg0MiwgLTEwKSBpcyAzMgogUEFTUyB0eXBlb2Ygby5hZGQgaXMgJ2Z1bmN0aW9u
JwogUEFTUyBvLmFkZC5sZW5ndGggaXMgMgotUEFTUyBvLmFkZC5uYW1lIGlzICcnCitQQVNTIG8u
YWRkLm5hbWUgaXMgJ2FkZCcKIFBBU1Mgby5hZGQudG9TdHJpbmcoKSBpcyAnZnVuY3Rpb24gKHgs
IHkpIHsgcmV0dXJuIHggKyB5OyB9JwogUEFTUyBvID0geyBbIChmdW5jdGlvbigpIHsgcmV0dXJu
ICdtZXRob2QnOyB9KSgpIF0oeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCiBQQVNTIG8ubWV0aG9kKDE0MiwgLTEwKSBpcyAxMzIKSW5kZXg6IExheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9mdW5jdGlvbi10b1N0cmluZy12cy1uYW1lLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9mdW5jdGlvbi10b1N0cmluZy12
cy1uYW1lLmpzCShyZXZpc2lvbiAxOTgyODcpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvZnVuY3Rpb24tdG9TdHJpbmctdnMtbmFtZS5qcwkod29ya2luZyBjb3B5KQpAQCAtNSw2ICs1
LDEzIEBAIGxldCBzZWN0aW9uOwogbGV0IGZhaWx1cmVzID0gIiI7CiBsZXQgZmFpbHVyZUNvdW50
ID0gMDsKIAorbGV0IG5vblN5bWJvbFZhbHVlcyA9IFsgImZvbyIsICIiLCB1bmRlZmluZWQsIG51
bGwsIHRydWUsIGZhbHNlLCAwLCAxMCwgMTIzNC41NjcgXTsKK2xldCBzeW1ib2xWYWx1ZXMgPSBb
CisgICAgeyB2OiBTeW1ib2woImZvbyIpLCBuYW1lOiAiW2Zvb10iIH0sCisgICAgeyB2OiBTeW1i
b2woIiIpLCBuYW1lOiAiW10iIH0sCisgICAgeyB2OiBTeW1ib2woKSwgbmFtZTogIiIgfSwKK107
CisKIGZ1bmN0aW9uIGlzV2hpdGVTcGFjZShzdHJpbmcpIHsKICAgICBsZXQgY2MgPSBzdHJpbmcu
Y2hhckNvZGVBdCgwKTsKICAgICBzd2l0Y2ggKGNjKSB7CkBAIC01MTgsNTggKzUyNSwxNDUgQEAg
c2VjdGlvbiA9ICJjbGFzcyBleHByZXNzaW9ucyBpbiBkeW5hbWljYQogICAgIHRlc3QoYmFyMygp
LCAiZm9vMyIsICJjbGFzcyB7IGNvbnN0cnVjdG9yKHgpIHsgcmV0dXJuIHg7IH0gc3R1ZmYzKCkg
eyByZXR1cm4gMTU7IH0gfSIpOwogfSkoKTsKIAotLy8gRklYTUU6IFVuY29tbWVudCB0aGVzZSB3
aGVuIHdlJ3ZlIGFkZGVkIHN1cHBvcnQgZm9yIEZ1bmN0aW9uLm5hbWUgb2YgY29tcHV0ZWQgcHJv
cGVydGllcy4KLS8vIHNlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIHN0cmluZyBwcm9wZXJ0eSI7
Ci0vLyB7Ci0vLyAgICAgbGV0IHN0cjEgPSAiZm9vIjsKLS8vICAgICBsZXQgc3RyMiA9ICIiOwot
Ly8gICAgIGxldCBvID0geyAgICAKLS8vICAgICAgICAgW3N0cjFdOiBmdW5jdGlvbigpIHt9LAot
Ly8gICAgICAgICBbc3RyMl06IGZ1bmN0aW9uKCkge30KLS8vICAgICB9OwotLy8gICAgIHRlc3Qo
b1tzdHIxXSwgImZvbyIsICJmdW5jdGlvbigpIHt9Iik7Ci0vLyAgICAgdGVzdChvW3N0cjJdLCAi
IiwgImZ1bmN0aW9uKCkge30iKTsKLS8vIH0KLS8vIAotLy8gbGV0IHN5bTEgPSBTeW1ib2woImZv
byIpOwotLy8gbGV0IHN5bTIgPSBTeW1ib2woKTsKLQotLy8gc2VjdGlvbiA9ICJPYmplY3QgY29t
cHV0ZWQgc3ltYm9sIHByb3BlcnR5IjsKLS8vIHsKLS8vICAgICBsZXQgbyA9IHsgICAgCi0vLyAg
ICAgICAgIFtzeW0xXTogZnVuY3Rpb24oKSB7fSwKLS8vICAgICAgICAgW3N5bTJdOiBmdW5jdGlv
bigpIHt9Ci0vLyAgICAgfTsKLS8vICAgICB0ZXN0KG9bc3ltMV0sICJbZm9vXSIsICJmdW5jdGlv
bigpIHt9Iik7Ci0vLyAgICAgdGVzdChvW3N5bTJdLCAiIiwgImZ1bmN0aW9uKCkge30iKTsKLS8v
IH0KLQotLy8gc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIHByb3BlcnR5IHdpdGgg
c2hvcnRoYW5kIGZ1bmN0aW9uIjsKLS8vIHsKLS8vICAgICBsZXQgbyA9IHsKLS8vICAgICAgICAg
W3N5bTFdKCkge30sCi0vLyAgICAgICAgIFtzeW0yXSgpIHt9Ci0vLyAgICAgfTsKLS8vICAgICB0
ZXN0KG9bc3ltMV0sICJbZm9vXSIsICJmdW5jdGlvbigpIHt9Iik7Ci0vLyAgICAgdGVzdChvW3N5
bTJdLCAiIiwgImZ1bmN0aW9uKCkge30iKTsKLS8vIH0KLQotLy8gc2VjdGlvbiA9ICJPYmplY3Qg
Y29tcHV0ZWQgc3ltYm9sIHByb3BlcnR5IHdpdGggZ2V0L3NldCBmdW5jdGlvbiI7Ci0vLyB7Ci0v
LyAgICAgbGV0IG8gPSB7Ci0vLyAgICAgICAgIGdldCBbc3ltMV0oKSB7fSwKLS8vICAgICAgICAg
c2V0IFtzeW0xXSh4KSB7fSwKLS8vICAgICAgICAgZ2V0IFtzeW0yXSgpIHt9LAotLy8gICAgICAg
ICBzZXQgW3N5bTJdKHgpIHt9Ci0vLyAgICAgfTsKLS8vICAgICBsZXQgZGVzYyA9IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywgc3ltMSk7Ci0vLyAgICAgdGVzdChkZXNjLmdldCwg
ImdldCBbZm9vXSIsICJmdW5jdGlvbigpIHt9Iik7Ci0vLyAgICAgdGVzdChkZXNjLnNldCwgInNl
dCBbZm9vXSIsICJmdW5jdGlvbih4KSB7fSIpOwotLy8gCi0vLyAgICAgZGVzYyA9IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywgc3ltMik7Ci0vLyAgICAgdGVzdChkZXNjLmdldCwg
ImdldCAiLCAiZnVuY3Rpb24oKSB7fSIpOwotLy8gICAgIHRlc3QoZGVzYy5zZXQsICJzZXQgIiwg
ImZ1bmN0aW9uKHgpIHt9Iik7Ci0vLyB9CitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBub24t
c3ltYm9sIGFub255bW91cyBmdW5jdGlvbiBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVl
KSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGZ1bmN0aW9u
KCkge30sCisgICAgICAgIH0KKyAgICAgICAgdGVzdChvW3ZhbHVlXSwgdG9TdHJpbmcodmFsdWUp
LCAiZnVuY3Rpb24oKSB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQo
e30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiArIHRvU3RyaW5nKHZhbHVlKSwgImZ1
bmN0aW9uICIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAg
IHJ1blRlc3QodmFsdWVzW2ldKTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVk
IG5vbi1zeW1ib2wgbmFtZWQgZnVuY3Rpb24gcHJvcGVydHkiOworKGZ1bmN0aW9uKCkgeworICAg
IGxldCB2YWx1ZXMgPSBub25TeW1ib2xWYWx1ZXM7CisgICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1
ZSkgeworICAgICAgICBsZXQgbyA9IHsgICAgCisgICAgICAgICAgICBbdmFsdWVdOiBmdW5jdGlv
biBiYXIoKSB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCAiYmFyIiwgImZ1
bmN0aW9uIGJhcigpIHt9Iik7CisKKyAgICAgICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7
fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJib3VuZCBiYXIiLCAiZnVuY3Rpb24gYmFyKCkgeyBb
bmF0aXZlIGNvZGVdIH0iKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMu
bGVuZ3RoOyBpKyspCisgICAgICAgIHJ1blRlc3QodmFsdWVzW2ldKTsKK30pKCk7CisKK3NlY3Rp
b24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgcHJvcGVydHkgd2l0aCBzaG9ydGhhbmQg
ZnVuY3Rpb24iOworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgdmFsdWVzID0gbm9uU3ltYm9sVmFs
dWVzOworICAgIGZ1bmN0aW9uIHJ1blRlc3QodmFsdWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAg
IAorICAgICAgICAgICAgW3ZhbHVlXSgpIHt9LAorICAgICAgICB9CisgICAgICAgIHRlc3Qob1t2
YWx1ZV0sIHRvU3RyaW5nKHZhbHVlKSwgImZ1bmN0aW9uKCkge30iKTsKKworICAgICAgICBsZXQg
Ym91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIg
KyB0b1N0cmluZyh2YWx1ZSksICJmdW5jdGlvbiAiICsgdG9TdHJpbmcodmFsdWUpICsgIigpIHsg
W25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVz
Lmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXSk7Cit9KSgpOworCitzZWN0
aW9uID0gIk9iamVjdCBjb21wdXRlZCBub24tc3ltYm9sIHByb3BlcnR5IHdpdGggZ2V0L3NldCBm
dW5jdGlvbiI7CisoZnVuY3Rpb24gKCkgeworICAgIGxldCB2YWx1ZXMgPSBub25TeW1ib2xWYWx1
ZXM7CisgICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1ZSkgeworICAgICAgICBsZXQgbyA9IHsgICAg
CisgICAgICAgICAgICBnZXQgW3ZhbHVlXSgpIHt9LAorICAgICAgICAgICAgc2V0IFt2YWx1ZV0o
eCkge30sCisgICAgICAgIH0KKworICAgICAgICBsZXQgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IobywgdmFsdWUpOworICAgICAgICB0ZXN0KGRlc2MuZ2V0LCAiZ2V0ICIg
KyB2YWx1ZSwgImZ1bmN0aW9uKCkge30iKTsKKyAgICAgICAgdGVzdChkZXNjLnNldCwgInNldCAi
ICsgdmFsdWUsICJmdW5jdGlvbih4KSB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IGRlc2Mu
Z2V0LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgZ2V0ICIgKyB0b1N0cmlu
Zyh2YWx1ZSksICJmdW5jdGlvbiBnZXQgIiArIHRvU3RyaW5nKHZhbHVlKSArICIoKSB7IFtuYXRp
dmUgY29kZV0gfSIpOworICAgICAgICBib3VuZCA9IGRlc2Muc2V0LmJpbmQoe30pOworICAgICAg
ICB0ZXN0KGJvdW5kLCAiYm91bmQgc2V0ICIgKyB0b1N0cmluZyh2YWx1ZSksICJmdW5jdGlvbiBz
ZXQgIiArIHRvU3RyaW5nKHZhbHVlKSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVu
VGVzdCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3lt
Ym9sIGFub255bW91cyBmdW5jdGlvbiBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlLCBleHBl
Y3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVlXTog
ZnVuY3Rpb24oKSB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCBleHBlY3Rl
ZE5hbWUsICJmdW5jdGlvbigpIHt9Iik7CisKKyAgICAgICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0u
YmluZCh7fSk7CisgICAgICAgIHRlc3QoYm91bmQsICJib3VuZCAiICsgZXhwZWN0ZWROYW1lLCAi
ZnVuY3Rpb24gIiArIGV4cGVjdGVkTmFtZSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
cnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5hbWUpOworfSkoKTsKKworc2VjdGlvbiA9
ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIG5hbWVkIGZ1bmN0aW9uIHByb3BlcnR5IjsKKyhmdW5j
dGlvbigpIHsKKyAgICBsZXQgdmFsdWVzID0gc3ltYm9sVmFsdWVzOworICAgIGZ1bmN0aW9uIHJ1
blRlc3QodmFsdWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVl
XTogZnVuY3Rpb24gYmFyKCkge30sCisgICAgICAgIH0KKyAgICAgICAgdGVzdChvW3ZhbHVlXSwg
ImJhciIsICJmdW5jdGlvbiBiYXIoKSB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFs
dWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgYmFyIiwgImZ1bmN0aW9u
IGJhcigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXS52KTsKK30p
KCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIHN5bWJvbCBwcm9wZXJ0eSB3aXRoIHNo
b3J0aGFuZCBmdW5jdGlvbiI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJv
bFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlLCBleHBlY3RlZE5hbWUpIHsKKyAg
ICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVlXSgpIHt9LAorICAgICAgICB9
CisgICAgICAgIHRlc3Qob1t2YWx1ZV0sIGV4cGVjdGVkTmFtZSwgImZ1bmN0aW9uKCkge30iKTsK
KworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChi
b3VuZCwgImJvdW5kICIgKyBleHBlY3RlZE5hbWUsICJmdW5jdGlvbiAiICsgZXhwZWN0ZWROYW1l
ICsgIigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXS52LCB2YWx1
ZXNbaV0ubmFtZSk7Cit9KSgpOworCitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRlZCBzeW1ib2wg
cHJvcGVydHkgd2l0aCBnZXQvc2V0IGZ1bmN0aW9uIjsKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0
IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlLCBleHBl
Y3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgZ2V0IFt2YWx1
ZV0oKSB7fSwKKyAgICAgICAgICAgIHNldCBbdmFsdWVdKHgpIHt9LAorICAgICAgICB9CisKKyAg
ICAgICAgbGV0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIHZhbHVl
KTsKKyAgICAgICAgdGVzdChkZXNjLmdldCwgImdldCAiICsgZXhwZWN0ZWROYW1lLCAiZnVuY3Rp
b24oKSB7fSIpOworICAgICAgICB0ZXN0KGRlc2Muc2V0LCAic2V0ICIgKyBleHBlY3RlZE5hbWUs
ICJmdW5jdGlvbih4KSB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IGRlc2MuZ2V0LmJpbmQo
e30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgZ2V0ICIgKyBleHBlY3RlZE5hbWUsICJm
dW5jdGlvbiBnZXQgIiArIGV4cGVjdGVkTmFtZSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOwor
ICAgICAgICBib3VuZCA9IGRlc2Muc2V0LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAi
Ym91bmQgc2V0ICIgKyBleHBlY3RlZE5hbWUsICJmdW5jdGlvbiBzZXQgIiArIGV4cGVjdGVkTmFt
ZSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFs
dWVzW2ldLm5hbWUpOworfSkoKTsKIAogLy8gVGVzdCBmdW5jdGlvbnMgaW4gZGVzdHJ1Y3R1cmlu
ZyBhc3NpZ25tZW50cy4KIHNlY3Rpb24gPSAiZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50IjsKQEAg
LTY0OSw4ICs3NDMsOCBAQCBzZWN0aW9uID0gImdldC9zZXQgZnVuY3Rpb24iOwogCiAgICAgbGV0
IG8zID0geyBnZXQgWzEwMF0oKSB7fSwgc2V0IFsxMDBdKHgpe30gfTsKICAgICBsZXQgZGVzYzMg
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8zLCAxMDApOwotICAgIHRlc3QoZGVz
YzMuZ2V0LCAiZ2V0ICIsICJmdW5jdGlvbigpIHt9Iik7Ci0gICAgdGVzdChkZXNjMy5zZXQsICJz
ZXQgIiwgImZ1bmN0aW9uKHgpIHt9Iik7CisgICAgdGVzdChkZXNjMy5nZXQsICJnZXQgMTAwIiwg
ImZ1bmN0aW9uKCkge30iKTsKKyAgICB0ZXN0KGRlc2MzLnNldCwgInNldCAxMDAiLCAiZnVuY3Rp
b24oeCkge30iKTsKIAogICAgIHNlY3Rpb24gPSAiYm91bmQgZ2V0L3NldCBmdW5jdGlvbiI7CiAg
ICAgewpAQCAtNjczLDkgKzc2Nyw5IEBAIHNlY3Rpb24gPSAiZ2V0L3NldCBmdW5jdGlvbiI7CiAg
ICAgICAgIHRlc3QoYm91bmQyLCAiYm91bmQgc2V0ICIsICJmdW5jdGlvbiBzZXQgKCkgeyBbbmF0
aXZlIGNvZGVdIH0iKTsKIAogICAgICAgICBib3VuZDEgPSBkZXNjMy5nZXQuYmluZChvKTsKLSAg
ICAgICAgdGVzdChib3VuZDEsICJib3VuZCBnZXQgIiwgImZ1bmN0aW9uIGdldCAoKSB7IFtuYXRp
dmUgY29kZV0gfSIpOworICAgICAgICB0ZXN0KGJvdW5kMSwgImJvdW5kIGdldCAxMDAiLCAiZnVu
Y3Rpb24gZ2V0IDEwMCgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CiAgICAgICAgIGJvdW5kMiA9IGRl
c2MzLnNldC5iaW5kKG8pOwotICAgICAgICB0ZXN0KGJvdW5kMiwgImJvdW5kIHNldCAiLCAiZnVu
Y3Rpb24gc2V0ICgpIHsgW25hdGl2ZSBjb2RlXSB9Iik7CisgICAgICAgIHRlc3QoYm91bmQyLCAi
Ym91bmQgc2V0IDEwMCIsICJmdW5jdGlvbiBzZXQgMTAwKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsK
ICAgICB9CiB9CiAKQEAgLTczMiw1ICs4MjYsMjA5IEBAIHNlY3Rpb24gPSAiYm91bmQgZnVuY3Rp
b25zIHdpdGggbm9uLXN0cmkKICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiwgImZ1bmN0aW9uICgp
IHsgW25hdGl2ZSBjb2RlXSB9Iik7ICAgIAogfQogCitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRl
ZCBub24tc3ltYm9sIGFub255bW91cyBjbGFzcyBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZh
bHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNz
IHt9LAorICAgICAgICB9CisgICAgICAgIHRlc3Qob1t2YWx1ZV0sIHRvU3RyaW5nKHZhbHVlKSwg
ImNsYXNzIHt9Iik7CisKKyAgICAgICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7fSk7Cisg
ICAgICAgIHRlc3QoYm91bmQsICJib3VuZCAiICsgdG9TdHJpbmcodmFsdWUpLCAiZnVuY3Rpb24g
IiArIHRvU3RyaW5nKHZhbHVlKSArICIoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVz
dCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgbm9uLXN5
bWJvbCBuYW1lZCBjbGFzcyBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVl
cyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAg
ICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIGJhciB7fSwKKyAg
ICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCAiYmFyIiwgImNsYXNzIGJhciB7fSIpOwor
CisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAgICB0ZXN0KGJv
dW5kLCAiYm91bmQgYmFyIiwgImZ1bmN0aW9uIGJhcigpIHsgW25hdGl2ZSBjb2RlXSB9Iik7Cisg
ICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAg
ICBydW5UZXN0KHZhbHVlc1tpXSk7Cit9KSgpOworCitzZWN0aW9uID0gIk9iamVjdCBjb21wdXRl
ZCBzeW1ib2wgYW5vbnltb3VzIGNsYXNzIHByb3BlcnR5IjsKKyhmdW5jdGlvbigpIHsKKyAgICBs
ZXQgdmFsdWVzID0gc3ltYm9sVmFsdWVzOworICAgIGZ1bmN0aW9uIHJ1blRlc3QodmFsdWUsIGV4
cGVjdGVkTmFtZSkgeworICAgICAgICBsZXQgbyA9IHsgICAgCisgICAgICAgICAgICBbdmFsdWVd
OiBjbGFzcyB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCBleHBlY3RlZE5h
bWUsICJjbGFzcyB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30p
OworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiArIGV4cGVjdGVkTmFtZSwgImZ1bmN0aW9u
ICIgKyBleHBlY3RlZE5hbWUgKyAiKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKKyAgICB9CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHJ1blRlc3Qo
dmFsdWVzW2ldLnYsIHZhbHVlc1tpXS5uYW1lKTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0
IGNvbXB1dGVkIHN5bWJvbCBuYW1lZCBjbGFzcyBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVl
KSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIGJh
ciB7fSwKKyAgICAgICAgfQorICAgICAgICB0ZXN0KG9bdmFsdWVdLCAiYmFyIiwgImNsYXNzIGJh
ciB7fSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJpbmQoe30pOworICAgICAg
ICB0ZXN0KGJvdW5kLCAiYm91bmQgYmFyIiwgImZ1bmN0aW9uIGJhcigpIHsgW25hdGl2ZSBjb2Rl
XSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsr
KQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXS52KTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2Jq
ZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgYW5vbnltb3VzIGNsYXNzICh3aXRoIG5hbWUgbWV0aG9k
KSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IG5vblN5bWJvbFZh
bHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAg
ICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIHsgc3RhdGljIG5hbWUoKXt9IH0sCisgICAg
ICAgIH0KKyAgICAgICAgc2hvdWxkQmUoInR5cGVvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUp
ICsgIl0ubmFtZSIsIHR5cGVvZiBvW3ZhbHVlXS5uYW1lLCAiZnVuY3Rpb24iKTsKKyAgICAgICAg
c2hvdWxkQmUoInRvU3RyaW5nIG9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1l
Iiwgb1t2YWx1ZV0udG9TdHJpbmcoKSwgImNsYXNzIHsgc3RhdGljIG5hbWUoKXt9IH0iKTsKKwor
ICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3Vu
ZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVz
dCh2YWx1ZXNbaV0pOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgbm9uLXN5
bWJvbCBuYW1lZCBjbGFzcyAod2l0aCBuYW1lIG1ldGhvZCkgcHJvcGVydHkiOworKGZ1bmN0aW9u
KCkgeworICAgIGxldCB2YWx1ZXMgPSBub25TeW1ib2xWYWx1ZXM7CisgICAgZnVuY3Rpb24gcnVu
VGVzdCh2YWx1ZSkgeworICAgICAgICBsZXQgbyA9IHsgICAgCisgICAgICAgICAgICBbdmFsdWVd
OiBjbGFzcyBiYXIgeyBzdGF0aWMgbmFtZSgpe30gfSwKKyAgICAgICAgfQorICAgICAgICBzaG91
bGRCZSgidHlwZW9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgdHlwZW9m
IG9bdmFsdWVdLm5hbWUsICJmdW5jdGlvbiIpOworICAgICAgICBzaG91bGRCZSgidG9TdHJpbmcg
b2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUiLCBvW3ZhbHVlXS50b1N0cmlu
ZygpLCAiY2xhc3MgYmFyIHsgc3RhdGljIG5hbWUoKXt9IH0iKTsKKworICAgICAgICBsZXQgYm91
bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIsICJm
dW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0pOwor
fSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIGFub255bW91cyBjbGFz
cyAod2l0aCBuYW1lIG1ldGhvZCkgcHJvcGVydHkiOworKGZ1bmN0aW9uKCkgeworICAgIGxldCB2
YWx1ZXMgPSBzeW1ib2xWYWx1ZXM7CisgICAgZnVuY3Rpb24gcnVuVGVzdCh2YWx1ZSwgZXhwZWN0
ZWROYW1lKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNs
YXNzIHsgc3RhdGljIG5hbWUoKXt9IH0sCisgICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmUoInR5
cGVvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIHR5cGVvZiBvW3ZhbHVl
XS5uYW1lLCAiZnVuY3Rpb24iKTsKKyAgICAgICAgc2hvdWxkQmUoInRvU3RyaW5nIG9mICIsICJv
WyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgb1t2YWx1ZV0udG9TdHJpbmcoKSwgImNs
YXNzIHsgc3RhdGljIG5hbWUoKXt9IH0iKTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVl
XS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7
IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVl
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5h
bWUpOworfSkoKTsKKworc2VjdGlvbiA9ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIG5hbWVkIGNs
YXNzICh3aXRoIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHZhbHVlcyA9IHN5bWJvbFZhbHVlczsKKyAgICBmdW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7Cisg
ICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNsYXNzIGJhciB7IHN0
YXRpYyBuYW1lKCl7fSB9LAorICAgICAgICB9CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2YgIiwg
Im9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUiLCB0eXBlb2Ygb1t2YWx1ZV0ubmFtZSwg
ImZ1bmN0aW9uIik7CisgICAgICAgIHNob3VsZEJlKCJ0b1N0cmluZyBvZiAiLCAib1siICsgdG9T
dHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIG9bdmFsdWVdLnRvU3RyaW5nKCksICJjbGFzcyBiYXIg
eyBzdGF0aWMgbmFtZSgpe30gfSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVdLmJp
bmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiwgImZ1bmN0aW9uICgpIHsgW25h
dGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxl
bmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXS52KTsKK30pKCk7CisKK3NlY3Rp
b24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1ib2wgYW5vbnltb3VzIGNsYXNzICh3aXRoIGNv
bXB1dGVkIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZh
bHVlcyA9IG5vblN5bWJvbFZhbHVlczsKKyAgICBsZXQgbmFtZVN0ciA9ICJuYW1lIjsKKyAgICBm
dW5jdGlvbiBydW5UZXN0KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAg
ICAgIFt2YWx1ZV06IGNsYXNzIHsgc3RhdGljIFtuYW1lU3RyXSgpe30gfSwKKyAgICAgICAgfQor
ICAgICAgICBzaG91bGRCZSgidHlwZW9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5u
YW1lIiwgdHlwZW9mIG9bdmFsdWVdLm5hbWUsICJmdW5jdGlvbiIpOworICAgICAgICBzaG91bGRC
ZSgidG9TdHJpbmcgb2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVlKSArICJdLm5hbWUiLCBvW3Zh
bHVlXS50b1N0cmluZygpLCAiY2xhc3MgeyBzdGF0aWMgW25hbWVTdHJdKCl7fSB9Iik7CisKKyAg
ICAgICAgbGV0IGJvdW5kID0gb1t2YWx1ZV0uYmluZCh7fSk7CisgICAgICAgIHRlc3QoYm91bmQs
ICJib3VuZCAiLCAiZnVuY3Rpb24gKCkgeyBbbmF0aXZlIGNvZGVdIH0iKTsKKyAgICB9CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHJ1blRlc3Qo
dmFsdWVzW2ldKTsKK30pKCk7CisKK3NlY3Rpb24gPSAiT2JqZWN0IGNvbXB1dGVkIG5vbi1zeW1i
b2wgbmFtZWQgY2xhc3MgKHdpdGggY29tcHV0ZWQgbmFtZSBtZXRob2QpIHByb3BlcnR5IjsKKyhm
dW5jdGlvbigpIHsKKyAgICBsZXQgdmFsdWVzID0gbm9uU3ltYm9sVmFsdWVzOworICAgIGxldCBu
YW1lU3RyID0gIm5hbWUiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QodmFsdWUpIHsKKyAgICAgICAg
bGV0IG8gPSB7ICAgIAorICAgICAgICAgICAgW3ZhbHVlXTogY2xhc3MgYmFyIHsgc3RhdGljIFtu
YW1lU3RyXSgpe30gfSwKKyAgICAgICAgfQorICAgICAgICBzaG91bGRCZSgidHlwZW9mICIsICJv
WyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgdHlwZW9mIG9bdmFsdWVdLm5hbWUsICJm
dW5jdGlvbiIpOworICAgICAgICBzaG91bGRCZSgidG9TdHJpbmcgb2YgIiwgIm9bIiArIHRvU3Ry
aW5nKHZhbHVlKSArICJdLm5hbWUiLCBvW3ZhbHVlXS50b1N0cmluZygpLCAiY2xhc3MgYmFyIHsg
c3RhdGljIFtuYW1lU3RyXSgpe30gfSIpOworCisgICAgICAgIGxldCBib3VuZCA9IG9bdmFsdWVd
LmJpbmQoe30pOworICAgICAgICB0ZXN0KGJvdW5kLCAiYm91bmQgIiwgImZ1bmN0aW9uICgpIHsg
W25hdGl2ZSBjb2RlXSB9Iik7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVz
Lmxlbmd0aDsgaSsrKQorICAgICAgICBydW5UZXN0KHZhbHVlc1tpXSk7Cit9KSgpOworCitzZWN0
aW9uID0gIk9iamVjdCBjb21wdXRlZCBzeW1ib2wgYW5vbnltb3VzIGNsYXNzICh3aXRoIGNvbXB1
dGVkIG5hbWUgbWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVl
cyA9IHN5bWJvbFZhbHVlczsKKyAgICBsZXQgbmFtZVN0ciA9ICJuYW1lIjsKKyAgICBmdW5jdGlv
biBydW5UZXN0KHZhbHVlLCBleHBlY3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IG8gPSB7ICAgIAor
ICAgICAgICAgICAgW3ZhbHVlXTogY2xhc3MgeyBzdGF0aWMgW25hbWVTdHJdKCl7fSB9LAorICAg
ICAgICB9CisgICAgICAgIHNob3VsZEJlKCJ0eXBlb2YgIiwgIm9bIiArIHRvU3RyaW5nKHZhbHVl
KSArICJdLm5hbWUiLCB0eXBlb2Ygb1t2YWx1ZV0ubmFtZSwgImZ1bmN0aW9uIik7CisgICAgICAg
IHNob3VsZEJlKCJ0b1N0cmluZyBvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUpICsgIl0ubmFt
ZSIsIG9bdmFsdWVdLnRvU3RyaW5nKCksICJjbGFzcyB7IHN0YXRpYyBbbmFtZVN0cl0oKXt9IH0i
KTsKKworICAgICAgICBsZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVz
dChib3VuZCwgImJvdW5kICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
cnVuVGVzdCh2YWx1ZXNbaV0udiwgdmFsdWVzW2ldLm5hbWUpOworfSkoKTsKKworc2VjdGlvbiA9
ICJPYmplY3QgY29tcHV0ZWQgc3ltYm9sIG5hbWVkIGNsYXNzICh3aXRoIGNvbXB1dGVkIG5hbWUg
bWV0aG9kKSBwcm9wZXJ0eSI7CisoZnVuY3Rpb24oKSB7CisgICAgbGV0IHZhbHVlcyA9IHN5bWJv
bFZhbHVlczsKKyAgICBsZXQgbmFtZVN0ciA9ICJuYW1lIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0
KHZhbHVlKSB7CisgICAgICAgIGxldCBvID0geyAgICAKKyAgICAgICAgICAgIFt2YWx1ZV06IGNs
YXNzIGJhciB7IHN0YXRpYyBbbmFtZVN0cl0oKXt9IH0sCisgICAgICAgIH0KKyAgICAgICAgc2hv
dWxkQmUoInR5cGVvZiAiLCAib1siICsgdG9TdHJpbmcodmFsdWUpICsgIl0ubmFtZSIsIHR5cGVv
ZiBvW3ZhbHVlXS5uYW1lLCAiZnVuY3Rpb24iKTsKKyAgICAgICAgc2hvdWxkQmUoInRvU3RyaW5n
IG9mICIsICJvWyIgKyB0b1N0cmluZyh2YWx1ZSkgKyAiXS5uYW1lIiwgb1t2YWx1ZV0udG9TdHJp
bmcoKSwgImNsYXNzIGJhciB7IHN0YXRpYyBbbmFtZVN0cl0oKXt9IH0iKTsKKworICAgICAgICBs
ZXQgYm91bmQgPSBvW3ZhbHVlXS5iaW5kKHt9KTsKKyAgICAgICAgdGVzdChib3VuZCwgImJvdW5k
ICIsICJmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfSIpOworICAgIH0KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgcnVuVGVzdCh2YWx1ZXNb
aV0udik7Cit9KSgpOworCiBpZiAoZmFpbHVyZUNvdW50KQogICAgIHRocm93IEVycm9yKCJGb3Vu
ZCAiICsgZmFpbHVyZUNvdW50ICsgIiBmYWlsdXJlczpcbiIgKyBmYWlsdXJlcyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9k
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxp
dGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5qcwkocmV2aXNpb24gMTk4Mjg3KQorKysgTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIHNob3VsZE5vdFRocm93KCJvID0geyBbJ2YnKydv
byddKCkgeyByZXQKIHNob3VsZEJlKCJvLmZvbygpIiwgIjEwIik7CiBzaG91bGRCZSgidHlwZW9m
IG8uZm9vIiwgIidmdW5jdGlvbiciKTsKIHNob3VsZEJlKCJvLmZvby5sZW5ndGgiLCAiMCIpOwot
c2hvdWxkQmUoIm8uZm9vLm5hbWUiLCAiJyciKTsKK3Nob3VsZEJlKCJvLmZvby5uYW1lIiwgIidm
b28nIik7CiBzaG91bGRCZSgiby5mb28udG9TdHJpbmcoKSIsICInZnVuY3Rpb24gKCkgeyByZXR1
cm4gMTA7IH0nIik7CiBzaG91bGRCZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihv
LCAnZm9vJykudmFsdWUiLCAiby5mb28iKTsKIHNob3VsZEJlVHJ1ZSgiT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuZW51bWVyYWJsZSIpOwpAQCAtMTUsNyArMTUsNyBA
QCBzaG91bGROb3RUaHJvdygibWV0aG9kTmFtZSA9ICdhZGQnOyBvID0gCiBzaG91bGRCZSgiby5h
ZGQoNDIsIC0xMCkiLCAiMzIiKTsKIHNob3VsZEJlKCJ0eXBlb2Ygby5hZGQiLCAiJ2Z1bmN0aW9u
JyIpOwogc2hvdWxkQmUoIm8uYWRkLmxlbmd0aCIsICIyIik7Ci1zaG91bGRCZSgiby5hZGQubmFt
ZSIsICInJyIpOworc2hvdWxkQmUoIm8uYWRkLm5hbWUiLCAiJ2FkZCciKTsKIHNob3VsZEJlKCJv
LmFkZC50b1N0cmluZygpIiwgIidmdW5jdGlvbiAoeCwgeSkgeyByZXR1cm4geCArIHk7IH0nIik7
CiAKIHNob3VsZE5vdFRocm93KCJvID0geyBbIChmdW5jdGlvbigpIHsgcmV0dXJuICdtZXRob2Qn
OyB9KSgpIF0oeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>