<?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>220233</bug_id>
          
          <creation_ts>2021-01-03 23:34:49 -0800</creation_ts>
          <short_desc>[JSC] Legacy RegExp fields should be accessors</short_desc>
          <delta_ts>2022-02-06 13:34:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228652</see_also>
          <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>225997</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>claude.pache</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rbyers</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717063</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-03 23:34:49 -0800</bug_when>
    <thetext>[JSC] Legacy RegExp fields should be accessors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717064</commentid>
    <comment_count>1</comment_count>
      <attachid>416922</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-03 23:40:18 -0800</bug_when>
    <thetext>Created attachment 416922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717065</commentid>
    <comment_count>2</comment_count>
      <attachid>416923</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-03 23:41:49 -0800</bug_when>
    <thetext>Created attachment 416923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717066</commentid>
    <comment_count>3</comment_count>
      <attachid>416923</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-03 23:51:55 -0800</bug_when>
    <thetext>Comment on attachment 416923
Patch

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

&gt; JSTests/test262/expectations.yaml:13
&gt; +test/annexB/built-ins/RegExp/prototype/compile/this-cross-realm-instance.js:
&gt; +  default: &apos;Test262Error: `RegExp.prototype.compile.call(otherRealm_regexp)` throws TypeError Expected a TypeError to be thrown but no exception was thrown at all&apos;
&gt; +  strict mode: &apos;Test262Error: `RegExp.prototype.compile.call(otherRealm_regexp)` throws TypeError Expected a TypeError to be thrown but no exception was thrown at all&apos;
&gt; +test/annexB/built-ins/RegExp/prototype/compile/this-subclass-instance.js:
&gt; +  default: &apos;Test262Error: `subclass_regexp.compile()` throws TypeError Expected a TypeError to be thrown but no exception was thrown at all&apos;
&gt; +  strict mode: &apos;Test262Error: `subclass_regexp.compile()` throws TypeError Expected a TypeError to be thrown but no exception was thrown at all&apos;

This is legacy-regexp features that are not implemented yet.

&gt; JSTests/test262/expectations.yaml:692
&gt; +test/built-ins/Function/prototype/toString/built-in-function-object.js:
&gt; +  default: &apos;Test262Error: Conforms to NativeFunction Syntax: &quot;function $*() {\n    [native code]\n}&quot; (%RegExp%.$*)&apos;
&gt; +  strict mode: &apos;Test262Error: Conforms to NativeFunction Syntax: &quot;function $*() {\n    [native code]\n}&quot; (%RegExp%.$*)&apos;

Previously, RegExp.$* is not an accessor. So it passed. But now, it is failing because it becomes accessor, and it has a bit fun name.
We should fix it in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717067</commentid>
    <comment_count>4</comment_count>
      <attachid>416924</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-03 23:54:28 -0800</bug_when>
    <thetext>Created attachment 416924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717071</commentid>
    <comment_count>5</comment_count>
      <attachid>416924</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-04 01:09:58 -0800</bug_when>
    <thetext>Comment on attachment 416924
Patch

Will look into failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717072</commentid>
    <comment_count>6</comment_count>
      <attachid>416924</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-04 01:18:51 -0800</bug_when>
    <thetext>Comment on attachment 416924
Patch

Hmm, custom accessors are looking into caller&apos;s lexicalGlobalObject more in DOM. So, it looks like we should not use CustomAccessor in RegExp. Let&apos;s use usual accessors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717079</commentid>
    <comment_count>7</comment_count>
      <attachid>416928</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-04 02:08:42 -0800</bug_when>
    <thetext>Created attachment 416928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717083</commentid>
    <comment_count>8</comment_count>
      <attachid>416929</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-04 02:20:50 -0800</bug_when>
    <thetext>Created attachment 416929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717216</commentid>
    <comment_count>9</comment_count>
      <attachid>416968</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-04 18:20:45 -0800</bug_when>
    <thetext>Created attachment 416968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717225</commentid>
    <comment_count>10</comment_count>
      <attachid>416968</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-04 21:17:06 -0800</bug_when>
    <thetext>Comment on attachment 416968
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:879
&gt; +                    if (result != TriState::Indeterminate)

Since putEntry() is guarded with staticPropertiesReified(), can we assert that result is not TriState::Indeterminate?

&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:62
&gt; +    multiline       regExpConstructorMultiline      Accessor|DontEnum

The spec doesn&apos;t define `RegExp.multiline` / `RegExp.$*`.
Since they are not implemented in Chrome / Firefox, maybe we can drop them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717239</commentid>
    <comment_count>11</comment_count>
      <attachid>416968</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 00:46:12 -0800</bug_when>
    <thetext>Comment on attachment 416968
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSObject.cpp:879
&gt;&gt; +                    if (result != TriState::Indeterminate)
&gt; 
&gt; Since putEntry() is guarded with staticPropertiesReified(), can we assert that result is not TriState::Indeterminate?

Yes, that&apos;s correct. Changed.

&gt;&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:62
&gt;&gt; +    multiline       regExpConstructorMultiline      Accessor|DontEnum
&gt; 
&gt; The spec doesn&apos;t define `RegExp.multiline` / `RegExp.$*`.
&gt; Since they are not implemented in Chrome / Firefox, maybe we can drop them?

I think this is OK for now since having these old extensions does not cause problems. Considering about the risks breaking apps (like, iOS / macOS apps using JavaScriptCore as scripting language internally), I think it is worth keeping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717240</commentid>
    <comment_count>12</comment_count>
      <attachid>416968</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 00:47:29 -0800</bug_when>
    <thetext>Comment on attachment 416968
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSObject.cpp:879
&gt;&gt;&gt; +                    if (result != TriState::Indeterminate)
&gt;&gt; 
&gt;&gt; Since putEntry() is guarded with staticPropertiesReified(), can we assert that result is not TriState::Indeterminate?
&gt; 
&gt; Yes, that&apos;s correct. Changed.

Ah, lookupPut is not guarding putEntry with staticPropertiesReified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717241</commentid>
    <comment_count>13</comment_count>
      <attachid>416968</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 00:50:06 -0800</bug_when>
    <thetext>Comment on attachment 416968
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSObject.cpp:879
&gt;&gt;&gt;&gt; +                    if (result != TriState::Indeterminate)
&gt;&gt;&gt; 
&gt;&gt;&gt; Since putEntry() is guarded with staticPropertiesReified(), can we assert that result is not TriState::Indeterminate?
&gt;&gt; 
&gt;&gt; Yes, that&apos;s correct. Changed.
&gt; 
&gt; Ah, lookupPut is not guarding putEntry with staticPropertiesReified.

Yeah, right. I&apos;ve inserted assert here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717242</commentid>
    <comment_count>14</comment_count>
      <attachid>416976</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 00:50:54 -0800</bug_when>
    <thetext>Created attachment 416976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717338</commentid>
    <comment_count>15</comment_count>
      <attachid>416976</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-05 09:10:41 -0800</bug_when>
    <thetext>Comment on attachment 416976
Patch

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

&gt; Source/JavaScriptCore/runtime/Lookup.cpp:87
&gt; +TriState setUpAndCallStaticSetterSlot(JSGlobalObject* globalObject, VM&amp; vm, const ClassInfo* classInfo, const HashTableValue* entry, JSObject* baseObject, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)

I think this method is unnecessary, so is putEntry() return type change. The similar function above setUpStaticFunctionSlot() is used for [[Get]].
Let&apos;s copycat what putEntry() does for CustomAccessor: it acquires getter/setter from `entry` via propertyPutter().
Since we can&apos;t use it directly (function signatures don&apos;t match), let&apos;s rename it to customPropertyPutter(), and introduce propertyPutter() for regular GetterSetter.

&gt; Source/JavaScriptCore/runtime/IntlLocalePrototype.cpp:61
&gt; +  baseName         IntlLocalePrototypeGetterBaseName         DontEnum|Accessor|ReadOnly

It would nice to add property redefinition tests, covering ReadOnly + Accessors, since those are tricky:
  Object.defineProperty(%getter_no_setter%, {writable: true / false});
  Object.defineProperty(%getter_no_setter%, {value: &apos;foo&apos;});
  Object.defineProperty(%getter_and_setter%, {writable: true / false});
  Object.defineProperty(% getter_and_setter%, {value: &apos;foo&apos;});

&gt; JSTests/test262/expectations.yaml:8
&gt; +test/annexB/built-ins/RegExp/prototype/compile/this-cross-realm-instance.js:

These might pass now, since CustomAccessor is no longer used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717560</commentid>
    <comment_count>16</comment_count>
      <attachid>416976</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 17:36:06 -0800</bug_when>
    <thetext>Comment on attachment 416976
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Lookup.cpp:87
&gt;&gt; +TriState setUpAndCallStaticSetterSlot(JSGlobalObject* globalObject, VM&amp; vm, const ClassInfo* classInfo, const HashTableValue* entry, JSObject* baseObject, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)
&gt; 
&gt; I think this method is unnecessary, so is putEntry() return type change. The similar function above setUpStaticFunctionSlot() is used for [[Get]].
&gt; Let&apos;s copycat what putEntry() does for CustomAccessor: it acquires getter/setter from `entry` via propertyPutter().
&gt; Since we can&apos;t use it directly (function signatures don&apos;t match), let&apos;s rename it to customPropertyPutter(), and introduce propertyPutter() for regular GetterSetter.

This does not work well currently. We should materialize GetterSetter for setter invocation while we can invoke CustomAccessors without materialization.
Our GetterSetter IC relies on the fact that we can get GetterSetter cells currently. (`slot.setCacheableSetter(baseObject, offset);`)
So, invoking a setter will cause regression because of lack of IC.
And, invoking setter function from C++ world is more costly compared to invoking custom accessor functions from C++ since setter function needs to be invoked via vmEntryXXX.

So, I think the current strategy (materializing setter) is better for performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717561</commentid>
    <comment_count>17</comment_count>
      <attachid>416976</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-05 17:38:02 -0800</bug_when>
    <thetext>Comment on attachment 416976
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlLocalePrototype.cpp:61
&gt;&gt; +  baseName         IntlLocalePrototypeGetterBaseName         DontEnum|Accessor|ReadOnly
&gt; 
&gt; It would nice to add property redefinition tests, covering ReadOnly + Accessors, since those are tricky:
&gt;   Object.defineProperty(%getter_no_setter%, {writable: true / false});
&gt;   Object.defineProperty(%getter_no_setter%, {value: &apos;foo&apos;});
&gt;   Object.defineProperty(%getter_and_setter%, {writable: true / false});
&gt;   Object.defineProperty(% getter_and_setter%, {value: &apos;foo&apos;});

Sounds good! Added.

&gt;&gt; JSTests/test262/expectations.yaml:8
&gt;&gt; +test/annexB/built-ins/RegExp/prototype/compile/this-cross-realm-instance.js:
&gt; 
&gt; These might pass now, since CustomAccessor is no longer used.

We need to introduce realm check in compile function. And this patch does not change that because this patch focuses on accessor changes first.
So, in this patch, we simply leave it. We should implement remaining part of legacy-regexp thing (legacy flag, invalidation, compile&apos;s realm check etc.) and then it should pass in that patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717565</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-05 17:54:11 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #16)
&gt; This does not work well currently. We should materialize GetterSetter for
&gt; setter invocation while we can invoke CustomAccessors without
&gt; materialization.
&gt; Our GetterSetter IC relies on the fact that we can get GetterSetter cells
&gt; currently. (`slot.setCacheableSetter(baseObject, offset);`)
&gt; So, invoking a setter will cause regression because of lack of IC.
&gt; And, invoking setter function from C++ world is more costly compared to
&gt; invoking custom accessor functions from C++ since setter function needs to
&gt; be invoked via vmEntryXXX.

Thanks for the explanation.
putEntry() is already complicated, thanks to TriState::Indeterminate of callCustomSetter, and it&apos;s complexity will grow once we resolve FIXMEs + use it in putToPrimitive().

(In reply to Yusuke Suzuki from comment #12)
&gt; Ah, lookupPut is not guarding putEntry with staticPropertiesReified.

Yes, but it it&apos;s only invoked for a single non-configurable custom accessor (`window.location`).
Is there a way we can revert putEntry() to return `bool`, and just add an ASSERT?
With `result == TriState::True`, we currently don&apos;t handle TriState::Indeterminate.

(In reply to Yusuke Suzuki from comment #17)
&gt; Comment on attachment 416976 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416976&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/runtime/IntlLocalePrototype.cpp:61
&gt; &gt;&gt; +  baseName         IntlLocalePrototypeGetterBaseName         DontEnum|Accessor|ReadOnly
&gt; &gt; 
&gt; &gt; It would nice to add property redefinition tests, covering ReadOnly + Accessors, since those are tricky:
&gt; &gt;   Object.defineProperty(%getter_no_setter%, {writable: true / false});
&gt; &gt;   Object.defineProperty(%getter_no_setter%, {value: &apos;foo&apos;});
&gt; &gt;   Object.defineProperty(%getter_and_setter%, {writable: true / false});
&gt; &gt;   Object.defineProperty(% getter_and_setter%, {value: &apos;foo&apos;});
&gt; 
&gt; Sounds good! Added.

Also please cover `Object.create(Object.defineProperty(%getter_no_setter%, {set() {}})).%key% = {}`.
I wish we wouldn&apos;t mix ReadOnly with accessors, and use something like `Getter|Setter` in property table (for custom accessors as well, but I won&apos;t block on it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718623</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-10 23:35:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/72986721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779246</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-23 16:52:52 -0700</bug_when>
    <thetext>*** Bug 151348 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779287</commentid>
    <comment_count>21</comment_count>
      <attachid>434156</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-23 19:36:46 -0700</bug_when>
    <thetext>Created attachment 434156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779303</commentid>
    <comment_count>22</comment_count>
      <attachid>434156</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-24 00:49:46 -0700</bug_when>
    <thetext>Comment on attachment 434156
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:1
&gt; +2021-07-23  Yusuke Suzuki  &lt;ysuzuki@apple.com&gt; and Alexey Shvayka  &lt;shvaikalesh@gmail.com&gt;

LGTM, yet I&apos;m not sure I can formally r+ given that the co-authorship :)

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +            1. We use Accessor attributes to make getter / setter for these fields. This patch adds setter support for Accessor LUT field.

This line no longer holds true: we use CustomAccessor instead.
It would nice for ChangeLog to state what parts of the proposal is (not) implemented, the (intentionally) required same-realmness, and that the issue described in #151348 is now fixed.
My variant would be:

        This patch implements a part of Legacy RegExp features proposal [1], replacing
        custom values with custom accessors that require |this| value to be RegExp
        constructor of the same realm.

        Apart from fixing property descriptors, this change brings legacy RegExpConstructor
        fields in compliance with invariants of internal methods [2] (described in #151348),
        aligning JSC with V8 and SpiderMonkey.

        It doesn&apos;t, however, implement [[LegacyFeaturesEnabled]] and RegExp.prototype.compile
        changes.

        [1]: https://github.com/tc39/proposal-regexp-legacy-features
        [2]: https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779304</commentid>
    <comment_count>23</comment_count>
      <attachid>434156</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-24 00:49:48 -0700</bug_when>
    <thetext>Comment on attachment 434156
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:1
&gt; +2021-07-23  Yusuke Suzuki  &lt;ysuzuki@apple.com&gt; and Alexey Shvayka  &lt;shvaikalesh@gmail.com&gt;

LGTM, yet I&apos;m not sure I can formally r+ given that the co-authorship :)

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +            1. We use Accessor attributes to make getter / setter for these fields. This patch adds setter support for Accessor LUT field.

This line no longer holds true: we use CustomAccessor instead.
It would nice for ChangeLog to state what parts of the proposal is (not) implemented, the (intentionally) required same-realmness, and that the issue described in #151348 is now fixed.
My variant would be:

        This patch implements a part of Legacy RegExp features proposal [1], replacing
        custom values with custom accessors that require |this| value to be RegExp
        constructor of the same realm.

        Apart from fixing property descriptors, this change brings legacy RegExpConstructor
        fields in compliance with invariants of internal methods [2] (described in #151348),
        aligning JSC with V8 and SpiderMonkey.

        It doesn&apos;t, however, implement [[LegacyFeaturesEnabled]] and RegExp.prototype.compile
        changes.

        [1]: https://github.com/tc39/proposal-regexp-legacy-features
        [2]: https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779334</commentid>
    <comment_count>24</comment_count>
      <attachid>434156</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-07-24 11:15:44 -0700</bug_when>
    <thetext>Comment on attachment 434156
Patch

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

&gt; Source/JavaScriptCore/bytecode/AccessCase.cpp:1480
&gt; +        Structure* currStructure = hasAlternateBase() ? alternateBase()-&gt;structure(vm) : structure();

This could be auto given all the names clearly indicate the type.

&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:100
&gt; +        return throwVMTypeError(globalObject, scope, &quot;RegExp.$N getters require RegExp constructor as |this|&quot;_s);

Do we use the &quot;|this|&quot; syntax in any other exceptions?

&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:111
&gt; +        return throwVMTypeError(globalObject, scope, &quot;RegExp.input getters require RegExp constructor as |this|&quot;_s);

The exception string reads a bit odd to me. I think it should probably be &quot;RegExp.input getter requires RegExp constructor as |this|&quot;. (same for others).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779410</commentid>
    <comment_count>25</comment_count>
      <attachid>434156</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-26 00:52:44 -0700</bug_when>
    <thetext>Comment on attachment 434156
Patch

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

Thanks!

&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:13
&gt;&gt;&gt; +            1. We use Accessor attributes to make getter / setter for these fields. This patch adds setter support for Accessor LUT field.
&gt;&gt; 
&gt;&gt; This line no longer holds true: we use CustomAccessor instead.
&gt;&gt; It would nice for ChangeLog to state what parts of the proposal is (not) implemented, the (intentionally) required same-realmness, and that the issue described in #151348 is now fixed.
&gt;&gt; My variant would be:
&gt;&gt; 
&gt;&gt;         This patch implements a part of Legacy RegExp features proposal [1], replacing
&gt;&gt;         custom values with custom accessors that require |this| value to be RegExp
&gt;&gt;         constructor of the same realm.
&gt;&gt; 
&gt;&gt;         Apart from fixing property descriptors, this change brings legacy RegExpConstructor
&gt;&gt;         fields in compliance with invariants of internal methods [2] (described in #151348),
&gt;&gt;         aligning JSC with V8 and SpiderMonkey.
&gt;&gt; 
&gt;&gt;         It doesn&apos;t, however, implement [[LegacyFeaturesEnabled]] and RegExp.prototype.compile
&gt;&gt;         changes.
&gt;&gt; 
&gt;&gt;         [1]: https://github.com/tc39/proposal-regexp-legacy-features
&gt;&gt;         [2]: https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods
&gt; 
&gt; This line no longer holds true: we use CustomAccessor instead.
&gt; It would nice for ChangeLog to state what parts of the proposal is (not) implemented, the (intentionally) required same-realmness, and that the issue described in #151348 is now fixed.
&gt; My variant would be:
&gt; 
&gt;         This patch implements a part of Legacy RegExp features proposal [1], replacing
&gt;         custom values with custom accessors that require |this| value to be RegExp
&gt;         constructor of the same realm.
&gt; 
&gt;         Apart from fixing property descriptors, this change brings legacy RegExpConstructor
&gt;         fields in compliance with invariants of internal methods [2] (described in #151348),
&gt;         aligning JSC with V8 and SpiderMonkey.
&gt; 
&gt;         It doesn&apos;t, however, implement [[LegacyFeaturesEnabled]] and RegExp.prototype.compile
&gt;         changes.
&gt; 
&gt;         [1]: https://github.com/tc39/proposal-regexp-legacy-features
&gt;         [2]: https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods

Sounds good!

&gt;&gt; Source/JavaScriptCore/bytecode/AccessCase.cpp:1480
&gt;&gt; +        Structure* currStructure = hasAlternateBase() ? alternateBase()-&gt;structure(vm) : structure();
&gt; 
&gt; This could be auto given all the names clearly indicate the type.

We would like to use types especially in AccessCase IC algorithm since it is too complex and this type can offer good documentation meaning (e.g. it is not RegisteredStructure).
e.g. https://bugs.webkit.org/show_bug.cgi?id=226072#c33

&gt;&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:100
&gt;&gt; +        return throwVMTypeError(globalObject, scope, &quot;RegExp.$N getters require RegExp constructor as |this|&quot;_s);
&gt; 
&gt; Do we use the &quot;|this|&quot; syntax in any other exceptions?

Yes in JSC.

&gt;&gt; Source/JavaScriptCore/runtime/RegExpConstructor.cpp:111
&gt;&gt; +        return throwVMTypeError(globalObject, scope, &quot;RegExp.input getters require RegExp constructor as |this|&quot;_s);
&gt; 
&gt; The exception string reads a bit odd to me. I think it should probably be &quot;RegExp.input getter requires RegExp constructor as |this|&quot;. (same for others).

Changed, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779412</commentid>
    <comment_count>26</comment_count>
      <attachid>434194</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-26 01:03:42 -0700</bug_when>
    <thetext>Created attachment 434194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780647</commentid>
    <comment_count>27</comment_count>
      <attachid>434194</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-07-29 17:00:19 -0700</bug_when>
    <thetext>Comment on attachment 434194
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780664</commentid>
    <comment_count>28</comment_count>
      <attachid>434595</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-29 17:37:54 -0700</bug_when>
    <thetext>Created attachment 434595
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780673</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-29 18:36:38 -0700</bug_when>
    <thetext>Committed r280460 (240095@main): &lt;https://commits.webkit.org/240095@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434595.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780876</commentid>
    <comment_count>30</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-07-30 10:34:43 -0700</bug_when>
    <thetext>It looks like these changes broke 42 JSC tests on Debug arm64, tracking in https://bugs.webkit.org/show_bug.cgi?id=228652</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837943</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-06 13:34:39 -0800</bug_when>
    <thetext>*** Bug 177813 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416922</attachid>
            <date>2021-01-03 23:40:18 -0800</date>
            <delta_ts>2021-01-03 23:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210103234017.patch</filename>
            <type>text/plain</type>
            <size>50139</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ4ZmQ1ZGE1NDQ4MGY3ZjA0NTMxMzRhYjgwYWI2MjkyMzJkZjVjLi5iOWNmMWEzY2VmMmFjZmI5
Njk1N2Q0M2FlMzM2MWFlM2E3ZjVhODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuCisKKyAgICAgICAgMS4gV2UgY2hhbmdlIHRoZXNlIGZpZWxkcyBmcm9tIEN1c3RvbVZh
bHVlIHRvIEN1c3RvbUFjY2Vzc29yIGJlY2F1c2UgdGhleSBhcmUgYWNjZXNzb3JzLgorICAgICAg
ICAyLiBXZSBjaGFuZ2UgQ3VzdG9tQWNjZXNzb3IncyBzZW1hbnRpY3M6IGl0IGdldHMgSlNHbG9i
YWxPYmplY3Qgb2Ygc2xvdEJhc2UgaW5zdGVhZCBvZiBjYWxsZXIuIFRoaXMgc2hvdWxkIGJlIGJl
dHRlciBzaW5jZQorICAgICAgICAgICB0aGV5IGFyZSBhY2Nlc3NvcnMsIG5vdCB2YWx1ZXMuIFNv
IGl0cyByZWFsbSBtdXN0IGJlIHRoZSBzYW1lIG9mIHNsb3RCYXNlLCBub3QgdGhlIGNhbGxlcidz
IG9uZS4gVGhpcyBpcyBhbHNvIHJlcXVpcmVkCisgICAgICAgICAgIHRvIGltcGxlbWVudCBuZXcg
UmVnRXhwIGFjY2Vzc29ycycgc2VtYW50aWNzLgorCisgICAgICAgIFRvIGFjaGlldmUgKDIpLCB3
ZSBuZWVkCisKKyAgICAgICAgMS4gdG8gbW92ZSBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1h
cCBmcm9tIFZNIHRvIEpTR2xvYmFsT2JqZWN0LiBUaGlzIGlzIG1vcmUgY29ycmVjdCBzaW5jZSBj
YWNoZWQgSlNGdW5jdGlvbnMgc2hvdWxkIGJlIHRpZWQgdG8gSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIDIuIHRvIGdldCBKU0dsb2JhbE9iamVjdCBmcm9tIHNsb3RCYXNlIHdoZW4gY2FsbGluZyBj
dXN0b20gYWNjZXNzb3JzIGZyb20gQysrLgorICAgICAgICAzLiB0byB1c2UgSlNHbG9iYWxPYmpl
Y3Qgb2Ygc2xvdEJhc2UncyBzdHJ1Y3R1cmUgaW4gQWNjZXNzQ2FzZS4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXJlZ2V4cC1sZWdhY3ktZmVhdHVyZXMK
KworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgorICAg
ICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fs
bEN1c3RvbVNldHRlcik6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCk6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uRm9yR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlciBjb25zdCk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JHZXR0ZXIgY29uc3QpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGwpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIpOgorICAgICAgICAq
IHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorCiAyMDIxLTAxLTAxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIHVubmVjZXNz
YXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5nIHNpbXBsZSBvYmplY3QgcGF0dGVybiBk
ZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDYyNWU4NTcyYmM4NWU5YzM4YmYxYjVhYWNlOThjZmVh
OGQ2NTZlNDkuLmRhNTgxMzU3MDU3YjhmMzhmMWZlMDlmN2NlNDhkNWVjOTE2NjkyY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTE0MzEs
MTQgKzE0MzEsMTMgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAg
ICAgIEdQUlJlZyB2YWx1ZVJlZ3NQYXlsb2FkR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsK
IAotICAgICAgICBpZiAoaXNWYWxpZE9mZnNldChtX29mZnNldCkpIHsKLSAgICAgICAgICAgIFN0
cnVjdHVyZSogY3VyclN0cnVjdHVyZTsKLSAgICAgICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFz
ZSgpKQotICAgICAgICAgICAgICAgIGN1cnJTdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUoKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjdXJyU3RydWN0dXJlID0gYWx0ZXJuYXRlQmFz
ZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBTdHJ1Y3R1cmUqIGN1cnJTdHJ1Y3R1cmU7Cisg
ICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFzZSgpKQorICAgICAgICAgICAgY3VyclN0cnVjdHVy
ZSA9IHN0cnVjdHVyZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjdXJyU3RydWN0dXJl
ID0gYWx0ZXJuYXRlQmFzZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBpZiAoaXNWYWxpZE9m
ZnNldChtX29mZnNldCkpCiAgICAgICAgICAgICBjdXJyU3RydWN0dXJlLT5zdGFydFdhdGNoaW5n
UHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIG9mZnNldCgpKTsKLSAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgZG9lc1Byb3BlcnR5U3RvcmFnZUxvYWRzID0gbV90eXBlID09IExvYWQgCiAgICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gR2V0R2V0dGVyCkBAIC0xNzE4LDkgKzE3MTcsMTQgQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkK
ICAgICAgICAgICAgIC8vIGdldHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwog
ICAgICAgICAgICAgLy8gc2V0dGVyOiBib29sICgqUHV0VmFsdWVGdW5jKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKICAg
ICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBw
cm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYWx1
ZSAocmVjZWl2ZXIpLgorICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRo
ZSBjYWxsZXIncyBKU0dsb2JhbE9iamVjdCwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRo
ZSBzbG90QmFzZSdzIEpTR2xvYmFsT2JqZWN0LgogICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JD
dXN0b20gPSB0YWtlc1Byb3BlcnR5T3duZXJBc0NGdW5jdGlvbkFyZ3VtZW50ID8gcHJvcGVydHlP
d25lckdQUiA6IHJlY2VpdmVyRm9yQ3VzdG9tR2V0R1BSOyAKLSAgICAgICAgICAgIC8vIFdlIGRv
IG5vdCBuZWVkIHRvIGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlIHRoZSBvd25lciBDb2Rl
QmxvY2sgKGV2ZW4gaWYgSlNHbG9iYWxPYmplY3QqIGlzIG9uZSBvZiBDb2RlQmxvY2sgdGhhdCBp
cyBpbmxpbmVkIGFuZCBoZWxkIGJ5IERGRyBDb2RlQmxvY2spCi0gICAgICAgICAgICAvLyBtdXN0
IGtlZXAgaXQgYWxpdmUuCisgICAgICAgICAgICBpZiAoIXRha2VzUHJvcGVydHlPd25lckFzQ0Z1
bmN0aW9uQXJndW1lbnQpCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0ID0gY3VyclN0cnVj
dHVyZS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRv
IGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlCisgICAgICAgICAgICAvLyAxLiBpZiBpdCBp
cyBDdXN0b21WYWx1ZSwgdGhlIG93bmVyIENvZGVCbG9jayAoZXZlbiBpZiBKU0dsb2JhbE9iamVj
dCogaXMgb25lIG9mIENvZGVCbG9jayB0aGF0IGlzIGlubGluZWQgYW5kIGhlbGQgYnkgREZHIENv
ZGVCbG9jaykgbXVzdCBrZWVwIGl0IGFsaXZlLgorICAgICAgICAgICAgLy8gMi4gaWYgaXQgaXMg
Q3VzdG9tQWNjZXNzb3IsIHN0cnVjdHVyZSBzaG91bGQgaG9sZCBpdC4KICAgICAgICAgICAgIGlm
IChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29y
R2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pZGVudGlmaWVyKTsK
ICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKaW5kZXggYjVjOGRiNzE1MjZhYWIyZjE0Yzk2NGUz
MjM0YjU1ZTRhMDAxMWY2NC4uYjk3YTQwNGRjOTA3NzcyMDMzZTg3ODU4ODI4YzQ5OGE5NmM5M2Nj
NSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQpAQCAtOTQsOSArOTQs
MTMgQEAgd2hpbGUgKDxJTj4pIHsKICAgICAgICAgaWYgKCRhdHQgPX4gbS9GdW5jdGlvbi8pIHsK
ICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiIsICJmdW5jdGlvbiIgPT4gJHZhbCwgInBhcmFtcyIgPT4gKGxlbmd0aCgkcGFy
YW0pID8gJHBhcmFtIDogIiIpLCAiaW50cmluc2ljIiA9PiAobGVuZ3RoKCRpbnRyaW5zaWMpID8g
JGludHJpbnNpYyA6ICJOb0ludHJpbnNpYyIpIH0pOwogICAgICAgICAgICAgI3ByaW50ZiBTVERF
UlIgIldBUk5JTkc6IE51bWJlciBvZiBhcmd1bWVudHMgbWlzc2luZyBmb3IgJGtleS8kdmFsXG4i
IGlmIChsZW5ndGgoJHBhcmFtKSA9PSAwKTsKLSAgICAgICAgfSBlbHNpZiAoJGF0dCA9fiBtL0Fj
Y2Vzc29yLykgeworICAgICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQWNjZXNzb3IvICYmICEoJGF0
dCA9fiBtL0N1c3RvbUFjY2Vzc29yLykpIHsKICAgICAgICAgICAgIG15ICRnZXQgPSAkdmFsOwog
ICAgICAgICAgICAgbXkgJHB1dCA9ICJudWxscHRyIjsKKyAgICAgICAgICAgIGlmICghKCRhdHQg
PX4gbS9SZWFkT25seS8pKSB7CisgICAgICAgICAgICAgICAgJHB1dCA9ICJzZXQiIC4ganNjX3Vj
Zmlyc3QoJHZhbCk7CisgICAgICAgICAgICAgICAgZGllICJDdXJyZW50bHksIHNldHRlciBpcyBu
b3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAi
dHJ1ZSI7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IiLCAiZ2V0IiA9PiAkZ2V0LCAicHV0IiA9PiAkcHV0IH0pOwogICAg
ICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQ2VsbFByb3BlcnR5LykgewpAQCAtMTEwLDcgKzExNCw3
IEBAIHdoaWxlICg8SU4+KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+
ICJQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayIsICJjYmFjayIgPT4gJGNiYWNr
IH0pOwogICAgICAgICB9IGVsc2lmIChsZW5ndGgoJGF0dCkpIHsKICAgICAgICAgICAgIG15ICRn
ZXQgPSAkdmFsOwotICAgICAgICAgICAgbXkgJHB1dCA9ICIwIjsKKyAgICAgICAgICAgIG15ICRw
dXQgPSAibnVsbHB0ciI7CiAgICAgICAgICAgICBpZiAoISgkYXR0ID1+IG0vUmVhZE9ubHkvKSkg
ewogICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpzY191Y2ZpcnN0KCR2YWwpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3Vz
dG9tR2V0dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3Rv
bUdldHRlclNldHRlci5jcHAKaW5kZXggZTE0MmU2NjIyM2JjNWNiYjNmMThmOTQzOWNkZGY0MDcw
ZWZlNjE1My4uNjJjMjY0YjkyN2ViOTcyNTBlOWY3OTgzM2YwZWFiMjQ1NzE5ODY2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIFRyaVN0YXRlIGNhbGxDdXN0b21TZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0CiAgICAgaWYgKGlz
QWNjZXNzb3IpIHsKICAgICAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgICAgICByZXR1cm4gVHJp
U3RhdGU6OkZhbHNlOwotICAgICAgICBzZXR0ZXIoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjplbmNv
ZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CisgICAgICAgIHNldHRlcihz
bG90QmFzZS0+Z2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSksIEpTVmFsdWU6OmVuY29k
ZSh0aGlzVmFsdWUpLCBKU1ZhbHVlOjplbmNvZGUodmFsdWUpKTsKICAgICAgICAgLy8gQWx3YXlz
IHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgc2V0dGVyIGFuZCBpdCBpcyBvYnNlcnZlZCBhcyBh
biBhY2Nlc3NvciB0byB1c2Vycy4KICAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpUcnVlOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JQcm90b3R5cGUuY3BwCmluZGV4IDA0Y2NkYzA2ZWUzMzQyZjU4ODZlYTM5OWFkNjRhMWM4M2M0
YzRlMGYuLjBjZTViYmRjOTE0ZWM0MGFjYzE3NmRmN2EwZDY4ZGFkNjAyNmM4ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90
eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bENvbGxhdG9yUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkNvbGxhdG9yIiwgJkJhc2U6OnNfaW5mbwogCiAvKiBT
b3VyY2UgZm9yIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaAogQGJlZ2luIGNvbGxhdG9yUHJv
dG90eXBlVGFibGUKLSAgY29tcGFyZSAgICAgICAgICBJbnRsQ29sbGF0b3JQcm90b3R5cGVHZXR0
ZXJDb21wYXJlICAgICAgICBEb250RW51bXxBY2Nlc3NvcgorICBjb21wYXJlICAgICAgICAgIElu
dGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNvbXBhcmUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29y
fFJlYWRPbmx5CiAgIHJlc29sdmVkT3B0aW9ucyAgSW50bENvbGxhdG9yUHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24gMAogQGVuZAogKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQ
cm90b3R5cGUuY3BwCmluZGV4IDczOGM4YzY0YmIyZmI2YjY0YzAwZWI3MjZjODM1NmQ1YjFjYTU5
NjcuLmUxNDA2Njc1NGNkNzhhOTZhNmEzZDY1MTVkN2RiODVlNWM1NjIzMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkRhdGVUaW1lRm9ybWF0Iiwg
JgogCiAvKiBTb3VyY2UgZm9yIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5sdXQuaAogQGJl
Z2luIGRhdGVUaW1lRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAgICAgICAgICAg
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9u
dEVudW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVh
ZE9ubHkKICAgZm9ybWF0UmFuZ2UgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZUZ1bmNGb3JtYXRSYW5nZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICBmb3JtYXRU
b1BhcnRzICAgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFy
dHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIHJlc29sdmVkT3B0aW9ucyAgICAgICBJ
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZVByb3RvdHlwZS5jcHAKaW5kZXggMWUxZWViODYzMzVmYjYwOTY1YmE5YzEwM2Q3
ODY0OTcyNTdhMGIzMy4uNzU1YzM4ZTE5YzExN2Q5Y2RhNzA0NTc1NzMyMmMwNzk2MGIwYjkzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVBy
b3RvdHlwZS5jcHAKQEAgLTU4LDE2ICs1OCwxNiBAQCBjb25zdCBDbGFzc0luZm8gSW50bExvY2Fs
ZVByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5Mb2NhbGUiLCAmQmFzZTo6c19pbmZvLCAmbAog
ICBtYXhpbWl6ZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWF4aW1pemUgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgbWluaW1pemUgICAgICAgICBJbnRsTG9jYWxlUHJv
dG90eXBlRnVuY01pbmltaXplICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIHRvU3Ry
aW5nICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMAotICBiYXNlTmFtZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVH
ZXR0ZXJCYXNlTmFtZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGNhbGVuZGFyICAgICAg
ICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFyICAgICAgICAgRG9udEVudW18QWNj
ZXNzb3IKLSAgY2FzZUZpcnN0ICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZp
cnN0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjb2xsYXRpb24gICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24gICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGhv
dXJDeWNsZSAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSAgICAgICAg
RG9udEVudW18QWNjZXNzb3IKLSAgbnVtZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtZXJpYyAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBudW1iZXJpbmdTeXN0
ZW0gIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERvbnRFbnVtfEFj
Y2Vzc29yCi0gIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1
YWdlICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgc2NyaXB0ICAgICAgICAgICBJbnRsTG9j
YWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBy
ZWdpb24gICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24gICAgICAgICAg
IERvbnRFbnVtfEFjY2Vzc29yCisgIGJhc2VOYW1lICAgICAgICAgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlckJhc2VOYW1lICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgY2Fs
ZW5kYXIgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIgICAgICAgICBE
b250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBjYXNlRmlyc3QgICAgICAgIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CisgIGNvbGxhdGlvbiAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbiAg
ICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgaG91ckN5Y2xlICAgICAgICBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxS
ZWFkT25seQorICBudW1lcmljICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1l
cmljICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIG51bWJlcmluZ1N5c3Rl
bSAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSAgRG9udEVudW18QWNj
ZXNzb3J8UmVhZE9ubHkKKyAgbGFuZ3VhZ2UgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyTGFuZ3VhZ2UgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBzY3JpcHQg
ICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQgICAgICAgICAgIERvbnRF
bnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIHJlZ2lvbiAgICAgICAgICAgSW50bExvY2FsZVByb3Rv
dHlwZUdldHRlclJlZ2lvbiAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKIEBl
bmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMmVlOTgyOTM0YjQzMDRmODk5ODlm
YTllMjNhZTA2YzA5Y2QwZTZiZS4uMjYwN2FmZDJjOTYzZTMzN2ZmY2M1NzQ3OTBkNjVmY2E0YjY1
OTc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgY29uc3QgQ2xh
c3NJbmZvIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuTnVtYmVy
Rm9ybWF0IiwgJkJhc2UKIAogLyogU291cmNlIGZvciBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
Lmx1dC5oCiBAYmVnaW4gbnVtYmVyRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAg
ICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
R2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKICAgZm9ybWF0
VG9QYXJ0cyAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMgICAg
RG9udEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlvbnMgIEludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IGY3MzRmNTZiODdiNzJlZGNhYTI5ZTc5Mzg1MDJiMDAwNjZjNTNkMzguLmVk
ODc2ZDRjZWZhYThjYjM5YmE3YTc2ZGUwOWE5NjZkYjhkNjU0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC01
Myw5ICs1Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICBzZXRVaW50MzIgICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDIgIERhdGFWaWV3U2V0VWludDMyCiAgIHNldEZsb2F0MzIgICAgICAgICAgICBkYXRhVmlld1By
b3RvRnVuY1NldEZsb2F0MzIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0
YVZpZXdTZXRGbG9hdDMyCiAgIHNldEZsb2F0NjQgICAgICAgICAgICBkYXRhVmlld1Byb3RvRnVu
Y1NldEZsb2F0NjQgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0YVZpZXdT
ZXRGbG9hdDY0Ci0gIGJ1ZmZlciAgICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVm
ZmVyICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAotICBieXRlTGVuZ3RoICAg
ICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFj
Y2Vzc29yICAgICAgIDAKLSAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0
ZXJCeXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvciAgICAgICAwCisgIGJ1ZmZlciAg
ICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyICAgICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3J8UmVhZE9ubHkgICAgICAgMAorICBieXRlTGVuZ3RoICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5ICAgICAgIDAKKyAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJC
eXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seSAgICAgICAwCiBAZW5k
CiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggYWQ3NGNkNjJlMzAwNDZkMTY3YWUzNzZiNjg1YzMyODQzYjdiZTMwMC4uNDcy
OGQ2MTNmNDcxMDJmZWQ1MDI4NWQ0Yjk0Y2Q4ZTdhODMzMWFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTAzLDYgKzUwMyw3
IEBAIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNCiAgICAgLCBtX251bWJlclRvU3RyaW5nV2F0Y2hw
b2ludFNldChJc1dhdGNoZWQpCiAgICAgLCBtX3J1bnRpbWVGbGFncygpCiAgICAgLCBtX3N0YWNr
VHJhY2VMaW1pdChPcHRpb25zOjpkZWZhdWx0RXJyb3JTdGFja1RyYWNlTGltaXQoKSkKKyAgICAs
IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAodm0pCiAgICAgLCBtX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlID8gZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgOiAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDRjYjA1MzI1YWFkNmIz
OTMzYThhMjI5ZWRiM2M4ZTQ5YWM1MThiNmQuLjYzZDZkZjJmMDE1Zjg5NjYyZDlkNjU5NDMxZmQ2
NDdmZDkxYzU5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtNTQwLDYgKzU0MCw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVT
ZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNTZXRQcm90b3R5cGVBZGRGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpOwogCisgICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0
ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiYgY3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb25NYXAoKSB7IHJldHVybiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uTWFwOyB9CisKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICB1c2luZyBSZWZlcmVuY2VkR2xv
YmFsUHJvcGVydHlXYXRjaHBvaW50U2V0cyA9IEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJ
bXBsPiwgUmVmPFdhdGNocG9pbnRTZXQ+LCBJZGVudGlmaWVyUmVwSGFzaD47CiAgICAgUmVmZXJl
bmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgbV9yZWZlcmVuY2VkR2xvYmFsUHJvcGVy
dHlXYXRjaHBvaW50U2V0czsKQEAgLTU1NCw2ICs1NTYsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBSdW50aW1lRmxhZ3Mg
bV9ydW50aW1lRmxhZ3M7CiAgICAgQ29uc29sZUNsaWVudCogbV9jb25zb2xlQ2xpZW50IHsgbnVs
bHB0ciB9OwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX3N0YWNrVHJhY2VMaW1pdDsKKyAgICBX
ZWFrR0NNYXA8c3RkOjpwYWlyPEN1c3RvbUdldHRlclNldHRlciosIGludD4sIEpTQ3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb24+IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAKICNp
ZiBBU1NFUlRfRU5BQkxFRAogICAgIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVj
dEF0RGVidWdnZXJFbnRyeSB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCA4ODA4NGRmNzdhNWJiODMwMmIzYmY0OTJlZWIwZDE4OTEy
MjhjNzRhLi45YTlmMjVjYmRmMzVmMDQzZmRmZTA2ZGE4YjhlNzdhNjcxZmJkZTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zNTQ4LDEwICszNTQ4
LDEwIEBAIHN0YXRpYyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKiBnZXRDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoZ2V0dGVyU2V0dGVyLCAo
aW50KXR5cGUpOwotICAgIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24qIGN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uID0gdm0uY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAuZ2V0KGtl
eSk7CisgICAgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVy
RnVuY3Rpb24gPSBnbG9iYWxPYmplY3QtPmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCku
Z2V0KGtleSk7CiAgICAgaWYgKCFjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikgewogICAgICAg
ICBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXJTZXR0ZXIsIHR5cGUsIHByb3BlcnR5
TmFtZS5wdWJsaWNOYW1lKCkpOwotICAgICAgICB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bk1hcC5zZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CisgICAgICAgIGdsb2Jh
bE9iamVjdC0+Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5zZXQoa2V5LCBjdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBjdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbjsKIH0KQEAgLTM1NzAsMTMgKzM1NzAsMTIgQEAgYm9vbCBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmEKICAgICBpZiAoc2xvdC5pc0FjY2Vzc29yKCkpCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0
QWNjZXNzb3JEZXNjcmlwdG9yKHNsb3QuZ2V0dGVyU2V0dGVyKCksIHNsb3QuYXR0cmlidXRlcygp
KTsKICAgICBlbHNlIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvcikgeworICAgICAgICBBU1NFUlQoc2xvdC5zbG90QmFzZSgpKTsKKyAgICAg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7CiAgICAgICAgIEN1c3Rv
bUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyOwogICAgICAgICBpZiAoc2xvdC5pc0N1c3RvbUFj
Y2Vzc29yKCkpCiAgICAgICAgICAgICBnZXR0ZXJTZXR0ZXIgPSBzbG90LmN1c3RvbUdldHRlclNl
dHRlcigpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChzbG90LnNsb3RCYXNl
KCkpOwotICAgICAgICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7
Ci0KICAgICAgICAgICAgIEpTVmFsdWUgbWF5YmVHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIW1heWJlR2V0dGVy
U2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cmVpZnlBbGxTdGF0aWNQcm9w
ZXJ0aWVzKGdsb2JhbE9iamVjdCk7CkBAIC0zNTkxLDEwICszNTkwLDExIEBAIGJvb2wgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZGVzY3Jp
cHRvci5zZXRDdXN0b21EZXNjcmlwdG9yKHNsb3QuYXR0cmlidXRlcygpKTsKKyAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdEZvckJhc2UgPSB0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3Qodm0pOwogICAgICAgICBpZiAoZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKSkKLSAgICAgICAgICAg
IGRlc2NyaXB0b3Iuc2V0R2V0dGVyKGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0
dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOworICAgICAgICAgICAgZGVz
Y3JpcHRvci5zZXRHZXR0ZXIoZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJT
ZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9yQmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpT
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOwogICAgICAgICBpZiAo
Z2V0dGVyU2V0dGVyLT5zZXR0ZXIoKSkKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0U2V0dGVy
KGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OlR5cGU6OlNldHRlcikpOworICAgICAgICAgICAgZGVzY3JpcHRvci5zZXRTZXR0ZXIoZ2V0
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9y
QmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb246OlR5cGU6OlNldHRlcikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpTVmFsdWUgdmFs
dWUgPSBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKaW5kZXggZWZkYTM1MzYyNDM4ZDdmMzJiNzc5
ZmMwMDE3MGQyNTc0MmUyMDFlYS4uM2Q0NTYzYWE0MzJhOWMzYjY4YzExMjYxYWNmNTg0MDgyZGY3
NmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlT
bG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
Y3BwCkBAIC0zNSwxNCArMzUsMTYgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiAKIEpTVmFsdWUgUHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgPyBtX3RoaXNWYWx1ZSA6IEpTVmFsdWUoc2xvdEJhc2Uo
KSk7CiAgICAgaWYgKGF1dG8gZG9tQXR0cmlidXRlID0gdGhpcy0+ZG9tQXR0cmlidXRlKCkpIHsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ZG9tQXR0cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgaWYgKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
cikKKyAgICAgICAgZ2xvYmFsT2JqZWN0ID0gc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZtKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAK
QEAgLTUxLDE0ICs1MywxNCBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydAogICAgIGlmICghbV9k
YXRhLmN1c3RvbUFjY2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGlmIChhdXRvIGRvbUF0dHJpYnV0ZSA9IHRoaXMtPmRvbUF0dHJpYnV0ZSgpKSB7Ci0gICAgICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAgaWYgKCFtX3RoaXNWYWx1ZS5p
bmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1cm4gdGhy
b3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgZG9tQXR0
cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEuY3VzdG9tQWNjZXNzb3IuZ2V0dGVyU2V0dGVy
LT5nZXR0ZXIoKShnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmVuY29kZShtX3RoaXNWYWx1ZSksIHBy
b3BlcnR5TmFtZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbUFj
Y2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkoc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZt
KSwgSlNWYWx1ZTo6ZW5jb2RlKG1fdGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAKIEpT
VmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0YTMw
OGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi5kOTU4ZTE1Mzk1NWFjNmY1ZWY3
ODUzMTMwMzU2MTQ0NDQ4NWRlNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC01NywyNyArNTcsMjcgQEAgY29uc3Qg
Q2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRl
cm5hbEZ1bmN0aW9uOjpzX2kKIAogLyogU291cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQu
aAogQGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVn
RXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0
Y2ggICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJCYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAg
RG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRP
bmx5fERvbnRFbnVtCi0gICAgbGVmdENvbnRleHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICRgICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAg
ICByaWdodENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJCcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
ICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQorICAgIGlucHV0ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgJF8gICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICBt
dWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nl
c3NvcnxEb250RW51bQorICAgICQqICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgbGFzdE1hdGNoICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9u
dEVudW0KKyAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAg
ICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgIGxhc3RQYXJlbiAgICAgICBy
ZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERv
bnRFbnVtCisgICAgJCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAg
ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICBsZWZ0Q29udGV4dCAgICAg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0
ICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAg
IHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRl
eHQgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5
fERvbnRFbnVtCisgICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAg
ICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkMyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25s
eXxEb250RW51bQorICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDUgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9u
bHl8RG9udEVudW0KKyAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2
ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ3ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OCAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOSAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQogQGVuZAogKi8KIApAQCAtMTAxLDExMyArMTAxLDEzNCBAQCB2b2lkIFJl
Z0V4cENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZ0V4cFByb3RvdHlwZSog
cmVnRXhwUHJvdG90eXBlLAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4KLWlubGluZSBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK2lubGluZSBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAodGhpc1ZhbHVlICE9
IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC4kTiBnZXR0ZXJzIHJlcXVp
cmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgTikpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIxLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFt
ZSk7CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwyPihnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJ
bXBsPDQ+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhckltcGw8NT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7
CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw1PihnbG9iYWxPYmplY3Qs
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBs
PDc+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhckltcGw8OD4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cisg
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4PihnbG9iYWxPYmplY3QsIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8OT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvcklu
cHV0LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganND
YXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAuaW5w
dXQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
aW5wdXQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
TXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3Io
KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9i
amVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3Ry
dWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
Z2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJSZWdFeHAubGFzdE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0
b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0
KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQYXJlbiBn
ZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBHbG9iYWxEYXRhKCkuZ2V0TGFzdFBhcmVuKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVn
RXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVj
dCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWlyZSBSZWdF
eHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRM
ZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3Iq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0Umln
aHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0
b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgIlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChn
bG9iYWxPYmplY3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBD
b25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29u
c3RydWN0b3IqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKSB7Ci0gICAgICAgIGF1
dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY29u
c3RydWN0b3ItPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7Ci0gICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIGF1dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSku
dG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
aWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAgICAgICBib29sIG11bHRpbGlu
ZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRh
KCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBib29sIG11bHRpbGluZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFu
KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
c2V0TXVsdGlsaW5lKG11bHRpbGluZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGlubGluZSBT
dHJ1Y3R1cmUqIGdldFJlZ0V4cFN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIG5ld1RhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IDllODVhOTZjN2FlOGJhNjFlMzhkNjkxNjE4Njhl
YzQ2MDA4NmQ0NWIuLjUxODk2YzczYjQ0ZGQ4NTU0M2FlZTFmMzhlMzYwYjdkZTA0ZjRhMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNw
cApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gU3ltYm9sUHJvdG90eXBlOjpzX2lu
Zm8gPSB7ICJTeW1ib2wiLCAmQmFzZTo6c19pbmZvLCAmc3ltYm9sUHJvdAogCiAvKiBTb3VyY2Ug
Zm9yIFN5bWJvbFByb3RvdHlwZS5sdXQuaAogQGJlZ2luIHN5bWJvbFByb3RvdHlwZVRhYmxlCi0g
IGRlc2NyaXB0aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24gICAgRG9udEVu
dW18QWNjZXNzb3IgMAorICBkZXNjcmlwdGlvbiAgICAgICBzeW1ib2xQcm90b0dldHRlckRlc2Ny
aXB0aW9uICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5IDAKICAgdG9TdHJpbmcgICAgICAg
ICAgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAg
IHZhbHVlT2YgICAgICAgICAgIHN5bWJvbFByb3RvRnVuY1ZhbHVlT2YgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4
IDg0MDNlMmM4MWM3MjY4MWMwZDUxMDg3OWE4YmU5ODBmNmUxZTBmOGMuLjY3N2IwZTkzOTk5YjM1
ZTFjOWJiOWI0NjZkODIxYzJlMjE1NzEyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKQEAgLTM4Niw3ICszODYsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUg
aGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9vbCogc3VjY2VzcykKICAgICAsIHBy
b3BlcnR5TmFtZXMobnVsbHB0cikKICAgICAsIGVtcHR5TGlzdChuZXcgQXJnTGlzdCkKICAgICAs
IG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVChtYWtlVW5pcXVl
PFNpbXBsZVN0YXRzPigpKQotICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKnRo
aXMpCiAgICAgLCBzdHJpbmdDYWNoZSgqdGhpcykKICAgICAsIHN5bWJvbEltcGxUb1N5bWJvbE1h
cCgqdGhpcykKICAgICAsIHN0cnVjdHVyZUNhY2hlKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgKaW5kZXggMjdhYWZjMDMyNjZmZDM3YzI1YWEyYTQzMTIyZWI2YTEzZTY1OGM5Ny4u
M2JmYmQ0ZTYwN2YwYjc1N2UzMmJiOWIwYTY5NTgwNTYyMzAxOTdkOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCkBAIC03MjAsNyArNzIwLDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsK
ICAgICBTbWFsbFN0cmluZ3Mgc21hbGxTdHJpbmdzOwogICAgIE51bWVyaWNTdHJpbmdzIG51bWVy
aWNTdHJpbmdzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaW1wbGVTdGF0cz4gbWFjaGluZUNvZGVC
eXRlc1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUOwotICAgIFdlYWtHQ01hcDxzdGQ6OnBh
aXI8Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bj4gY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAgICAgV2Vha0dDTWFwPFN0cmluZ0lt
cGwqLCBKU1N0cmluZywgUHRySGFzaDxTdHJpbmdJbXBsKj4+IHN0cmluZ0NhY2hlOwogICAgIFN0
cm9uZzxKU1N0cmluZz4gbGFzdENhY2hlZFN0cmluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmNwcAppbmRleCBlMjk3NzM5OGIyZDdkOTM5M2QxMGM4YjYyNjdiMTc3NDIzZmUzYTkwLi41NTlj
ZTFjNTcxNTgzMTAzZGYwYWE5NGFlNDFiNjA4MzExMDExYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuSW5zdGFuY2UiLAogCiAv
KiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseUluc3RhbmNlCi0gZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvciAwCisgZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvcnxSZWFkT25seSAwCiAgQGVuZAogICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAppbmRleCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5Mjdh
ZWE2YjhmMGIyNWUwLi42OWI3MDcwZjVlZjA3Nzg4MzViNzk0YjdkZTdiNTRjNzY3MGQzNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IENsYXNzSW5m
byBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVt
b3J5IiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1dC5o
CiBAYmVnaW4gcHJvdG90eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cgICB3ZWJBc3Nl
bWJseU1lbW9yeVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCi0gYnVmZmVyIHdlYkFzc2VtYmx5
TWVtb3J5UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yIDAKKyBidWZmZXIgd2ViQXNzZW1ibHlNZW1v
cnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3J8UmVhZE9ubHkgMAogQGVuZAogKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcAppbmRleCA4NmY0ZTc4ZmVhNTIxMDUxMDA2ODE1OTdlNDU2YTE4OTllY2Zi
YTgxLi4wOTNhZWEzYWE2NDg0YTQ4YmRiYWNiZjdhNzMwOGE2Y2QxZGQyMDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFzZQog
CiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseVRhYmxlCi0gbGVuZ3RoIHdlYkFzc2VtYmx5VGFibGVQ
cm90b0Z1bmNMZW5ndGggQWNjZXNzb3IgMAorIGxlbmd0aCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoIEFjY2Vzc29yfFJlYWRPbmx5IDAKICBncm93ICAgd2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1
bmNHZXQgICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0
ICAgIEZ1bmN0aW9uIDIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggN2IzZmI1ZmY2NTVmNjg0ZjI0ZTIxNzE2ZDE2ZTVlM2Q1NDg2YTlmMi4u
NGE3MWZkY2Q5OWQyYzRmYjQ5OTNkN2Y2N2MyMzBiMDU4YmI3ZTg4NyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1t
dWx0aWxpbmUtc2V0dGVyLXJlYWxtLmpzOiBBZGRlZC4KKyAgICAgICAgKFRlc3QpOgorICAgICAg
ICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbDoKKwogMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVy
Zm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1tdWx0aWxpbmUtc2V0dGVyLXJlYWxt
LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLW11bHRpbGluZS1zZXR0ZXItcmVhbG0uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDk1NThmODBhNTRjMmQyYmQyYzk3ZjA0MDA0ZjAyZjUwMTMzYjc5MgotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1tdWx0aWxpbmUtc2V0dGVyLXJlYWxt
LmpzCkBAIC0wLDAgKzEsMTAgQEAKK3ZhciByZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOwor
Y2xhc3MgVGVzdCBleHRlbmRzIHJlYWxtLlJlZ0V4cCB7CisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgVGVzdC5pbnB1dCA9IDQyOworICAgIH0KK30KKworbGV0IGRlc2NyaXB0b3Ig
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJlYWxtLlJlZ0V4cCwgImlucHV0Iik7
CitkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmlu
ZGV4IDlhNGM1ZTczMTMyMDhmNjA0NGNlZDFiNzFjMzIzNjMxYTI0YjU0NDYuLjkyOTllN2E1Y2Qw
ZDI4YjQyNzY1ZGNiOGEzNDMyOWJkNWZlMGRlYWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTE3LDcg
KzE3LDYgQEAgc2tpcDoKICAgICAtIEF0b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2Jl
aGluZAotICAgIC0gbGVnYWN5LXJlZ2V4cAogCiAgICAgLSBjbGFzcy1tZXRob2RzLXByaXZhdGUK
ICAgICAtIGNsYXNzLXN0YXRpYy1tZXRob2RzLXByaXZhdGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCA3MGI2MDc2YzA4NjgxZmYxZjlmMTZkNzU3ZDMwODJjNDU2ODgwNjk5Li4wZTIy
YzhkODE1MzVkNjU4MDJkNmEwMDQ4NzI0ZWY5OGE5YWFhMjI3IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC01LDYgKzUsMTIgQEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9u
L2NyZWF0ZWR5bmZuLWh0bWwtY2xvc2UtY29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9i
dWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpz
OgogICBkZWZhdWx0OiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3Rl
ZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3Ry
aWN0IG1vZGU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEg
cGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5l
eEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWlu
c3RhbmNlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5j
b21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29t
cGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBh
IFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCcKK3Rlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1z
dWJjbGFzcy1pbnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNz
X3JlZ2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dz
IFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9k
aXJlY3QvZnVuYy1ibG9jay1kZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3Qg
Y3JlYXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tp
cC1lYXJseS1lcnItZm9yLWluLmpzOgpAQCAtNjgxLDYgKzY4Nyw5IEBAIHRlc3QvYnVpbHQtaW5z
L0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50
LmpzOgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1l
dGhvZC1vYmplY3QuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5h
dGl2ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICov
IHsgLyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBk
ICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZl
RnVuY3Rpb24gU3ludGF4OiAiYXN5bmMgZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAv
KiBkICovIH0iIChhc3luYyBmIC8qIGEgKi8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8g
fSknCit0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4t
ZnVuY3Rpb24tb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0
byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNv
ZGVdXG59IiAoJVJlZ0V4cCUuJCopJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29u
Zm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25h
dGl2ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3By
b3RvdHlwZS90b1N0cmluZy9mdW5jdGlvbi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRl
ci1saXN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVG
dW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8g
MCAvKiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsg
Ki8gfSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAv
KiBiICovICggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8g
eyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0g
Ki8geyAvKiBuICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMg
dG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8g
PSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGog
Ki8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAv
KiBhICovIGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8g
LCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwg
Ki8gKSAvKiBtICovIHsgLyogbiAqLyB9KScKQEAgLTc2Niw5ICs3NzUsNiBAQCB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUt
ZnVuY3Rpb24tYXJndQogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqtudWxswrssIMKrW29iamVjdCBBcmd1bWVudHNdwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFs
dWUtZnVuY3Rpb24tY2FsbGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtudWxswrssIMKrZnVuY3Rpb24gZygpIHsnCi10ZXN0L2J1aWx0LWlucy9P
YmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhw
LWRvbGxhcjEuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQt
aW5zL09iamVjdC9rZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCkBAIC04NjksOCArODc1LDggQEAgdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1
Y3Rvci1hcHBseS1vcHRpb25zLWNhbm9uaWNhbGl6ZXMtdHdpY2UuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3J1LUFybW4tU1XCuywgwqtydS1Bcm1u
LUFNwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtydS1Bcm1uLVNVwrssIMKrcnUtQXJtbi1BTcK7KSB0byBiZSB0cnVlJwog
dGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1ub24taWFuYS1jYW5vbi5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwuTG9jYWxlKCJtbyIpLm1heGltaXplKCkudG9T
dHJpbmcoKSByZXR1cm5zICJyby1MYXRuLVJPIiBFeHBlY3RlZCBTYW1lVmFsdWUowqtyb8K7LCDC
q3JvLUxhdG4tUk/CuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IG5ldyBJbnRsLkxvY2FsZSgibW8iKS5tYXhpbWl6ZSgpLnRvU3RyaW5nKCkgcmV0dXJucyAicm8t
TGF0bi1STyIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrcm/Cuywgwqtyby1MYXRuLVJPwrspIHRvIGJl
IHRydWUnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgicG9zaXgi
KS50b1N0cmluZygpIHJldHVybnMgInBvc2l4IiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi1VUy11
LXZhLXBvc2l4wrssIMKrcG9zaXjCuykgdG8gYmUgdHJ1ZScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgicG9zaXgiKS50b1N0cmluZygpIHJldHVybnMgInBv
c2l4IiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi1VUy11LXZhLXBvc2l4wrssIMKrcG9zaXjCuykg
dG8gYmUgdHJ1ZScKIHRlc3QvaW50bDQwMi9Mb2NhbGUvY29uc3RydWN0b3Itb3B0aW9ucy1yZWdp
b24tdmFsaWQuanM6CiAgIGRlZmF1bHQ6ICJUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgn
ZW4nLCB7cmVnaW9uOiBcIjU1NFwifSkudG9TdHJpbmcoKSByZXR1cm5zIFwiZW4tTlpcIiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtlbi01NTTCuywgwqtlbi1OWsK7KSB0byBiZSB0cnVlIgogICBzdHJp
Y3QgbW9kZTogIlRlc3QyNjJFcnJvcjogbmV3IEludGwuTG9jYWxlKCdlbicsIHtyZWdpb246IFwi
NTU0XCJ9KS50b1N0cmluZygpIHJldHVybnMgXCJlbi1OWlwiIEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q2VuLTU1NMK7LCDCq2VuLU5awrspIHRvIGJlIHRydWUiCkBAIC0xNzE2LDE4ICsxNzIyLDYgQEAg
dGVzdC9sYW5ndWFnZS9nbG9iYWwtY29kZS9zY3JpcHQtZGVjbC12YXItZXJyLmpzOgogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2xhbmd1YWdlL2lkZW50
aWZpZXItcmVzb2x1dGlvbi9hc3NpZ24tdG8tZ2xvYmFsLXVuZGVmaW5lZC5qczoKICAgc3RyaWN0
IG1vZGU6IEV4cGVjdGVkIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3aXRoIG5hbWUgJ1JlZmVyZW5jZUVy
cm9yJyBidXQgbm9uZSB3YXMgdGhyb3duCi10ZXN0L2xhbmd1YWdlL2lkZW50aWZpZXJzL3BhcnQt
dW5pY29kZS0xMy4wLjAtZXNjYXBlZC5qczoKLSAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBJbnZh
bGlkIHVuaWNvZGUgZXNjYXBlIGluIGlkZW50aWZpZXI6ICdfXFx1MEI1NSciCi0gIHN0cmljdCBt
b2RlOiAiU3ludGF4RXJyb3I6IEludmFsaWQgdW5pY29kZSBlc2NhcGUgaW4gaWRlbnRpZmllcjog
J19cXHUwQjU1JyIKLXRlc3QvbGFuZ3VhZ2UvaWRlbnRpZmllcnMvcGFydC11bmljb2RlLTEzLjAu
MC5qczoKLSAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBJbnZhbGlkIGNoYXJhY3RlciAnXFx1MGI1
NSciCi0gIHN0cmljdCBtb2RlOiAiU3ludGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcXHUw
YjU1JyIKLXRlc3QvbGFuZ3VhZ2UvaWRlbnRpZmllcnMvc3RhcnQtdW5pY29kZS0xMy4wLjAtZXNj
YXBlZC5qczoKLSAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBJbnZhbGlkIHVuaWNvZGUgZXNjYXBl
IGluIGlkZW50aWZpZXI6ICdcXHUwOEJFJyIKLSAgc3RyaWN0IG1vZGU6ICJTeW50YXhFcnJvcjog
SW52YWxpZCB1bmljb2RlIGVzY2FwZSBpbiBpZGVudGlmaWVyOiAnXFx1MDhCRSciCi10ZXN0L2xh
bmd1YWdlL2lkZW50aWZpZXJzL3N0YXJ0LXVuaWNvZGUtMTMuMC4wLmpzOgotICBkZWZhdWx0OiAi
U3ludGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcXHUwOGJlJyIKLSAgc3RyaWN0IG1vZGU6
ICJTeW50YXhFcnJvcjogSW52YWxpZCBjaGFyYWN0ZXIgJ1xcdTA4YmUnIgogdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvdS1hc3RyYWwtY2hhci1jbGFzcy1pbnZlcnQuanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykg
dG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416923</attachid>
            <date>2021-01-03 23:41:49 -0800</date>
            <delta_ts>2021-01-03 23:54:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210103234148.patch</filename>
            <type>text/plain</type>
            <size>47548</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ4ZmQ1ZGE1NDQ4MGY3ZjA0NTMxMzRhYjgwYWI2MjkyMzJkZjVjLi5iOWNmMWEzY2VmMmFjZmI5
Njk1N2Q0M2FlMzM2MWFlM2E3ZjVhODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuCisKKyAgICAgICAgMS4gV2UgY2hhbmdlIHRoZXNlIGZpZWxkcyBmcm9tIEN1c3RvbVZh
bHVlIHRvIEN1c3RvbUFjY2Vzc29yIGJlY2F1c2UgdGhleSBhcmUgYWNjZXNzb3JzLgorICAgICAg
ICAyLiBXZSBjaGFuZ2UgQ3VzdG9tQWNjZXNzb3IncyBzZW1hbnRpY3M6IGl0IGdldHMgSlNHbG9i
YWxPYmplY3Qgb2Ygc2xvdEJhc2UgaW5zdGVhZCBvZiBjYWxsZXIuIFRoaXMgc2hvdWxkIGJlIGJl
dHRlciBzaW5jZQorICAgICAgICAgICB0aGV5IGFyZSBhY2Nlc3NvcnMsIG5vdCB2YWx1ZXMuIFNv
IGl0cyByZWFsbSBtdXN0IGJlIHRoZSBzYW1lIG9mIHNsb3RCYXNlLCBub3QgdGhlIGNhbGxlcidz
IG9uZS4gVGhpcyBpcyBhbHNvIHJlcXVpcmVkCisgICAgICAgICAgIHRvIGltcGxlbWVudCBuZXcg
UmVnRXhwIGFjY2Vzc29ycycgc2VtYW50aWNzLgorCisgICAgICAgIFRvIGFjaGlldmUgKDIpLCB3
ZSBuZWVkCisKKyAgICAgICAgMS4gdG8gbW92ZSBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1h
cCBmcm9tIFZNIHRvIEpTR2xvYmFsT2JqZWN0LiBUaGlzIGlzIG1vcmUgY29ycmVjdCBzaW5jZSBj
YWNoZWQgSlNGdW5jdGlvbnMgc2hvdWxkIGJlIHRpZWQgdG8gSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIDIuIHRvIGdldCBKU0dsb2JhbE9iamVjdCBmcm9tIHNsb3RCYXNlIHdoZW4gY2FsbGluZyBj
dXN0b20gYWNjZXNzb3JzIGZyb20gQysrLgorICAgICAgICAzLiB0byB1c2UgSlNHbG9iYWxPYmpl
Y3Qgb2Ygc2xvdEJhc2UncyBzdHJ1Y3R1cmUgaW4gQWNjZXNzQ2FzZS4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXJlZ2V4cC1sZWdhY3ktZmVhdHVyZXMK
KworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgorICAg
ICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fs
bEN1c3RvbVNldHRlcik6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCk6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uRm9yR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlciBjb25zdCk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JHZXR0ZXIgY29uc3QpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGwpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIpOgorICAgICAgICAq
IHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorCiAyMDIxLTAxLTAxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIHVubmVjZXNz
YXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5nIHNpbXBsZSBvYmplY3QgcGF0dGVybiBk
ZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDYyNWU4NTcyYmM4NWU5YzM4YmYxYjVhYWNlOThjZmVh
OGQ2NTZlNDkuLmRhNTgxMzU3MDU3YjhmMzhmMWZlMDlmN2NlNDhkNWVjOTE2NjkyY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTE0MzEs
MTQgKzE0MzEsMTMgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAg
ICAgIEdQUlJlZyB2YWx1ZVJlZ3NQYXlsb2FkR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsK
IAotICAgICAgICBpZiAoaXNWYWxpZE9mZnNldChtX29mZnNldCkpIHsKLSAgICAgICAgICAgIFN0
cnVjdHVyZSogY3VyclN0cnVjdHVyZTsKLSAgICAgICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFz
ZSgpKQotICAgICAgICAgICAgICAgIGN1cnJTdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUoKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjdXJyU3RydWN0dXJlID0gYWx0ZXJuYXRlQmFz
ZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBTdHJ1Y3R1cmUqIGN1cnJTdHJ1Y3R1cmU7Cisg
ICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFzZSgpKQorICAgICAgICAgICAgY3VyclN0cnVjdHVy
ZSA9IHN0cnVjdHVyZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjdXJyU3RydWN0dXJl
ID0gYWx0ZXJuYXRlQmFzZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBpZiAoaXNWYWxpZE9m
ZnNldChtX29mZnNldCkpCiAgICAgICAgICAgICBjdXJyU3RydWN0dXJlLT5zdGFydFdhdGNoaW5n
UHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIG9mZnNldCgpKTsKLSAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgZG9lc1Byb3BlcnR5U3RvcmFnZUxvYWRzID0gbV90eXBlID09IExvYWQgCiAgICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gR2V0R2V0dGVyCkBAIC0xNzE4LDkgKzE3MTcsMTQgQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkK
ICAgICAgICAgICAgIC8vIGdldHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwog
ICAgICAgICAgICAgLy8gc2V0dGVyOiBib29sICgqUHV0VmFsdWVGdW5jKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKICAg
ICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBw
cm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYWx1
ZSAocmVjZWl2ZXIpLgorICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRo
ZSBjYWxsZXIncyBKU0dsb2JhbE9iamVjdCwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRo
ZSBzbG90QmFzZSdzIEpTR2xvYmFsT2JqZWN0LgogICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JD
dXN0b20gPSB0YWtlc1Byb3BlcnR5T3duZXJBc0NGdW5jdGlvbkFyZ3VtZW50ID8gcHJvcGVydHlP
d25lckdQUiA6IHJlY2VpdmVyRm9yQ3VzdG9tR2V0R1BSOyAKLSAgICAgICAgICAgIC8vIFdlIGRv
IG5vdCBuZWVkIHRvIGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlIHRoZSBvd25lciBDb2Rl
QmxvY2sgKGV2ZW4gaWYgSlNHbG9iYWxPYmplY3QqIGlzIG9uZSBvZiBDb2RlQmxvY2sgdGhhdCBp
cyBpbmxpbmVkIGFuZCBoZWxkIGJ5IERGRyBDb2RlQmxvY2spCi0gICAgICAgICAgICAvLyBtdXN0
IGtlZXAgaXQgYWxpdmUuCisgICAgICAgICAgICBpZiAoIXRha2VzUHJvcGVydHlPd25lckFzQ0Z1
bmN0aW9uQXJndW1lbnQpCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0ID0gY3VyclN0cnVj
dHVyZS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRv
IGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlCisgICAgICAgICAgICAvLyAxLiBpZiBpdCBp
cyBDdXN0b21WYWx1ZSwgdGhlIG93bmVyIENvZGVCbG9jayAoZXZlbiBpZiBKU0dsb2JhbE9iamVj
dCogaXMgb25lIG9mIENvZGVCbG9jayB0aGF0IGlzIGlubGluZWQgYW5kIGhlbGQgYnkgREZHIENv
ZGVCbG9jaykgbXVzdCBrZWVwIGl0IGFsaXZlLgorICAgICAgICAgICAgLy8gMi4gaWYgaXQgaXMg
Q3VzdG9tQWNjZXNzb3IsIHN0cnVjdHVyZSBzaG91bGQgaG9sZCBpdC4KICAgICAgICAgICAgIGlm
IChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29y
R2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pZGVudGlmaWVyKTsK
ICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKaW5kZXggYjVjOGRiNzE1MjZhYWIyZjE0Yzk2NGUz
MjM0YjU1ZTRhMDAxMWY2NC4uYjk3YTQwNGRjOTA3NzcyMDMzZTg3ODU4ODI4YzQ5OGE5NmM5M2Nj
NSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQpAQCAtOTQsOSArOTQs
MTMgQEAgd2hpbGUgKDxJTj4pIHsKICAgICAgICAgaWYgKCRhdHQgPX4gbS9GdW5jdGlvbi8pIHsK
ICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiIsICJmdW5jdGlvbiIgPT4gJHZhbCwgInBhcmFtcyIgPT4gKGxlbmd0aCgkcGFy
YW0pID8gJHBhcmFtIDogIiIpLCAiaW50cmluc2ljIiA9PiAobGVuZ3RoKCRpbnRyaW5zaWMpID8g
JGludHJpbnNpYyA6ICJOb0ludHJpbnNpYyIpIH0pOwogICAgICAgICAgICAgI3ByaW50ZiBTVERF
UlIgIldBUk5JTkc6IE51bWJlciBvZiBhcmd1bWVudHMgbWlzc2luZyBmb3IgJGtleS8kdmFsXG4i
IGlmIChsZW5ndGgoJHBhcmFtKSA9PSAwKTsKLSAgICAgICAgfSBlbHNpZiAoJGF0dCA9fiBtL0Fj
Y2Vzc29yLykgeworICAgICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQWNjZXNzb3IvICYmICEoJGF0
dCA9fiBtL0N1c3RvbUFjY2Vzc29yLykpIHsKICAgICAgICAgICAgIG15ICRnZXQgPSAkdmFsOwog
ICAgICAgICAgICAgbXkgJHB1dCA9ICJudWxscHRyIjsKKyAgICAgICAgICAgIGlmICghKCRhdHQg
PX4gbS9SZWFkT25seS8pKSB7CisgICAgICAgICAgICAgICAgJHB1dCA9ICJzZXQiIC4ganNjX3Vj
Zmlyc3QoJHZhbCk7CisgICAgICAgICAgICAgICAgZGllICJDdXJyZW50bHksIHNldHRlciBpcyBu
b3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAi
dHJ1ZSI7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IiLCAiZ2V0IiA9PiAkZ2V0LCAicHV0IiA9PiAkcHV0IH0pOwogICAg
ICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQ2VsbFByb3BlcnR5LykgewpAQCAtMTEwLDcgKzExNCw3
IEBAIHdoaWxlICg8SU4+KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+
ICJQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayIsICJjYmFjayIgPT4gJGNiYWNr
IH0pOwogICAgICAgICB9IGVsc2lmIChsZW5ndGgoJGF0dCkpIHsKICAgICAgICAgICAgIG15ICRn
ZXQgPSAkdmFsOwotICAgICAgICAgICAgbXkgJHB1dCA9ICIwIjsKKyAgICAgICAgICAgIG15ICRw
dXQgPSAibnVsbHB0ciI7CiAgICAgICAgICAgICBpZiAoISgkYXR0ID1+IG0vUmVhZE9ubHkvKSkg
ewogICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpzY191Y2ZpcnN0KCR2YWwpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3Vz
dG9tR2V0dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3Rv
bUdldHRlclNldHRlci5jcHAKaW5kZXggZTE0MmU2NjIyM2JjNWNiYjNmMThmOTQzOWNkZGY0MDcw
ZWZlNjE1My4uNjJjMjY0YjkyN2ViOTcyNTBlOWY3OTgzM2YwZWFiMjQ1NzE5ODY2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIFRyaVN0YXRlIGNhbGxDdXN0b21TZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0CiAgICAgaWYgKGlz
QWNjZXNzb3IpIHsKICAgICAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgICAgICByZXR1cm4gVHJp
U3RhdGU6OkZhbHNlOwotICAgICAgICBzZXR0ZXIoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjplbmNv
ZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CisgICAgICAgIHNldHRlcihz
bG90QmFzZS0+Z2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSksIEpTVmFsdWU6OmVuY29k
ZSh0aGlzVmFsdWUpLCBKU1ZhbHVlOjplbmNvZGUodmFsdWUpKTsKICAgICAgICAgLy8gQWx3YXlz
IHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgc2V0dGVyIGFuZCBpdCBpcyBvYnNlcnZlZCBhcyBh
biBhY2Nlc3NvciB0byB1c2Vycy4KICAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpUcnVlOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JQcm90b3R5cGUuY3BwCmluZGV4IDA0Y2NkYzA2ZWUzMzQyZjU4ODZlYTM5OWFkNjRhMWM4M2M0
YzRlMGYuLjBjZTViYmRjOTE0ZWM0MGFjYzE3NmRmN2EwZDY4ZGFkNjAyNmM4ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90
eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bENvbGxhdG9yUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkNvbGxhdG9yIiwgJkJhc2U6OnNfaW5mbwogCiAvKiBT
b3VyY2UgZm9yIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaAogQGJlZ2luIGNvbGxhdG9yUHJv
dG90eXBlVGFibGUKLSAgY29tcGFyZSAgICAgICAgICBJbnRsQ29sbGF0b3JQcm90b3R5cGVHZXR0
ZXJDb21wYXJlICAgICAgICBEb250RW51bXxBY2Nlc3NvcgorICBjb21wYXJlICAgICAgICAgIElu
dGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNvbXBhcmUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29y
fFJlYWRPbmx5CiAgIHJlc29sdmVkT3B0aW9ucyAgSW50bENvbGxhdG9yUHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24gMAogQGVuZAogKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQ
cm90b3R5cGUuY3BwCmluZGV4IDczOGM4YzY0YmIyZmI2YjY0YzAwZWI3MjZjODM1NmQ1YjFjYTU5
NjcuLmUxNDA2Njc1NGNkNzhhOTZhNmEzZDY1MTVkN2RiODVlNWM1NjIzMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkRhdGVUaW1lRm9ybWF0Iiwg
JgogCiAvKiBTb3VyY2UgZm9yIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5sdXQuaAogQGJl
Z2luIGRhdGVUaW1lRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAgICAgICAgICAg
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9u
dEVudW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVh
ZE9ubHkKICAgZm9ybWF0UmFuZ2UgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZUZ1bmNGb3JtYXRSYW5nZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICBmb3JtYXRU
b1BhcnRzICAgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFy
dHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIHJlc29sdmVkT3B0aW9ucyAgICAgICBJ
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZVByb3RvdHlwZS5jcHAKaW5kZXggMWUxZWViODYzMzVmYjYwOTY1YmE5YzEwM2Q3
ODY0OTcyNTdhMGIzMy4uNzU1YzM4ZTE5YzExN2Q5Y2RhNzA0NTc1NzMyMmMwNzk2MGIwYjkzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVBy
b3RvdHlwZS5jcHAKQEAgLTU4LDE2ICs1OCwxNiBAQCBjb25zdCBDbGFzc0luZm8gSW50bExvY2Fs
ZVByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5Mb2NhbGUiLCAmQmFzZTo6c19pbmZvLCAmbAog
ICBtYXhpbWl6ZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWF4aW1pemUgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgbWluaW1pemUgICAgICAgICBJbnRsTG9jYWxlUHJv
dG90eXBlRnVuY01pbmltaXplICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIHRvU3Ry
aW5nICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMAotICBiYXNlTmFtZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVH
ZXR0ZXJCYXNlTmFtZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGNhbGVuZGFyICAgICAg
ICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFyICAgICAgICAgRG9udEVudW18QWNj
ZXNzb3IKLSAgY2FzZUZpcnN0ICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZp
cnN0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjb2xsYXRpb24gICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24gICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGhv
dXJDeWNsZSAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSAgICAgICAg
RG9udEVudW18QWNjZXNzb3IKLSAgbnVtZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtZXJpYyAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBudW1iZXJpbmdTeXN0
ZW0gIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERvbnRFbnVtfEFj
Y2Vzc29yCi0gIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1
YWdlICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgc2NyaXB0ICAgICAgICAgICBJbnRsTG9j
YWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBy
ZWdpb24gICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24gICAgICAgICAg
IERvbnRFbnVtfEFjY2Vzc29yCisgIGJhc2VOYW1lICAgICAgICAgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlckJhc2VOYW1lICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgY2Fs
ZW5kYXIgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIgICAgICAgICBE
b250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBjYXNlRmlyc3QgICAgICAgIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CisgIGNvbGxhdGlvbiAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbiAg
ICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgaG91ckN5Y2xlICAgICAgICBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxS
ZWFkT25seQorICBudW1lcmljICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1l
cmljICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIG51bWJlcmluZ1N5c3Rl
bSAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSAgRG9udEVudW18QWNj
ZXNzb3J8UmVhZE9ubHkKKyAgbGFuZ3VhZ2UgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyTGFuZ3VhZ2UgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBzY3JpcHQg
ICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQgICAgICAgICAgIERvbnRF
bnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIHJlZ2lvbiAgICAgICAgICAgSW50bExvY2FsZVByb3Rv
dHlwZUdldHRlclJlZ2lvbiAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKIEBl
bmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMmVlOTgyOTM0YjQzMDRmODk5ODlm
YTllMjNhZTA2YzA5Y2QwZTZiZS4uMjYwN2FmZDJjOTYzZTMzN2ZmY2M1NzQ3OTBkNjVmY2E0YjY1
OTc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgY29uc3QgQ2xh
c3NJbmZvIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuTnVtYmVy
Rm9ybWF0IiwgJkJhc2UKIAogLyogU291cmNlIGZvciBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
Lmx1dC5oCiBAYmVnaW4gbnVtYmVyRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAg
ICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
R2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKICAgZm9ybWF0
VG9QYXJ0cyAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMgICAg
RG9udEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlvbnMgIEludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IGY3MzRmNTZiODdiNzJlZGNhYTI5ZTc5Mzg1MDJiMDAwNjZjNTNkMzguLmVk
ODc2ZDRjZWZhYThjYjM5YmE3YTc2ZGUwOWE5NjZkYjhkNjU0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC01
Myw5ICs1Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICBzZXRVaW50MzIgICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDIgIERhdGFWaWV3U2V0VWludDMyCiAgIHNldEZsb2F0MzIgICAgICAgICAgICBkYXRhVmlld1By
b3RvRnVuY1NldEZsb2F0MzIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0
YVZpZXdTZXRGbG9hdDMyCiAgIHNldEZsb2F0NjQgICAgICAgICAgICBkYXRhVmlld1Byb3RvRnVu
Y1NldEZsb2F0NjQgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0YVZpZXdT
ZXRGbG9hdDY0Ci0gIGJ1ZmZlciAgICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVm
ZmVyICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAotICBieXRlTGVuZ3RoICAg
ICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFj
Y2Vzc29yICAgICAgIDAKLSAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0
ZXJCeXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvciAgICAgICAwCisgIGJ1ZmZlciAg
ICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyICAgICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3J8UmVhZE9ubHkgICAgICAgMAorICBieXRlTGVuZ3RoICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5ICAgICAgIDAKKyAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJC
eXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seSAgICAgICAwCiBAZW5k
CiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggYWQ3NGNkNjJlMzAwNDZkMTY3YWUzNzZiNjg1YzMyODQzYjdiZTMwMC4uNDcy
OGQ2MTNmNDcxMDJmZWQ1MDI4NWQ0Yjk0Y2Q4ZTdhODMzMWFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTAzLDYgKzUwMyw3
IEBAIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNCiAgICAgLCBtX251bWJlclRvU3RyaW5nV2F0Y2hw
b2ludFNldChJc1dhdGNoZWQpCiAgICAgLCBtX3J1bnRpbWVGbGFncygpCiAgICAgLCBtX3N0YWNr
VHJhY2VMaW1pdChPcHRpb25zOjpkZWZhdWx0RXJyb3JTdGFja1RyYWNlTGltaXQoKSkKKyAgICAs
IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAodm0pCiAgICAgLCBtX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlID8gZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgOiAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDRjYjA1MzI1YWFkNmIz
OTMzYThhMjI5ZWRiM2M4ZTQ5YWM1MThiNmQuLjYzZDZkZjJmMDE1Zjg5NjYyZDlkNjU5NDMxZmQ2
NDdmZDkxYzU5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtNTQwLDYgKzU0MCw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVT
ZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNTZXRQcm90b3R5cGVBZGRGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpOwogCisgICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0
ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiYgY3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb25NYXAoKSB7IHJldHVybiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uTWFwOyB9CisKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICB1c2luZyBSZWZlcmVuY2VkR2xv
YmFsUHJvcGVydHlXYXRjaHBvaW50U2V0cyA9IEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJ
bXBsPiwgUmVmPFdhdGNocG9pbnRTZXQ+LCBJZGVudGlmaWVyUmVwSGFzaD47CiAgICAgUmVmZXJl
bmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgbV9yZWZlcmVuY2VkR2xvYmFsUHJvcGVy
dHlXYXRjaHBvaW50U2V0czsKQEAgLTU1NCw2ICs1NTYsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBSdW50aW1lRmxhZ3Mg
bV9ydW50aW1lRmxhZ3M7CiAgICAgQ29uc29sZUNsaWVudCogbV9jb25zb2xlQ2xpZW50IHsgbnVs
bHB0ciB9OwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX3N0YWNrVHJhY2VMaW1pdDsKKyAgICBX
ZWFrR0NNYXA8c3RkOjpwYWlyPEN1c3RvbUdldHRlclNldHRlciosIGludD4sIEpTQ3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb24+IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAKICNp
ZiBBU1NFUlRfRU5BQkxFRAogICAgIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVj
dEF0RGVidWdnZXJFbnRyeSB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCA4ODA4NGRmNzdhNWJiODMwMmIzYmY0OTJlZWIwZDE4OTEy
MjhjNzRhLi45YTlmMjVjYmRmMzVmMDQzZmRmZTA2ZGE4YjhlNzdhNjcxZmJkZTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zNTQ4LDEwICszNTQ4
LDEwIEBAIHN0YXRpYyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKiBnZXRDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoZ2V0dGVyU2V0dGVyLCAo
aW50KXR5cGUpOwotICAgIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24qIGN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uID0gdm0uY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAuZ2V0KGtl
eSk7CisgICAgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVy
RnVuY3Rpb24gPSBnbG9iYWxPYmplY3QtPmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCku
Z2V0KGtleSk7CiAgICAgaWYgKCFjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikgewogICAgICAg
ICBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXJTZXR0ZXIsIHR5cGUsIHByb3BlcnR5
TmFtZS5wdWJsaWNOYW1lKCkpOwotICAgICAgICB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bk1hcC5zZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CisgICAgICAgIGdsb2Jh
bE9iamVjdC0+Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5zZXQoa2V5LCBjdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBjdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbjsKIH0KQEAgLTM1NzAsMTMgKzM1NzAsMTIgQEAgYm9vbCBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmEKICAgICBpZiAoc2xvdC5pc0FjY2Vzc29yKCkpCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0
QWNjZXNzb3JEZXNjcmlwdG9yKHNsb3QuZ2V0dGVyU2V0dGVyKCksIHNsb3QuYXR0cmlidXRlcygp
KTsKICAgICBlbHNlIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvcikgeworICAgICAgICBBU1NFUlQoc2xvdC5zbG90QmFzZSgpKTsKKyAgICAg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7CiAgICAgICAgIEN1c3Rv
bUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyOwogICAgICAgICBpZiAoc2xvdC5pc0N1c3RvbUFj
Y2Vzc29yKCkpCiAgICAgICAgICAgICBnZXR0ZXJTZXR0ZXIgPSBzbG90LmN1c3RvbUdldHRlclNl
dHRlcigpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChzbG90LnNsb3RCYXNl
KCkpOwotICAgICAgICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7
Ci0KICAgICAgICAgICAgIEpTVmFsdWUgbWF5YmVHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIW1heWJlR2V0dGVy
U2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cmVpZnlBbGxTdGF0aWNQcm9w
ZXJ0aWVzKGdsb2JhbE9iamVjdCk7CkBAIC0zNTkxLDEwICszNTkwLDExIEBAIGJvb2wgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZGVzY3Jp
cHRvci5zZXRDdXN0b21EZXNjcmlwdG9yKHNsb3QuYXR0cmlidXRlcygpKTsKKyAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdEZvckJhc2UgPSB0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3Qodm0pOwogICAgICAgICBpZiAoZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKSkKLSAgICAgICAgICAg
IGRlc2NyaXB0b3Iuc2V0R2V0dGVyKGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0
dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOworICAgICAgICAgICAgZGVz
Y3JpcHRvci5zZXRHZXR0ZXIoZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJT
ZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9yQmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpT
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOwogICAgICAgICBpZiAo
Z2V0dGVyU2V0dGVyLT5zZXR0ZXIoKSkKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0U2V0dGVy
KGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OlR5cGU6OlNldHRlcikpOworICAgICAgICAgICAgZGVzY3JpcHRvci5zZXRTZXR0ZXIoZ2V0
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9y
QmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb246OlR5cGU6OlNldHRlcikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpTVmFsdWUgdmFs
dWUgPSBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKaW5kZXggZWZkYTM1MzYyNDM4ZDdmMzJiNzc5
ZmMwMDE3MGQyNTc0MmUyMDFlYS4uM2Q0NTYzYWE0MzJhOWMzYjY4YzExMjYxYWNmNTg0MDgyZGY3
NmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlT
bG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
Y3BwCkBAIC0zNSwxNCArMzUsMTYgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiAKIEpTVmFsdWUgUHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgPyBtX3RoaXNWYWx1ZSA6IEpTVmFsdWUoc2xvdEJhc2Uo
KSk7CiAgICAgaWYgKGF1dG8gZG9tQXR0cmlidXRlID0gdGhpcy0+ZG9tQXR0cmlidXRlKCkpIHsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ZG9tQXR0cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgaWYgKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
cikKKyAgICAgICAgZ2xvYmFsT2JqZWN0ID0gc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZtKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAK
QEAgLTUxLDE0ICs1MywxNCBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydAogICAgIGlmICghbV9k
YXRhLmN1c3RvbUFjY2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGlmIChhdXRvIGRvbUF0dHJpYnV0ZSA9IHRoaXMtPmRvbUF0dHJpYnV0ZSgpKSB7Ci0gICAgICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAgaWYgKCFtX3RoaXNWYWx1ZS5p
bmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1cm4gdGhy
b3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgZG9tQXR0
cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEuY3VzdG9tQWNjZXNzb3IuZ2V0dGVyU2V0dGVy
LT5nZXR0ZXIoKShnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmVuY29kZShtX3RoaXNWYWx1ZSksIHBy
b3BlcnR5TmFtZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbUFj
Y2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkoc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZt
KSwgSlNWYWx1ZTo6ZW5jb2RlKG1fdGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAKIEpT
VmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0YTMw
OGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi5kOTU4ZTE1Mzk1NWFjNmY1ZWY3
ODUzMTMwMzU2MTQ0NDQ4NWRlNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC01NywyNyArNTcsMjcgQEAgY29uc3Qg
Q2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRl
cm5hbEZ1bmN0aW9uOjpzX2kKIAogLyogU291cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQu
aAogQGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVn
RXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0
Y2ggICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJCYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAg
RG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRP
bmx5fERvbnRFbnVtCi0gICAgbGVmdENvbnRleHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICRgICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAg
ICByaWdodENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJCcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
ICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQorICAgIGlucHV0ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgJF8gICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICBt
dWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nl
c3NvcnxEb250RW51bQorICAgICQqICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgbGFzdE1hdGNoICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9u
dEVudW0KKyAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAg
ICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgIGxhc3RQYXJlbiAgICAgICBy
ZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERv
bnRFbnVtCisgICAgJCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAg
ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICBsZWZ0Q29udGV4dCAgICAg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0
ICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAg
IHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRl
eHQgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5
fERvbnRFbnVtCisgICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAg
ICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkMyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25s
eXxEb250RW51bQorICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDUgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9u
bHl8RG9udEVudW0KKyAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2
ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ3ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OCAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOSAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQogQGVuZAogKi8KIApAQCAtMTAxLDExMyArMTAxLDEzNCBAQCB2b2lkIFJl
Z0V4cENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZ0V4cFByb3RvdHlwZSog
cmVnRXhwUHJvdG90eXBlLAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4KLWlubGluZSBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK2lubGluZSBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAodGhpc1ZhbHVlICE9
IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC4kTiBnZXR0ZXJzIHJlcXVp
cmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgTikpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIxLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFt
ZSk7CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwyPihnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJ
bXBsPDQ+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhckltcGw8NT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7
CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw1PihnbG9iYWxPYmplY3Qs
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBs
PDc+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhckltcGw8OD4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cisg
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4PihnbG9iYWxPYmplY3QsIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8OT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvcklu
cHV0LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganND
YXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAuaW5w
dXQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
aW5wdXQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
TXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3Io
KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9i
amVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3Ry
dWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
Z2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJSZWdFeHAubGFzdE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0
b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0
KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQYXJlbiBn
ZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBHbG9iYWxEYXRhKCkuZ2V0TGFzdFBhcmVuKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVn
RXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVj
dCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWlyZSBSZWdF
eHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRM
ZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3Iq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0Umln
aHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0
b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgIlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChn
bG9iYWxPYmplY3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBD
b25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29u
c3RydWN0b3IqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKSB7Ci0gICAgICAgIGF1
dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY29u
c3RydWN0b3ItPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7Ci0gICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIGF1dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSku
dG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
aWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAgICAgICBib29sIG11bHRpbGlu
ZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRh
KCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBib29sIG11bHRpbGluZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFu
KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
c2V0TXVsdGlsaW5lKG11bHRpbGluZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGlubGluZSBT
dHJ1Y3R1cmUqIGdldFJlZ0V4cFN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIG5ld1RhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IDllODVhOTZjN2FlOGJhNjFlMzhkNjkxNjE4Njhl
YzQ2MDA4NmQ0NWIuLjUxODk2YzczYjQ0ZGQ4NTU0M2FlZTFmMzhlMzYwYjdkZTA0ZjRhMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNw
cApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gU3ltYm9sUHJvdG90eXBlOjpzX2lu
Zm8gPSB7ICJTeW1ib2wiLCAmQmFzZTo6c19pbmZvLCAmc3ltYm9sUHJvdAogCiAvKiBTb3VyY2Ug
Zm9yIFN5bWJvbFByb3RvdHlwZS5sdXQuaAogQGJlZ2luIHN5bWJvbFByb3RvdHlwZVRhYmxlCi0g
IGRlc2NyaXB0aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24gICAgRG9udEVu
dW18QWNjZXNzb3IgMAorICBkZXNjcmlwdGlvbiAgICAgICBzeW1ib2xQcm90b0dldHRlckRlc2Ny
aXB0aW9uICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5IDAKICAgdG9TdHJpbmcgICAgICAg
ICAgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAg
IHZhbHVlT2YgICAgICAgICAgIHN5bWJvbFByb3RvRnVuY1ZhbHVlT2YgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4
IDg0MDNlMmM4MWM3MjY4MWMwZDUxMDg3OWE4YmU5ODBmNmUxZTBmOGMuLjY3N2IwZTkzOTk5YjM1
ZTFjOWJiOWI0NjZkODIxYzJlMjE1NzEyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKQEAgLTM4Niw3ICszODYsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUg
aGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9vbCogc3VjY2VzcykKICAgICAsIHBy
b3BlcnR5TmFtZXMobnVsbHB0cikKICAgICAsIGVtcHR5TGlzdChuZXcgQXJnTGlzdCkKICAgICAs
IG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVChtYWtlVW5pcXVl
PFNpbXBsZVN0YXRzPigpKQotICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKnRo
aXMpCiAgICAgLCBzdHJpbmdDYWNoZSgqdGhpcykKICAgICAsIHN5bWJvbEltcGxUb1N5bWJvbE1h
cCgqdGhpcykKICAgICAsIHN0cnVjdHVyZUNhY2hlKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgKaW5kZXggMjdhYWZjMDMyNjZmZDM3YzI1YWEyYTQzMTIyZWI2YTEzZTY1OGM5Ny4u
M2JmYmQ0ZTYwN2YwYjc1N2UzMmJiOWIwYTY5NTgwNTYyMzAxOTdkOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCkBAIC03MjAsNyArNzIwLDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsK
ICAgICBTbWFsbFN0cmluZ3Mgc21hbGxTdHJpbmdzOwogICAgIE51bWVyaWNTdHJpbmdzIG51bWVy
aWNTdHJpbmdzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaW1wbGVTdGF0cz4gbWFjaGluZUNvZGVC
eXRlc1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUOwotICAgIFdlYWtHQ01hcDxzdGQ6OnBh
aXI8Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bj4gY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAgICAgV2Vha0dDTWFwPFN0cmluZ0lt
cGwqLCBKU1N0cmluZywgUHRySGFzaDxTdHJpbmdJbXBsKj4+IHN0cmluZ0NhY2hlOwogICAgIFN0
cm9uZzxKU1N0cmluZz4gbGFzdENhY2hlZFN0cmluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmNwcAppbmRleCBlMjk3NzM5OGIyZDdkOTM5M2QxMGM4YjYyNjdiMTc3NDIzZmUzYTkwLi41NTlj
ZTFjNTcxNTgzMTAzZGYwYWE5NGFlNDFiNjA4MzExMDExYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuSW5zdGFuY2UiLAogCiAv
KiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseUluc3RhbmNlCi0gZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvciAwCisgZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvcnxSZWFkT25seSAwCiAgQGVuZAogICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAppbmRleCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5Mjdh
ZWE2YjhmMGIyNWUwLi42OWI3MDcwZjVlZjA3Nzg4MzViNzk0YjdkZTdiNTRjNzY3MGQzNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IENsYXNzSW5m
byBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVt
b3J5IiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1dC5o
CiBAYmVnaW4gcHJvdG90eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cgICB3ZWJBc3Nl
bWJseU1lbW9yeVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCi0gYnVmZmVyIHdlYkFzc2VtYmx5
TWVtb3J5UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yIDAKKyBidWZmZXIgd2ViQXNzZW1ibHlNZW1v
cnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3J8UmVhZE9ubHkgMAogQGVuZAogKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcAppbmRleCA4NmY0ZTc4ZmVhNTIxMDUxMDA2ODE1OTdlNDU2YTE4OTllY2Zi
YTgxLi4wOTNhZWEzYWE2NDg0YTQ4YmRiYWNiZjdhNzMwOGE2Y2QxZGQyMDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFzZQog
CiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseVRhYmxlCi0gbGVuZ3RoIHdlYkFzc2VtYmx5VGFibGVQ
cm90b0Z1bmNMZW5ndGggQWNjZXNzb3IgMAorIGxlbmd0aCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoIEFjY2Vzc29yfFJlYWRPbmx5IDAKICBncm93ICAgd2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1
bmNHZXQgICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0
ICAgIEZ1bmN0aW9uIDIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggN2IzZmI1ZmY2NTVmNjg0ZjI0ZTIxNzE2ZDE2ZTVlM2Q1NDg2YTlmMi4u
NGE3MWZkY2Q5OWQyYzRmYjQ5OTNkN2Y2N2MyMzBiMDU4YmI3ZTg4NyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1t
dWx0aWxpbmUtc2V0dGVyLXJlYWxtLmpzOiBBZGRlZC4KKyAgICAgICAgKFRlc3QpOgorICAgICAg
ICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbDoKKwogMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVy
Zm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1tdWx0aWxpbmUtc2V0dGVyLXJlYWxt
LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLW11bHRpbGluZS1zZXR0ZXItcmVhbG0uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDk1NThmODBhNTRjMmQyYmQyYzk3ZjA0MDA0ZjAyZjUwMTMzYjc5MgotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1tdWx0aWxpbmUtc2V0dGVyLXJlYWxt
LmpzCkBAIC0wLDAgKzEsMTAgQEAKK3ZhciByZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOwor
Y2xhc3MgVGVzdCBleHRlbmRzIHJlYWxtLlJlZ0V4cCB7CisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgVGVzdC5pbnB1dCA9IDQyOworICAgIH0KK30KKworbGV0IGRlc2NyaXB0b3Ig
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJlYWxtLlJlZ0V4cCwgImlucHV0Iik7
CitkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmlu
ZGV4IDlhNGM1ZTczMTMyMDhmNjA0NGNlZDFiNzFjMzIzNjMxYTI0YjU0NDYuLjkyOTllN2E1Y2Qw
ZDI4YjQyNzY1ZGNiOGEzNDMyOWJkNWZlMGRlYWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTE3LDcg
KzE3LDYgQEAgc2tpcDoKICAgICAtIEF0b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2Jl
aGluZAotICAgIC0gbGVnYWN5LXJlZ2V4cAogCiAgICAgLSBjbGFzcy1tZXRob2RzLXByaXZhdGUK
ICAgICAtIGNsYXNzLXN0YXRpYy1tZXRob2RzLXByaXZhdGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCA3MGI2MDc2YzA4NjgxZmYxZjlmMTZkNzU3ZDMwODJjNDU2ODgwNjk5Li45MDRk
YjY4NDBiMWViZjFiYWQxY2VhMGEzZjg1ZWVkYmU4YjljMDJhIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC01LDYgKzUsMTIgQEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9u
L2NyZWF0ZWR5bmZuLWh0bWwtY2xvc2UtY29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9i
dWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpz
OgogICBkZWZhdWx0OiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3Rl
ZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3Ry
aWN0IG1vZGU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEg
cGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5l
eEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWlu
c3RhbmNlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5j
b21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29t
cGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBh
IFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCcKK3Rlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1z
dWJjbGFzcy1pbnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNz
X3JlZ2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dz
IFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9k
aXJlY3QvZnVuYy1ibG9jay1kZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3Qg
Y3JlYXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tp
cC1lYXJseS1lcnItZm9yLWluLmpzOgpAQCAtNjgxLDYgKzY4Nyw5IEBAIHRlc3QvYnVpbHQtaW5z
L0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50
LmpzOgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1l
dGhvZC1vYmplY3QuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5h
dGl2ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICov
IHsgLyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBk
ICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZl
RnVuY3Rpb24gU3ludGF4OiAiYXN5bmMgZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAv
KiBkICovIH0iIChhc3luYyBmIC8qIGEgKi8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8g
fSknCit0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4t
ZnVuY3Rpb24tb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0
byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNv
ZGVdXG59IiAoJVJlZ0V4cCUuJCopJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29u
Zm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25h
dGl2ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3By
b3RvdHlwZS90b1N0cmluZy9mdW5jdGlvbi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRl
ci1saXN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVG
dW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8g
MCAvKiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsg
Ki8gfSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAv
KiBiICovICggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8g
eyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0g
Ki8geyAvKiBuICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMg
dG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8g
PSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGog
Ki8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAv
KiBhICovIGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8g
LCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwg
Ki8gKSAvKiBtICovIHsgLyogbiAqLyB9KScKQEAgLTc2Niw5ICs3NzUsNiBAQCB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUt
ZnVuY3Rpb24tYXJndQogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqtudWxswrssIMKrW29iamVjdCBBcmd1bWVudHNdwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFs
dWUtZnVuY3Rpb24tY2FsbGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtudWxswrssIMKrZnVuY3Rpb24gZygpIHsnCi10ZXN0L2J1aWx0LWlucy9P
YmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhw
LWRvbGxhcjEuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQt
aW5zL09iamVjdC9rZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416924</attachid>
            <date>2021-01-03 23:54:28 -0800</date>
            <delta_ts>2021-01-04 02:09:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210103235428.patch</filename>
            <type>text/plain</type>
            <size>47606</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ4ZmQ1ZGE1NDQ4MGY3ZjA0NTMxMzRhYjgwYWI2MjkyMzJkZjVjLi5iOWNmMWEzY2VmMmFjZmI5
Njk1N2Q0M2FlMzM2MWFlM2E3ZjVhODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuCisKKyAgICAgICAgMS4gV2UgY2hhbmdlIHRoZXNlIGZpZWxkcyBmcm9tIEN1c3RvbVZh
bHVlIHRvIEN1c3RvbUFjY2Vzc29yIGJlY2F1c2UgdGhleSBhcmUgYWNjZXNzb3JzLgorICAgICAg
ICAyLiBXZSBjaGFuZ2UgQ3VzdG9tQWNjZXNzb3IncyBzZW1hbnRpY3M6IGl0IGdldHMgSlNHbG9i
YWxPYmplY3Qgb2Ygc2xvdEJhc2UgaW5zdGVhZCBvZiBjYWxsZXIuIFRoaXMgc2hvdWxkIGJlIGJl
dHRlciBzaW5jZQorICAgICAgICAgICB0aGV5IGFyZSBhY2Nlc3NvcnMsIG5vdCB2YWx1ZXMuIFNv
IGl0cyByZWFsbSBtdXN0IGJlIHRoZSBzYW1lIG9mIHNsb3RCYXNlLCBub3QgdGhlIGNhbGxlcidz
IG9uZS4gVGhpcyBpcyBhbHNvIHJlcXVpcmVkCisgICAgICAgICAgIHRvIGltcGxlbWVudCBuZXcg
UmVnRXhwIGFjY2Vzc29ycycgc2VtYW50aWNzLgorCisgICAgICAgIFRvIGFjaGlldmUgKDIpLCB3
ZSBuZWVkCisKKyAgICAgICAgMS4gdG8gbW92ZSBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1h
cCBmcm9tIFZNIHRvIEpTR2xvYmFsT2JqZWN0LiBUaGlzIGlzIG1vcmUgY29ycmVjdCBzaW5jZSBj
YWNoZWQgSlNGdW5jdGlvbnMgc2hvdWxkIGJlIHRpZWQgdG8gSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIDIuIHRvIGdldCBKU0dsb2JhbE9iamVjdCBmcm9tIHNsb3RCYXNlIHdoZW4gY2FsbGluZyBj
dXN0b20gYWNjZXNzb3JzIGZyb20gQysrLgorICAgICAgICAzLiB0byB1c2UgSlNHbG9iYWxPYmpl
Y3Qgb2Ygc2xvdEJhc2UncyBzdHJ1Y3R1cmUgaW4gQWNjZXNzQ2FzZS4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXJlZ2V4cC1sZWdhY3ktZmVhdHVyZXMK
KworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgorICAg
ICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fs
bEN1c3RvbVNldHRlcik6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCk6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uRm9yR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlciBjb25zdCk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JHZXR0ZXIgY29uc3QpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGwpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIpOgorICAgICAgICAq
IHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorCiAyMDIxLTAxLTAxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIHVubmVjZXNz
YXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5nIHNpbXBsZSBvYmplY3QgcGF0dGVybiBk
ZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDYyNWU4NTcyYmM4NWU5YzM4YmYxYjVhYWNlOThjZmVh
OGQ2NTZlNDkuLmRhNTgxMzU3MDU3YjhmMzhmMWZlMDlmN2NlNDhkNWVjOTE2NjkyY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTE0MzEs
MTQgKzE0MzEsMTMgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAg
ICAgIEdQUlJlZyB2YWx1ZVJlZ3NQYXlsb2FkR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsK
IAotICAgICAgICBpZiAoaXNWYWxpZE9mZnNldChtX29mZnNldCkpIHsKLSAgICAgICAgICAgIFN0
cnVjdHVyZSogY3VyclN0cnVjdHVyZTsKLSAgICAgICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFz
ZSgpKQotICAgICAgICAgICAgICAgIGN1cnJTdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUoKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjdXJyU3RydWN0dXJlID0gYWx0ZXJuYXRlQmFz
ZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBTdHJ1Y3R1cmUqIGN1cnJTdHJ1Y3R1cmU7Cisg
ICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFzZSgpKQorICAgICAgICAgICAgY3VyclN0cnVjdHVy
ZSA9IHN0cnVjdHVyZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjdXJyU3RydWN0dXJl
ID0gYWx0ZXJuYXRlQmFzZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAgICBpZiAoaXNWYWxpZE9m
ZnNldChtX29mZnNldCkpCiAgICAgICAgICAgICBjdXJyU3RydWN0dXJlLT5zdGFydFdhdGNoaW5n
UHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIG9mZnNldCgpKTsKLSAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgZG9lc1Byb3BlcnR5U3RvcmFnZUxvYWRzID0gbV90eXBlID09IExvYWQgCiAgICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gR2V0R2V0dGVyCkBAIC0xNzE4LDkgKzE3MTcsMTQgQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkK
ICAgICAgICAgICAgIC8vIGdldHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwog
ICAgICAgICAgICAgLy8gc2V0dGVyOiBib29sICgqUHV0VmFsdWVGdW5jKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKICAg
ICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBw
cm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYWx1
ZSAocmVjZWl2ZXIpLgorICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRo
ZSBjYWxsZXIncyBKU0dsb2JhbE9iamVjdCwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRo
ZSBzbG90QmFzZSdzIEpTR2xvYmFsT2JqZWN0LgogICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JD
dXN0b20gPSB0YWtlc1Byb3BlcnR5T3duZXJBc0NGdW5jdGlvbkFyZ3VtZW50ID8gcHJvcGVydHlP
d25lckdQUiA6IHJlY2VpdmVyRm9yQ3VzdG9tR2V0R1BSOyAKLSAgICAgICAgICAgIC8vIFdlIGRv
IG5vdCBuZWVkIHRvIGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlIHRoZSBvd25lciBDb2Rl
QmxvY2sgKGV2ZW4gaWYgSlNHbG9iYWxPYmplY3QqIGlzIG9uZSBvZiBDb2RlQmxvY2sgdGhhdCBp
cyBpbmxpbmVkIGFuZCBoZWxkIGJ5IERGRyBDb2RlQmxvY2spCi0gICAgICAgICAgICAvLyBtdXN0
IGtlZXAgaXQgYWxpdmUuCisgICAgICAgICAgICBpZiAoIXRha2VzUHJvcGVydHlPd25lckFzQ0Z1
bmN0aW9uQXJndW1lbnQpCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0ID0gY3VyclN0cnVj
dHVyZS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRv
IGtlZXAgZ2xvYmFsT2JqZWN0IGFsaXZlIHNpbmNlCisgICAgICAgICAgICAvLyAxLiBpZiBpdCBp
cyBDdXN0b21WYWx1ZSwgdGhlIG93bmVyIENvZGVCbG9jayAoZXZlbiBpZiBKU0dsb2JhbE9iamVj
dCogaXMgb25lIG9mIENvZGVCbG9jayB0aGF0IGlzIGlubGluZWQgYW5kIGhlbGQgYnkgREZHIENv
ZGVCbG9jaykgbXVzdCBrZWVwIGl0IGFsaXZlLgorICAgICAgICAgICAgLy8gMi4gaWYgaXQgaXMg
Q3VzdG9tQWNjZXNzb3IsIHN0cnVjdHVyZSBzaG91bGQgaG9sZCBpdC4KICAgICAgICAgICAgIGlm
IChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29y
R2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pZGVudGlmaWVyKTsK
ICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKaW5kZXggYjVjOGRiNzE1MjZhYWIyZjE0Yzk2NGUz
MjM0YjU1ZTRhMDAxMWY2NC4uYjk3YTQwNGRjOTA3NzcyMDMzZTg3ODU4ODI4YzQ5OGE5NmM5M2Nj
NSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQpAQCAtOTQsOSArOTQs
MTMgQEAgd2hpbGUgKDxJTj4pIHsKICAgICAgICAgaWYgKCRhdHQgPX4gbS9GdW5jdGlvbi8pIHsK
ICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiIsICJmdW5jdGlvbiIgPT4gJHZhbCwgInBhcmFtcyIgPT4gKGxlbmd0aCgkcGFy
YW0pID8gJHBhcmFtIDogIiIpLCAiaW50cmluc2ljIiA9PiAobGVuZ3RoKCRpbnRyaW5zaWMpID8g
JGludHJpbnNpYyA6ICJOb0ludHJpbnNpYyIpIH0pOwogICAgICAgICAgICAgI3ByaW50ZiBTVERF
UlIgIldBUk5JTkc6IE51bWJlciBvZiBhcmd1bWVudHMgbWlzc2luZyBmb3IgJGtleS8kdmFsXG4i
IGlmIChsZW5ndGgoJHBhcmFtKSA9PSAwKTsKLSAgICAgICAgfSBlbHNpZiAoJGF0dCA9fiBtL0Fj
Y2Vzc29yLykgeworICAgICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQWNjZXNzb3IvICYmICEoJGF0
dCA9fiBtL0N1c3RvbUFjY2Vzc29yLykpIHsKICAgICAgICAgICAgIG15ICRnZXQgPSAkdmFsOwog
ICAgICAgICAgICAgbXkgJHB1dCA9ICJudWxscHRyIjsKKyAgICAgICAgICAgIGlmICghKCRhdHQg
PX4gbS9SZWFkT25seS8pKSB7CisgICAgICAgICAgICAgICAgJHB1dCA9ICJzZXQiIC4ganNjX3Vj
Zmlyc3QoJHZhbCk7CisgICAgICAgICAgICAgICAgZGllICJDdXJyZW50bHksIHNldHRlciBpcyBu
b3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAi
dHJ1ZSI7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IiLCAiZ2V0IiA9PiAkZ2V0LCAicHV0IiA9PiAkcHV0IH0pOwogICAg
ICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQ2VsbFByb3BlcnR5LykgewpAQCAtMTEwLDcgKzExNCw3
IEBAIHdoaWxlICg8SU4+KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+
ICJQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayIsICJjYmFjayIgPT4gJGNiYWNr
IH0pOwogICAgICAgICB9IGVsc2lmIChsZW5ndGgoJGF0dCkpIHsKICAgICAgICAgICAgIG15ICRn
ZXQgPSAkdmFsOwotICAgICAgICAgICAgbXkgJHB1dCA9ICIwIjsKKyAgICAgICAgICAgIG15ICRw
dXQgPSAibnVsbHB0ciI7CiAgICAgICAgICAgICBpZiAoISgkYXR0ID1+IG0vUmVhZE9ubHkvKSkg
ewogICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpzY191Y2ZpcnN0KCR2YWwpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3Vz
dG9tR2V0dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3Rv
bUdldHRlclNldHRlci5jcHAKaW5kZXggZTE0MmU2NjIyM2JjNWNiYjNmMThmOTQzOWNkZGY0MDcw
ZWZlNjE1My4uNjJjMjY0YjkyN2ViOTcyNTBlOWY3OTgzM2YwZWFiMjQ1NzE5ODY2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIFRyaVN0YXRlIGNhbGxDdXN0b21TZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0CiAgICAgaWYgKGlz
QWNjZXNzb3IpIHsKICAgICAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgICAgICByZXR1cm4gVHJp
U3RhdGU6OkZhbHNlOwotICAgICAgICBzZXR0ZXIoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjplbmNv
ZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CisgICAgICAgIHNldHRlcihz
bG90QmFzZS0+Z2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSksIEpTVmFsdWU6OmVuY29k
ZSh0aGlzVmFsdWUpLCBKU1ZhbHVlOjplbmNvZGUodmFsdWUpKTsKICAgICAgICAgLy8gQWx3YXlz
IHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgc2V0dGVyIGFuZCBpdCBpcyBvYnNlcnZlZCBhcyBh
biBhY2Nlc3NvciB0byB1c2Vycy4KICAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpUcnVlOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JQcm90b3R5cGUuY3BwCmluZGV4IDA0Y2NkYzA2ZWUzMzQyZjU4ODZlYTM5OWFkNjRhMWM4M2M0
YzRlMGYuLjBjZTViYmRjOTE0ZWM0MGFjYzE3NmRmN2EwZDY4ZGFkNjAyNmM4ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90
eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bENvbGxhdG9yUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkNvbGxhdG9yIiwgJkJhc2U6OnNfaW5mbwogCiAvKiBT
b3VyY2UgZm9yIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaAogQGJlZ2luIGNvbGxhdG9yUHJv
dG90eXBlVGFibGUKLSAgY29tcGFyZSAgICAgICAgICBJbnRsQ29sbGF0b3JQcm90b3R5cGVHZXR0
ZXJDb21wYXJlICAgICAgICBEb250RW51bXxBY2Nlc3NvcgorICBjb21wYXJlICAgICAgICAgIElu
dGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNvbXBhcmUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29y
fFJlYWRPbmx5CiAgIHJlc29sdmVkT3B0aW9ucyAgSW50bENvbGxhdG9yUHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24gMAogQGVuZAogKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQ
cm90b3R5cGUuY3BwCmluZGV4IDczOGM4YzY0YmIyZmI2YjY0YzAwZWI3MjZjODM1NmQ1YjFjYTU5
NjcuLmUxNDA2Njc1NGNkNzhhOTZhNmEzZDY1MTVkN2RiODVlNWM1NjIzMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBjb25zdCBDbGFzc0luZm8gSW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkRhdGVUaW1lRm9ybWF0Iiwg
JgogCiAvKiBTb3VyY2UgZm9yIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5sdXQuaAogQGJl
Z2luIGRhdGVUaW1lRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAgICAgICAgICAg
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9u
dEVudW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVh
ZE9ubHkKICAgZm9ybWF0UmFuZ2UgICAgICAgICAgIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZUZ1bmNGb3JtYXRSYW5nZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICBmb3JtYXRU
b1BhcnRzICAgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFy
dHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIHJlc29sdmVkT3B0aW9ucyAgICAgICBJ
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZVByb3RvdHlwZS5jcHAKaW5kZXggMWUxZWViODYzMzVmYjYwOTY1YmE5YzEwM2Q3
ODY0OTcyNTdhMGIzMy4uNzU1YzM4ZTE5YzExN2Q5Y2RhNzA0NTc1NzMyMmMwNzk2MGIwYjkzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZVBy
b3RvdHlwZS5jcHAKQEAgLTU4LDE2ICs1OCwxNiBAQCBjb25zdCBDbGFzc0luZm8gSW50bExvY2Fs
ZVByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5Mb2NhbGUiLCAmQmFzZTo6c19pbmZvLCAmbAog
ICBtYXhpbWl6ZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWF4aW1pemUgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgbWluaW1pemUgICAgICAgICBJbnRsTG9jYWxlUHJv
dG90eXBlRnVuY01pbmltaXplICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIHRvU3Ry
aW5nICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMAotICBiYXNlTmFtZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVH
ZXR0ZXJCYXNlTmFtZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGNhbGVuZGFyICAgICAg
ICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFyICAgICAgICAgRG9udEVudW18QWNj
ZXNzb3IKLSAgY2FzZUZpcnN0ICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZp
cnN0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjb2xsYXRpb24gICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24gICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGhv
dXJDeWNsZSAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSAgICAgICAg
RG9udEVudW18QWNjZXNzb3IKLSAgbnVtZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtZXJpYyAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBudW1iZXJpbmdTeXN0
ZW0gIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERvbnRFbnVtfEFj
Y2Vzc29yCi0gIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1
YWdlICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgc2NyaXB0ICAgICAgICAgICBJbnRsTG9j
YWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBy
ZWdpb24gICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24gICAgICAgICAg
IERvbnRFbnVtfEFjY2Vzc29yCisgIGJhc2VOYW1lICAgICAgICAgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlckJhc2VOYW1lICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgY2Fs
ZW5kYXIgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIgICAgICAgICBE
b250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBjYXNlRmlyc3QgICAgICAgIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CisgIGNvbGxhdGlvbiAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbiAg
ICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgaG91ckN5Y2xlICAgICAgICBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxS
ZWFkT25seQorICBudW1lcmljICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1l
cmljICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIG51bWJlcmluZ1N5c3Rl
bSAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSAgRG9udEVudW18QWNj
ZXNzb3J8UmVhZE9ubHkKKyAgbGFuZ3VhZ2UgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyTGFuZ3VhZ2UgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBzY3JpcHQg
ICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQgICAgICAgICAgIERvbnRF
bnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIHJlZ2lvbiAgICAgICAgICAgSW50bExvY2FsZVByb3Rv
dHlwZUdldHRlclJlZ2lvbiAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKIEBl
bmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMmVlOTgyOTM0YjQzMDRmODk5ODlm
YTllMjNhZTA2YzA5Y2QwZTZiZS4uMjYwN2FmZDJjOTYzZTMzN2ZmY2M1NzQ3OTBkNjVmY2E0YjY1
OTc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgY29uc3QgQ2xh
c3NJbmZvIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuTnVtYmVy
Rm9ybWF0IiwgJkJhc2UKIAogLyogU291cmNlIGZvciBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
Lmx1dC5oCiBAYmVnaW4gbnVtYmVyRm9ybWF0UHJvdG90eXBlVGFibGUKLSAgZm9ybWF0ICAgICAg
ICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3IKKyAgZm9ybWF0ICAgICAgICAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
R2V0dGVyRm9ybWF0ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKICAgZm9ybWF0
VG9QYXJ0cyAgICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMgICAg
RG9udEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlvbnMgIEludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IGY3MzRmNTZiODdiNzJlZGNhYTI5ZTc5Mzg1MDJiMDAwNjZjNTNkMzguLmVk
ODc2ZDRjZWZhYThjYjM5YmE3YTc2ZGUwOWE5NjZkYjhkNjU0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC01
Myw5ICs1Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICBzZXRVaW50MzIgICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDIgIERhdGFWaWV3U2V0VWludDMyCiAgIHNldEZsb2F0MzIgICAgICAgICAgICBkYXRhVmlld1By
b3RvRnVuY1NldEZsb2F0MzIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0
YVZpZXdTZXRGbG9hdDMyCiAgIHNldEZsb2F0NjQgICAgICAgICAgICBkYXRhVmlld1Byb3RvRnVu
Y1NldEZsb2F0NjQgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAgRGF0YVZpZXdT
ZXRGbG9hdDY0Ci0gIGJ1ZmZlciAgICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVm
ZmVyICAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAotICBieXRlTGVuZ3RoICAg
ICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFj
Y2Vzc29yICAgICAgIDAKLSAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0
ZXJCeXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvciAgICAgICAwCisgIGJ1ZmZlciAg
ICAgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyICAgICAgICAgICAgRG9udEVu
dW18QWNjZXNzb3J8UmVhZE9ubHkgICAgICAgMAorICBieXRlTGVuZ3RoICAgICAgICAgICAgZGF0
YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGggICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5ICAgICAgIDAKKyAgYnl0ZU9mZnNldCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJC
eXRlT2Zmc2V0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seSAgICAgICAwCiBAZW5k
CiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggYWQ3NGNkNjJlMzAwNDZkMTY3YWUzNzZiNjg1YzMyODQzYjdiZTMwMC4uNDcy
OGQ2MTNmNDcxMDJmZWQ1MDI4NWQ0Yjk0Y2Q4ZTdhODMzMWFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTAzLDYgKzUwMyw3
IEBAIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNCiAgICAgLCBtX251bWJlclRvU3RyaW5nV2F0Y2hw
b2ludFNldChJc1dhdGNoZWQpCiAgICAgLCBtX3J1bnRpbWVGbGFncygpCiAgICAgLCBtX3N0YWNr
VHJhY2VMaW1pdChPcHRpb25zOjpkZWZhdWx0RXJyb3JTdGFja1RyYWNlTGltaXQoKSkKKyAgICAs
IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAodm0pCiAgICAgLCBtX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlID8gZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgOiAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDRjYjA1MzI1YWFkNmIz
OTMzYThhMjI5ZWRiM2M4ZTQ5YWM1MThiNmQuLjYzZDZkZjJmMDE1Zjg5NjYyZDlkNjU5NDMxZmQ2
NDdmZDkxYzU5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtNTQwLDYgKzU0MCw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVT
ZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNTZXRQcm90b3R5cGVBZGRGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpOwogCisgICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0
ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiYgY3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb25NYXAoKSB7IHJldHVybiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uTWFwOyB9CisKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICB1c2luZyBSZWZlcmVuY2VkR2xv
YmFsUHJvcGVydHlXYXRjaHBvaW50U2V0cyA9IEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJ
bXBsPiwgUmVmPFdhdGNocG9pbnRTZXQ+LCBJZGVudGlmaWVyUmVwSGFzaD47CiAgICAgUmVmZXJl
bmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgbV9yZWZlcmVuY2VkR2xvYmFsUHJvcGVy
dHlXYXRjaHBvaW50U2V0czsKQEAgLTU1NCw2ICs1NTYsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBSdW50aW1lRmxhZ3Mg
bV9ydW50aW1lRmxhZ3M7CiAgICAgQ29uc29sZUNsaWVudCogbV9jb25zb2xlQ2xpZW50IHsgbnVs
bHB0ciB9OwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX3N0YWNrVHJhY2VMaW1pdDsKKyAgICBX
ZWFrR0NNYXA8c3RkOjpwYWlyPEN1c3RvbUdldHRlclNldHRlciosIGludD4sIEpTQ3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb24+IG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAKICNp
ZiBBU1NFUlRfRU5BQkxFRAogICAgIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVj
dEF0RGVidWdnZXJFbnRyeSB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCA4ODA4NGRmNzdhNWJiODMwMmIzYmY0OTJlZWIwZDE4OTEy
MjhjNzRhLi45YTlmMjVjYmRmMzVmMDQzZmRmZTA2ZGE4YjhlNzdhNjcxZmJkZTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zNTQ4LDEwICszNTQ4
LDEwIEBAIHN0YXRpYyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKiBnZXRDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoZ2V0dGVyU2V0dGVyLCAo
aW50KXR5cGUpOwotICAgIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24qIGN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uID0gdm0uY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAuZ2V0KGtl
eSk7CisgICAgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVy
RnVuY3Rpb24gPSBnbG9iYWxPYmplY3QtPmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCku
Z2V0KGtleSk7CiAgICAgaWYgKCFjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikgewogICAgICAg
ICBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXJTZXR0ZXIsIHR5cGUsIHByb3BlcnR5
TmFtZS5wdWJsaWNOYW1lKCkpOwotICAgICAgICB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bk1hcC5zZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CisgICAgICAgIGdsb2Jh
bE9iamVjdC0+Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5zZXQoa2V5LCBjdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBjdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbjsKIH0KQEAgLTM1NzAsMTMgKzM1NzAsMTIgQEAgYm9vbCBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmEKICAgICBpZiAoc2xvdC5pc0FjY2Vzc29yKCkpCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0
QWNjZXNzb3JEZXNjcmlwdG9yKHNsb3QuZ2V0dGVyU2V0dGVyKCksIHNsb3QuYXR0cmlidXRlcygp
KTsKICAgICBlbHNlIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvcikgeworICAgICAgICBBU1NFUlQoc2xvdC5zbG90QmFzZSgpKTsKKyAgICAg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7CiAgICAgICAgIEN1c3Rv
bUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyOwogICAgICAgICBpZiAoc2xvdC5pc0N1c3RvbUFj
Y2Vzc29yKCkpCiAgICAgICAgICAgICBnZXR0ZXJTZXR0ZXIgPSBzbG90LmN1c3RvbUdldHRlclNl
dHRlcigpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChzbG90LnNsb3RCYXNl
KCkpOwotICAgICAgICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzbG90LnNsb3RCYXNlKCk7
Ci0KICAgICAgICAgICAgIEpTVmFsdWUgbWF5YmVHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIW1heWJlR2V0dGVy
U2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cmVpZnlBbGxTdGF0aWNQcm9w
ZXJ0aWVzKGdsb2JhbE9iamVjdCk7CkBAIC0zNTkxLDEwICszNTkwLDExIEBAIGJvb2wgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZGVzY3Jp
cHRvci5zZXRDdXN0b21EZXNjcmlwdG9yKHNsb3QuYXR0cmlidXRlcygpKTsKKyAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdEZvckJhc2UgPSB0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3Qodm0pOwogICAgICAgICBpZiAoZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKSkKLSAgICAgICAgICAg
IGRlc2NyaXB0b3Iuc2V0R2V0dGVyKGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0
dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOworICAgICAgICAgICAgZGVz
Y3JpcHRvci5zZXRHZXR0ZXIoZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJT
ZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9yQmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpT
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcikpOwogICAgICAgICBpZiAo
Z2V0dGVyU2V0dGVyLT5zZXR0ZXIoKSkKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0U2V0dGVy
KGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b246OlR5cGU6OlNldHRlcikpOworICAgICAgICAgICAgZGVzY3JpcHRvci5zZXRTZXR0ZXIoZ2V0
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0Rm9y
QmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb246OlR5cGU6OlNldHRlcikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEpTVmFsdWUgdmFs
dWUgPSBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKaW5kZXggZWZkYTM1MzYyNDM4ZDdmMzJiNzc5
ZmMwMDE3MGQyNTc0MmUyMDFlYS4uM2Q0NTYzYWE0MzJhOWMzYjY4YzExMjYxYWNmNTg0MDgyZGY3
NmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlT
bG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
Y3BwCkBAIC0zNSwxNCArMzUsMTYgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiAKIEpTVmFsdWUgUHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgPyBtX3RoaXNWYWx1ZSA6IEpTVmFsdWUoc2xvdEJhc2Uo
KSk7CiAgICAgaWYgKGF1dG8gZG9tQXR0cmlidXRlID0gdGhpcy0+ZG9tQXR0cmlidXRlKCkpIHsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ZG9tQXR0cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgaWYgKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
cikKKyAgICAgICAgZ2xvYmFsT2JqZWN0ID0gc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZtKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAK
QEAgLTUxLDE0ICs1MywxNCBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tQWNjZXNzb3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydAogICAgIGlmICghbV9k
YXRhLmN1c3RvbUFjY2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGlmIChhdXRvIGRvbUF0dHJpYnV0ZSA9IHRoaXMtPmRvbUF0dHJpYnV0ZSgpKSB7Ci0gICAgICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAgaWYgKCFtX3RoaXNWYWx1ZS5p
bmhlcml0cyh2bSwgZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pKSB7CiAgICAgICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgICAgICByZXR1cm4gdGhy
b3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgZG9tQXR0
cmlidXRlLT5jbGFzc0luZm8sIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEuY3VzdG9tQWNjZXNzb3IuZ2V0dGVyU2V0dGVy
LT5nZXR0ZXIoKShnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmVuY29kZShtX3RoaXNWYWx1ZSksIHBy
b3BlcnR5TmFtZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbUFj
Y2Vzc29yLmdldHRlclNldHRlci0+Z2V0dGVyKCkoc2xvdEJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZt
KSwgSlNWYWx1ZTo6ZW5jb2RlKG1fdGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAKIEpT
VmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0YTMw
OGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi5kOTU4ZTE1Mzk1NWFjNmY1ZWY3
ODUzMTMwMzU2MTQ0NDQ4NWRlNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC01NywyNyArNTcsMjcgQEAgY29uc3Qg
Q2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRl
cm5hbEZ1bmN0aW9uOjpzX2kKIAogLyogU291cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQu
aAogQGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVn
RXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0
Y2ggICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJCYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAg
RG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRP
bmx5fERvbnRFbnVtCi0gICAgbGVmdENvbnRleHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICRgICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAg
ICByaWdodENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJCcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
ICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQorICAgIGlucHV0ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgJF8gICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICBt
dWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nl
c3NvcnxEb250RW51bQorICAgICQqICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgbGFzdE1hdGNoICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9u
dEVudW0KKyAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAg
ICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgIGxhc3RQYXJlbiAgICAgICBy
ZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERv
bnRFbnVtCisgICAgJCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAg
ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICBsZWZ0Q29udGV4dCAgICAg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0
ICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAg
IHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRl
eHQgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5
fERvbnRFbnVtCisgICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAg
ICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkMyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25s
eXxEb250RW51bQorICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDUgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9u
bHl8RG9udEVudW0KKyAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2
ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ3ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OCAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOSAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQogQGVuZAogKi8KIApAQCAtMTAxLDExMyArMTAxLDEzNCBAQCB2b2lkIFJl
Z0V4cENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZ0V4cFByb3RvdHlwZSog
cmVnRXhwUHJvdG90eXBlLAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4KLWlubGluZSBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK2lubGluZSBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAodGhpc1ZhbHVlICE9
IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC4kTiBnZXR0ZXJzIHJlcXVp
cmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgTikpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIxLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFt
ZSk7CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwyPihnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJ
bXBsPDQ+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhckltcGw8NT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7
CisgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw1PihnbG9iYWxPYmplY3Qs
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBs
PDc+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhckltcGw8OD4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cisg
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4PihnbG9iYWxPYmplY3QsIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8OT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvcklu
cHV0LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganND
YXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAuaW5w
dXQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
aW5wdXQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
TXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3Io
KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9i
amVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3Ry
dWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
Z2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJSZWdFeHAubGFzdE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0
b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0
KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQYXJlbiBn
ZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBHbG9iYWxEYXRhKCkuZ2V0TGFzdFBhcmVuKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVn
RXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVj
dCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWlyZSBSZWdF
eHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRM
ZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3Iq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0Umln
aHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0
b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgIlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChn
bG9iYWxPYmplY3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBD
b25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29u
c3RydWN0b3IqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKSB7Ci0gICAgICAgIGF1
dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY29u
c3RydWN0b3ItPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7Ci0gICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIGF1dG8qIHN0cmluZyA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSku
dG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
aWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAgICAgICBib29sIG11bHRpbGlu
ZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRh
KCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlm
IChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0
cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8
dGhpc3wiX3MpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBib29sIG11bHRpbGluZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFu
KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
c2V0TXVsdGlsaW5lKG11bHRpbGluZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGlubGluZSBT
dHJ1Y3R1cmUqIGdldFJlZ0V4cFN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIG5ld1RhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IDllODVhOTZjN2FlOGJhNjFlMzhkNjkxNjE4Njhl
YzQ2MDA4NmQ0NWIuLjUxODk2YzczYjQ0ZGQ4NTU0M2FlZTFmMzhlMzYwYjdkZTA0ZjRhMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNw
cApAQCAtNDcsNyArNDcsNyBAQCBjb25zdCBDbGFzc0luZm8gU3ltYm9sUHJvdG90eXBlOjpzX2lu
Zm8gPSB7ICJTeW1ib2wiLCAmQmFzZTo6c19pbmZvLCAmc3ltYm9sUHJvdAogCiAvKiBTb3VyY2Ug
Zm9yIFN5bWJvbFByb3RvdHlwZS5sdXQuaAogQGJlZ2luIHN5bWJvbFByb3RvdHlwZVRhYmxlCi0g
IGRlc2NyaXB0aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24gICAgRG9udEVu
dW18QWNjZXNzb3IgMAorICBkZXNjcmlwdGlvbiAgICAgICBzeW1ib2xQcm90b0dldHRlckRlc2Ny
aXB0aW9uICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5IDAKICAgdG9TdHJpbmcgICAgICAg
ICAgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAg
IHZhbHVlT2YgICAgICAgICAgIHN5bWJvbFByb3RvRnVuY1ZhbHVlT2YgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4
IDg0MDNlMmM4MWM3MjY4MWMwZDUxMDg3OWE4YmU5ODBmNmUxZTBmOGMuLjY3N2IwZTkzOTk5YjM1
ZTFjOWJiOWI0NjZkODIxYzJlMjE1NzEyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKQEAgLTM4Niw3ICszODYsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUg
aGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9vbCogc3VjY2VzcykKICAgICAsIHBy
b3BlcnR5TmFtZXMobnVsbHB0cikKICAgICAsIGVtcHR5TGlzdChuZXcgQXJnTGlzdCkKICAgICAs
IG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVChtYWtlVW5pcXVl
PFNpbXBsZVN0YXRzPigpKQotICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKnRo
aXMpCiAgICAgLCBzdHJpbmdDYWNoZSgqdGhpcykKICAgICAsIHN5bWJvbEltcGxUb1N5bWJvbE1h
cCgqdGhpcykKICAgICAsIHN0cnVjdHVyZUNhY2hlKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgKaW5kZXggMjdhYWZjMDMyNjZmZDM3YzI1YWEyYTQzMTIyZWI2YTEzZTY1OGM5Ny4u
M2JmYmQ0ZTYwN2YwYjc1N2UzMmJiOWIwYTY5NTgwNTYyMzAxOTdkOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCkBAIC03MjAsNyArNzIwLDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsK
ICAgICBTbWFsbFN0cmluZ3Mgc21hbGxTdHJpbmdzOwogICAgIE51bWVyaWNTdHJpbmdzIG51bWVy
aWNTdHJpbmdzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaW1wbGVTdGF0cz4gbWFjaGluZUNvZGVC
eXRlc1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUOwotICAgIFdlYWtHQ01hcDxzdGQ6OnBh
aXI8Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bj4gY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXA7CiAgICAgV2Vha0dDTWFwPFN0cmluZ0lt
cGwqLCBKU1N0cmluZywgUHRySGFzaDxTdHJpbmdJbXBsKj4+IHN0cmluZ0NhY2hlOwogICAgIFN0
cm9uZzxKU1N0cmluZz4gbGFzdENhY2hlZFN0cmluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmNwcAppbmRleCBlMjk3NzM5OGIyZDdkOTM5M2QxMGM4YjYyNjdiMTc3NDIzZmUzYTkwLi41NTlj
ZTFjNTcxNTgzMTAzZGYwYWE5NGFlNDFiNjA4MzExMDExYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuSW5zdGFuY2UiLAogCiAv
KiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseUluc3RhbmNlCi0gZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvciAwCisgZXhwb3J0cyB3ZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG9GdW5jRXhwb3J0cyBBY2Nlc3NvcnxSZWFkT25seSAwCiAgQGVuZAogICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAppbmRleCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5Mjdh
ZWE2YjhmMGIyNWUwLi42OWI3MDcwZjVlZjA3Nzg4MzViNzk0YjdkZTdiNTRjNzY3MGQzNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IENsYXNzSW5m
byBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVt
b3J5IiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1dC5o
CiBAYmVnaW4gcHJvdG90eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cgICB3ZWJBc3Nl
bWJseU1lbW9yeVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCi0gYnVmZmVyIHdlYkFzc2VtYmx5
TWVtb3J5UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yIDAKKyBidWZmZXIgd2ViQXNzZW1ibHlNZW1v
cnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3J8UmVhZE9ubHkgMAogQGVuZAogKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcAppbmRleCA4NmY0ZTc4ZmVhNTIxMDUxMDA2ODE1OTdlNDU2YTE4OTllY2Zi
YTgxLi4wOTNhZWEzYWE2NDg0YTQ4YmRiYWNiZjdhNzMwOGE2Y2QxZGQyMDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFzZQog
CiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmgKICBAYmVnaW4g
cHJvdG90eXBlVGFibGVXZWJBc3NlbWJseVRhYmxlCi0gbGVuZ3RoIHdlYkFzc2VtYmx5VGFibGVQ
cm90b0Z1bmNMZW5ndGggQWNjZXNzb3IgMAorIGxlbmd0aCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoIEFjY2Vzc29yfFJlYWRPbmx5IDAKICBncm93ICAgd2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1
bmNHZXQgICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0
ICAgIEZ1bmN0aW9uIDIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggN2IzZmI1ZmY2NTVmNjg0ZjI0ZTIxNzE2ZDE2ZTVlM2Q1NDg2YTlmMi4u
YTBjZDM5MGEyYWY1OWNkOTljMjhhYzZkYzZmN2M5MTM5MjQ3NmVjNyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1z
ZXR0ZXItcmVhbG0uanM6IEFkZGVkLgorICAgICAgICAobGV0LnJlYWxtLmNyZWF0ZUdsb2JhbE9i
amVjdCk6CisgICAgICAgIChkZXNjcmlwdG9yLmNhbGwpOgorICAgICAgICAqIHRlc3QyNjIvY29u
ZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKwogMjAyMS0w
MS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0Nd
IFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVyZm9ybWluZyBzaW1wbGUg
b2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL3JlZ2V4cC1zZXR0ZXItcmVhbG0uanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdl
eHAtc2V0dGVyLXJlYWxtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwODFiNzk4Njc3N2Y2Yjc5MDkxYmQwNjM3
MzQ3OTA3YWNjNDdhZDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAt
c2V0dGVyLXJlYWxtLmpzCkBAIC0wLDAgKzEsOSBAQAorbGV0IHJlYWxtID0gY3JlYXRlR2xvYmFs
T2JqZWN0KCk7Cit7CisgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHJlYWxtLlJlZ0V4cCwgIm11bHRpbGluZSIpOworICAgIGRlc2NyaXB0b3Iuc2V0
LmNhbGwocmVhbG0uUmVnRXhwLCA0Mik7Cit9Cit7CisgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJlYWxtLlJlZ0V4cCwgImlucHV0Iik7CisgICAg
ZGVzY3JpcHRvci5zZXQuY2FsbChyZWFsbS5SZWdFeHAsIDQyKTsKK30KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApp
bmRleCA5YTRjNWU3MzEzMjA4ZjYwNDRjZWQxYjcxYzMyMzYzMWEyNGI1NDQ2Li45Mjk5ZTdhNWNk
MGQyOGI0Mjc2NWRjYjhhMzQzMjliZDVmZTBkZWFlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3Qy
NjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0xNyw3
ICsxNyw2IEBAIHNraXA6CiAgICAgLSBBdG9taWNzLndhaXRBc3luYwogICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDkzMQogICAgIC0gcmVnZXhwLWxvb2ti
ZWhpbmQKLSAgICAtIGxlZ2FjeS1yZWdleHAKIAogICAgIC0gY2xhc3MtbWV0aG9kcy1wcml2YXRl
CiAgICAgLSBjbGFzcy1zdGF0aWMtbWV0aG9kcy1wcml2YXRlCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKaW5kZXggNzBiNjA3NmMwODY4MWZmMWY5ZjE2ZDc1N2QzMDgyYzQ1Njg4MDY5OS4uOTA0
ZGI2ODQwYjFlYmYxYmFkMWNlYTBhM2Y4NWVlZGJlOGI5YzAyYSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbApAQCAtNSw2ICs1LDEyIEBAIHRlc3QvYW5uZXhCL2J1aWx0LWlucy9GdW5jdGlv
bi9jcmVhdGVkeW5mbi1odG1sLWNsb3NlLWNvbW1lbnQtcGFyYW1zLmpzOgogdGVzdC9hbm5leEIv
YnVpbHQtaW5zL0Z1bmN0aW9uL2NyZWF0ZWR5bmZuLWh0bWwtb3Blbi1jb21tZW50LXBhcmFtcy5q
czoKICAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICd9Jy4gRXhwZWN0
ZWQgYSBwYXJhbWV0ZXIgcGF0dGVybiBvciBhICcpJyBpbiBwYXJhbWV0ZXIgbGlzdC4iCiAgIHN0
cmljdCBtb2RlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBh
IHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKK3Rlc3QvYW5u
ZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1jcm9zcy1yZWFsbS1p
bnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUu
Y29tcGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBSZWdFeHAucHJvdG90eXBlLmNv
bXBpbGUuY2FsbChvdGhlclJlYWxtX3JlZ2V4cClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQg
YSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBh
bGwnCit0ZXN0L2FubmV4Qi9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9jb21waWxlL3RoaXMt
c3ViY2xhc3MtaW5zdGFuY2UuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBzdWJjbGFz
c19yZWdleHAuY29tcGlsZSgpYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3JlZ2V4cC5jb21waWxlKClgIHRocm93
cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9ldmFsLWNvZGUv
ZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1lYXJseS1lcnItYmxvY2suanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEFuIGluaXRpYWxpemVkIGJpbmRpbmcgaXMgbm90
IGNyZWF0ZWQgcHJpb3IgdG8gZXZhbHVhdGlvbiBFeHBlY3RlZCBhIFJlZmVyZW5jZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9hbm5l
eEIvbGFuZ3VhZ2UvZXZhbC1jb2RlL2RpcmVjdC9mdW5jLWJsb2NrLWRlY2wtZXZhbC1mdW5jLXNr
aXAtZWFybHktZXJyLWZvci1pbi5qczoKQEAgLTY4MSw2ICs2ODcsOSBAQCB0ZXN0L2J1aWx0LWlu
cy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYXN5bmMtbWV0aG9kLWNsYXNzLXN0YXRlbWVu
dC5qczoKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3luYy1t
ZXRob2Qtb2JqZWN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBO
YXRpdmVGdW5jdGlvbiBTeW50YXg6ICJhc3luYyBmdW5jdGlvbiBmKCAvKiBiICovICkgLyogYyAq
LyB7IC8qIGQgKi8gfSIgKGFzeW5jIGYgLyogYSAqLyAoIC8qIGIgKi8gKSAvKiBjICovIHsgLyog
ZCAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2
ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICovIHsg
LyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICov
IH0pJwordGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2J1aWx0LWlu
LWZ1bmN0aW9uLW9iamVjdC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMg
dG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25hdGl2ZSBj
b2RlXVxufSIgKCVSZWdFeHAlLiQqKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IENv
bmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uICQqKCkge1xuICAgIFtu
YXRpdmUgY29kZV1cbn0iICglUmVnRXhwJS4kKiknCiB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9w
cm90b3R5cGUvdG9TdHJpbmcvZnVuY3Rpb24tZGVjbGFyYXRpb24tbm9uLXNpbXBsZS1wYXJhbWV0
ZXItbGlzdC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZl
RnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICov
IDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBr
ICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAvKiBhICovIGYg
LyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICov
IHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBt
ICovIHsgLyogbiAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1z
IHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uIGYoIC8qIGMgKi8gYSAvKiBkICov
ID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBq
ICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAqLyB9IiAoZnVuY3Rpb24g
LyogYSAqLyBmIC8qIGIgKi8gKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAvKiBmICov
ICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8gfSAvKiBs
ICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSknCkBAIC03NjYsOSArNzc1LDYgQEAgdGVzdC9idWls
dC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVl
LWZ1bmN0aW9uLWFyZ3UKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrbnVsbMK7LCDCq1tvYmplY3QgQXJndW1lbnRzXcK7KSB0byBiZSB0cnVlJwogdGVzdC9i
dWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZh
bHVlLWZ1bmN0aW9uLWNhbGxlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrbnVsbMK7LCDCq2Z1bmN0aW9uIGcoKSB7JwotdGVzdC9idWlsdC1pbnMv
T2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLXJlZ2V4
cC1kb2xsYXIxLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqvCuywgwqt4wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0
LWlucy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xlbmd0aCwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBj
b250ZW50cy4gJwo=
</data>
<flag name="commit-queue"
          id="434535"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416928</attachid>
            <date>2021-01-04 02:08:42 -0800</date>
            <delta_ts>2021-01-04 02:20:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210104020842.patch</filename>
            <type>text/plain</type>
            <size>49825</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ4ZmQ1ZGE1NDQ4MGY3ZjA0NTMxMzRhYjgwYWI2MjkyMzJkZjVjLi4wYjdlNDFjOTE5YmZkYmU0
NDRmMWYzNjkyY2M0N2YzZjdkY2I0M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1y
ZWdleHAtbGVnYWN5LWZlYXR1cmVzCisKKyAgICAgICAgKiBjcmVhdGVfaGFzaF90YWJsZToKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVu
dGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dElubGluZVNsb3cpOgorICAgICAgICAoSlNDOjpnZXRD
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlcik6CisgICAgICAgICogcnVu
dGltZS9Mb29rdXAuY3BwOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY0FjY2Vzc29yKToKKyAg
ICAgICAgKEpTQzo6c2V0VXBBbmRDYWxsU3RhdGljU2V0dGVyU2xvdCk6CisgICAgICAgICogcnVu
dGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6cHV0RW50cnkpOgorICAgICAgICAoSlNDOjps
b29rdXBQdXQpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAg
KiBydW50aW1lL1ZNLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgor
CiAyMDIxLTAxLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gUmVtb3ZlIHVubmVjZXNzYXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5n
IHNpbXBsZSBvYmplY3QgcGF0dGVybiBkZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCmluZGV4IGI1YzhkYjcxNTI2YWFiMmYxNGM5
NjRlMzIzNGI1NWU0YTAwMTFmNjQuLjBlYTNmNDQ2NWUxM2RkMGZjNWE5ZGQ4ODRmZGIzN2M5YmQ3
ZjdlY2IgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJs
ZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTk0LDkg
Kzk0LDEyIEBAIHdoaWxlICg8SU4+KSB7CiAgICAgICAgIGlmICgkYXR0ID1+IG0vRnVuY3Rpb24v
KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24iLCAiZnVuY3Rpb24iID0+ICR2YWwsICJwYXJhbXMiID0+IChsZW5ndGgo
JHBhcmFtKSA/ICRwYXJhbSA6ICIiKSwgImludHJpbnNpYyIgPT4gKGxlbmd0aCgkaW50cmluc2lj
KSA/ICRpbnRyaW5zaWMgOiAiTm9JbnRyaW5zaWMiKSB9KTsKICAgICAgICAgICAgICNwcmludGYg
U1RERVJSICJXQVJOSU5HOiBOdW1iZXIgb2YgYXJndW1lbnRzIG1pc3NpbmcgZm9yICRrZXkvJHZh
bFxuIiBpZiAobGVuZ3RoKCRwYXJhbSkgPT0gMCk7Ci0gICAgICAgIH0gZWxzaWYgKCRhdHQgPX4g
bS9BY2Nlc3Nvci8pIHsKKyAgICAgICAgfSBlbHNpZiAoJGF0dCA9fiBtL0FjY2Vzc29yLyAmJiAh
KCRhdHQgPX4gbS9DdXN0b21BY2Nlc3Nvci8pKSB7CiAgICAgICAgICAgICBteSAkZ2V0ID0gJHZh
bDsKICAgICAgICAgICAgIG15ICRwdXQgPSAibnVsbHB0ciI7CisgICAgICAgICAgICBpZiAoISgk
YXR0ID1+IG0vUmVhZE9ubHkvKSkgeworICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpz
Y191Y2ZpcnN0KCR2YWwpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgJGhhc1NldHRlciA9
ICJ0cnVlIjsKICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3NvciIsICJnZXQiID0+ICRnZXQsICJwdXQiID0+ICRwdXQgfSk7CiAg
ICAgICAgIH0gZWxzaWYgKCRhdHQgPX4gbS9DZWxsUHJvcGVydHkvKSB7CkBAIC0xMTAsNyArMTEz
LDcgQEAgd2hpbGUgKDxJTj4pIHsKICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIg
PT4gIlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrIiwgImNiYWNrIiA9PiAkY2Jh
Y2sgfSk7CiAgICAgICAgIH0gZWxzaWYgKGxlbmd0aCgkYXR0KSkgewogICAgICAgICAgICAgbXkg
JGdldCA9ICR2YWw7Ci0gICAgICAgICAgICBteSAkcHV0ID0gIjAiOworICAgICAgICAgICAgbXkg
JHB1dCA9ICJudWxscHRyIjsKICAgICAgICAgICAgIGlmICghKCRhdHQgPX4gbS9SZWFkT25seS8p
KSB7CiAgICAgICAgICAgICAgICAgJHB1dCA9ICJzZXQiIC4ganNjX3VjZmlyc3QoJHZhbCk7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAppbmRleCAwNGNjZGMwNmVlMzM0MmY1ODg2ZWEzOTlh
ZDY0YTFjODNjNGM0ZTBmLi4wY2U1YmJkYzkxNGVjNDBhY2MxNzZkZjdhMGQ2OGRhZDYwMjZjOGY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvclByb3RvdHlwZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEludGxD
b2xsYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5Db2xsYXRvciIsICZCYXNlOjpzX2lu
Zm8KIAogLyogU291cmNlIGZvciBJbnRsQ29sbGF0b3JQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBj
b2xsYXRvclByb3RvdHlwZVRhYmxlCi0gIGNvbXBhcmUgICAgICAgICAgSW50bENvbGxhdG9yUHJv
dG90eXBlR2V0dGVyQ29tcGFyZSAgICAgICAgRG9udEVudW18QWNjZXNzb3IKKyAgY29tcGFyZSAg
ICAgICAgICBJbnRsQ29sbGF0b3JQcm90b3R5cGVHZXR0ZXJDb21wYXJlICAgICAgICBEb250RW51
bXxBY2Nlc3NvcnxSZWFkT25seQogICByZXNvbHZlZE9wdGlvbnMgIEludGxDb2xsYXRvclByb3Rv
dHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMgIERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQKICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCA3MzhjOGM2NGJiMmZiNmI2NGMwMGViNzI2Yzgz
NTZkNWIxY2E1OTY3Li5lMTQwNjY3NTRjZDc4YTk2YTZhM2Q2NTE1ZDdkYjg1ZTVjNTYyMzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgY29uc3QgQ2xhc3NJ
bmZvIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5EYXRlVGlt
ZUZvcm1hdCIsICYKIAogLyogU291cmNlIGZvciBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUu
bHV0LmgKIEBiZWdpbiBkYXRlVGltZUZvcm1hdFByb3RvdHlwZVRhYmxlCi0gIGZvcm1hdCAgICAg
ICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAg
ICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCisgIGZvcm1hdCAgICAgICAgICAgICAgICBJbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAgICAgICAgIERvbnRFbnVtfEFj
Y2Vzc29yfFJlYWRPbmx5CiAgIGZvcm1hdFJhbmdlICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIK
ICAgZm9ybWF0VG9QYXJ0cyAgICAgICAgIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNG
b3JtYXRUb1BhcnRzICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlv
bnMgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCmluZGV4IDFlMWVlYjg2MzM1ZmI2MDk2
NWJhOWMxMDNkNzg2NDk3MjU3YTBiMzMuLjc1NWMzOGUxOWMxMTdkOWNkYTcwNDU3NTczMjJjMDc5
NjBiMGI5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxM
b2NhbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVQcm90b3R5cGUuY3BwCkBAIC01OCwxNiArNTgsMTYgQEAgY29uc3QgQ2xhc3NJbmZv
IEludGxMb2NhbGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuTG9jYWxlIiwgJkJhc2U6OnNf
aW5mbywgJmwKICAgbWF4aW1pemUgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGlt
aXplICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIG1pbmltaXplICAgICAgICAgSW50
bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MAogICB0b1N0cmluZyAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKLSAgYmFzZU5hbWUgICAgICAgICBJbnRsTG9jYWxl
UHJvdG90eXBlR2V0dGVyQmFzZU5hbWUgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjYWxl
bmRhciAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhciAgICAgICAgIERv
bnRFbnVtfEFjY2Vzc29yCi0gIGNhc2VGaXJzdCAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckNhc2VGaXJzdCAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgY29sbGF0aW9uICAgICAg
ICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uICAgICAgICBEb250RW51bXxBY2Nl
c3NvcgotICBob3VyQ3ljbGUgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJIb3VyQ3lj
bGUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIG51bWVyaWMgICAgICAgICAgSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlck51bWVyaWMgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgbnVt
YmVyaW5nU3lzdGVtICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtICBE
b250RW51bXxBY2Nlc3NvcgotICBsYW5ndWFnZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVH
ZXR0ZXJMYW5ndWFnZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIHNjcmlwdCAgICAgICAg
ICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdCAgICAgICAgICAgRG9udEVudW18QWNj
ZXNzb3IKLSAgcmVnaW9uICAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgorICBiYXNlTmFtZSAgICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5CisgIGNhbGVuZGFyICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFy
ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgY2FzZUZpcnN0ICAgICAgICBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0ICAgICAgICBEb250RW51bXxBY2Nlc3Nv
cnxSZWFkT25seQorICBjb2xsYXRpb24gICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJD
b2xsYXRpb24gICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGhvdXJDeWNsZSAg
ICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSAgICAgICAgRG9udEVudW18
QWNjZXNzb3J8UmVhZE9ubHkKKyAgbnVtZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtZXJpYyAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBudW1i
ZXJpbmdTeXN0ZW0gIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERv
bnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckxhbmd1YWdlICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkK
KyAgc2NyaXB0ICAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAg
ICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICByZWdpb24gICAgICAgICAgIEludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24gICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJl
YWRPbmx5CiBAZW5kCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDJlZTk4MjkzNGI0
MzA0Zjg5OTg5ZmE5ZTIzYWUwNmMwOWNkMGU2YmUuLjI2MDdhZmQyYzk2M2UzMzdmZmNjNTc0Nzkw
ZDY1ZmNhNGI2NTk3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IGNvbnN0IENsYXNzSW5mbyBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJ
bnRsLk51bWJlckZvcm1hdCIsICZCYXNlCiAKIC8qIFNvdXJjZSBmb3IgSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5sdXQuaAogQGJlZ2luIG51bWJlckZvcm1hdFByb3RvdHlwZVRhYmxlCi0gIGZv
cm1hdCAgICAgICAgICAgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAg
ICAgIERvbnRFbnVtfEFjY2Vzc29yCisgIGZvcm1hdCAgICAgICAgICAgSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CiAgIGZvcm1hdFRvUGFydHMgICAgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRU
b1BhcnRzICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgcmVzb2x2ZWRPcHRpb25zICBJbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24g
MAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRh
Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3UHJvdG90eXBlLmNwcAppbmRleCBmNzM0ZjU2Yjg3YjcyZWRjYWEyOWU3OTM4NTAyYjAwMDY2
YzUzZDM4Li5lZDg3NmQ0Y2VmYWE4Y2IzOWJhN2E3NmRlMDlhOTY2ZGI4ZDY1NDljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBl
LmNwcApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgc2V0VWludDMyICAgICAg
ICAgICAgIGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDMyICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAyICBEYXRhVmlld1NldFVpbnQzMgogICBzZXRGbG9hdDMyICAgICAgICAgICAg
ZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDMyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDIgIERhdGFWaWV3U2V0RmxvYXQzMgogICBzZXRGbG9hdDY0ICAgICAgICAgICAgZGF0YVZp
ZXdQcm90b0Z1bmNTZXRGbG9hdDY0ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDIg
IERhdGFWaWV3U2V0RmxvYXQ2NAotICBidWZmZXIgICAgICAgICAgICAgICAgZGF0YVZpZXdQcm90
b0dldHRlckJ1ZmZlciAgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yICAgICAgIDAKLSAgYnl0
ZUxlbmd0aCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoICAgICAgICBE
b250RW51bXxBY2Nlc3NvciAgICAgICAwCi0gIGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmll
d1Byb3RvR2V0dGVyQnl0ZU9mZnNldCAgICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAor
ICBidWZmZXIgICAgICAgICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ1ZmZlciAgICAgICAg
ICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5ICAgICAgIDAKKyAgYnl0ZUxlbmd0aCAgICAg
ICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoICAgICAgICBEb250RW51bXxBY2Nl
c3NvcnxSZWFkT25seSAgICAgICAwCisgIGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkgICAg
ICAgMAogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IGFkNzRjZDYyZTMwMDQ2ZDE2N2FlMzc2YjY4NWMzMjg0M2I3
YmUzMDAuLjQ3MjhkNjEzZjQ3MTAyZmVkNTAyODVkNGI5NGNkOGU3YTgzMzFhYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUw
Myw2ICs1MDMsNyBAQCBKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TQogICAgICwgbV9udW1iZXJUb1N0
cmluZ1dhdGNocG9pbnRTZXQoSXNXYXRjaGVkKQogICAgICwgbV9ydW50aW1lRmxhZ3MoKQogICAg
ICwgbV9zdGFja1RyYWNlTGltaXQoT3B0aW9uczo6ZGVmYXVsdEVycm9yU3RhY2tUcmFjZUxpbWl0
KCkpCisgICAgLCBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKHZtKQogICAgICwgbV9n
bG9iYWxPYmplY3RNZXRob2RUYWJsZShnbG9iYWxPYmplY3RNZXRob2RUYWJsZSA/IGdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIDogJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA0Y2Iw
NTMyNWFhZDZiMzkzM2E4YTIyOWVkYjNjOGU0OWFjNTE4YjZkLi42M2Q2ZGYyZjAxNWY4OTY2MmQ5
ZDY1OTQzMWZkNjQ3ZmQ5MWM1OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTU0MCw2ICs1NDAsOCBAQCBjbGFzcyBKU0dsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBib29sIGlzTWFw
UHJvdG90eXBlU2V0RmFzdEFuZE5vbk9ic2VydmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90
eXBlQWRkRmFzdEFuZE5vbk9ic2VydmFibGUoKTsKIAorICAgIFdlYWtHQ01hcDxzdGQ6OnBhaXI8
Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbj4m
IGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCkgeyByZXR1cm4gbV9jdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbk1hcDsgfQorCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgdXNpbmcgUmVm
ZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgPSBIYXNoTWFwPFJlZlB0cjxVbmlx
dWVkU3RyaW5nSW1wbD4sIFJlZjxXYXRjaHBvaW50U2V0PiwgSWRlbnRpZmllclJlcEhhc2g+Owog
ICAgIFJlZmVyZW5jZWRHbG9iYWxQcm9wZXJ0eVdhdGNocG9pbnRTZXRzIG1fcmVmZXJlbmNlZEds
b2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHM7CkBAIC01NTQsNiArNTU2LDcgQEAgY2xhc3MgSlNH
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUnVu
dGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAgIENvbnNvbGVDbGllbnQqIG1fY29uc29sZUNs
aWVudCB7IG51bGxwdHIgfTsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGlt
aXQ7CisgICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0ZXJTZXR0ZXIqLCBpbnQ+LCBK
U0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
TWFwOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBjb25zdCBKU0dsb2JhbE9iamVjdCogbV9n
bG9iYWxPYmplY3RBdERlYnVnZ2VyRW50cnkgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggODgwODRkZjc3YTViYjgzMDJiM2JmNDky
ZWViMGQxODkxMjI4Yzc0YS4uNjI3MTQ3MGU5ZDIxYWYyY2ZjN2ViMzBkNjM1Y2E3MDBkOTZkMTQ3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtODcz
LDggKzg3MywxMyBAQCBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eQogICAgICAgICB9CiAgICAgICAg
IGlmICghb2JqLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpIHsKICAgICAgICAgICAgIGlm
IChvYmotPmNsYXNzSW5mbyh2bSktPmhhc1N0YXRpY1NldHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVz
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlbnRyeSA9IG9iai0+ZmluZFByb3BlcnR5
SGFzaEVudHJ5KHZtLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIHB1dEVudHJ5KGdsb2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5j
bGFzc0ZvclRoaXMsIGVudHJ5LT52YWx1ZSwgb2JqLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZW50cnkgPSBvYmotPmZpbmRQcm9w
ZXJ0eUhhc2hFbnRyeSh2bSwgcHJvcGVydHlOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlc3VsdCA9IHB1dEVudHJ5KGdsb2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5jbGFzc0Zv
clRoaXMsIGVudHJ5LT52YWx1ZSwgb2JqLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKKyAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IFRyaVN0YXRlOjpJbmRldGVybWlu
YXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA9PSBUcmlTdGF0ZTo6
VHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChvYmotPnR5cGUoKSA9PSBQcm94eU9i
amVjdFR5cGUpIHsKQEAgLTM1NDgsMTAgKzM1NTMsMTAgQEAgc3RhdGljIEpTQ3VzdG9tR2V0dGVy
U2V0dGVyRnVuY3Rpb24qIGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0
dGUKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBrZXkgPSBz
dGQ6Om1ha2VfcGFpcihnZXR0ZXJTZXR0ZXIsIChpbnQpdHlwZSk7Ci0gICAgSlNDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24gPSB2bS5jdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcC5nZXQoa2V5KTsKKyAgICBKU0N1c3RvbUdldHRlclNldHRl
ckZ1bmN0aW9uKiBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IGdsb2JhbE9iamVjdC0+Y3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5nZXQoa2V5KTsKICAgICBpZiAoIWN1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uKSB7CiAgICAgICAgIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
ID0gSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IGdldHRlclNldHRlciwgdHlwZSwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSk7Ci0gICAgICAg
IHZtLmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwLnNldChrZXksIGN1c3RvbUdldHRlclNl
dHRlckZ1bmN0aW9uKTsKKyAgICAgICAgZ2xvYmFsT2JqZWN0LT5jdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbk1hcCgpLnNldChrZXksIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKTsKICAgICB9
CiAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKaW5kZXggZTU3NGNkNDEzMTg2ZDcwOTg3NjkzOGZh
ZDJiYzQ5ZWY1NzUyZTgwMC4uYjYzNWYzNTc3MTEzNjgyMTQ5MGFlZWIyYjY4MWZlNGU3OWU3ZjQw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCkBAIC0zOSw3ICsz
OSwxOCBAQCB2b2lkIHJlaWZ5U3RhdGljQWNjZXNzb3IoVk0mIHZtLCBjb25zdCBIYXNoVGFibGVW
YWx1ZSYgdmFsdWUsIEpTT2JqZWN0JiB0aGlzT2JqZQogICAgICAgICAgICAgZ2V0dGVyID0gSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDAsIGdldHRlck5hbWUsIHZhbHVlLmFj
Y2Vzc29yR2V0dGVyKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIEdldHRlclNldHRlciogYWNj
ZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIG51
bGxwdHIpOworICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBudWxscHRyOworICAgIGlmICh2YWx1ZS5h
Y2Nlc3NvclNldHRlcigpKSB7CisgICAgICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QnVpbHRpbikKKyAgICAgICAgICAgIHNldHRlciA9IEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdmFsdWUuYnVpbHRpbkFjY2Vzc29yU2V0dGVyR2VuZXJhdG9yKCkodm0pLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBzZXR0ZXJO
YW1lID0gdHJ5TWFrZVN0cmluZygic2V0ICJfcywgU3RyaW5nKCpwcm9wZXJ0eU5hbWUucHVibGlj
TmFtZSgpKSk7CisgICAgICAgICAgICBpZiAoIXNldHRlck5hbWUpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgc2V0dGVyID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIDEsIHNldHRlck5hbWUsIHZhbHVlLmFjY2Vzc29yU2V0dGVyKCkpOworICAgICAg
ICB9CisgICAgfQorICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7CiAgICAgdGhpc09iamVjdC5w
dXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogfQogCkBAIC03Myw0ICs4
NCwzNCBAQCBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KFZNJiB2bSwgY29uc3QgQ2xhc3NJ
bmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hUYWJsZQogICAgIHJldHVybiB0cnVlOwogfQogCitU
cmlTdGF0ZSBzZXRVcEFuZENhbGxTdGF0aWNTZXR0ZXJTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hU
YWJsZVZhbHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBB
U1NFUlQoYmFzZU9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKSk7CisgICAgQVNTRVJUKGVudHJ5LT5h
dHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXM7CisgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gYmFzZU9iamVjdC0+Z2V0
RGlyZWN0T2Zmc2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOworCisgICAgaWYgKCFp
c1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAgICAgICAgLy8gSWYgYSBwcm9wZXJ0eSBpcyBldmVy
IGRlbGV0ZWQgZnJvbSBhbiBvYmplY3Qgd2l0aCBhIHN0YXRpYyB0YWJsZSwgdGhlbiB3ZSByZWlm
eQorICAgICAgICAvLyBhbGwgc3RhdGljIGZ1bmN0aW9ucyBhdCB0aGF0IHRpbWUgLSBhZnRlciB0
aGlzIHdlIHNob3VsZG4ndCBiZSByZS1hZGRpbmcgYW55dGhpbmcuCisgICAgICAgIGlmIChiYXNl
T2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpCisgICAgICAgICAgICByZXR1cm4g
VHJpU3RhdGU6OkluZGV0ZXJtaW5hdGU7CisKKyAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2
bSwgY2xhc3NJbmZvLCBwcm9wZXJ0eU5hbWUsICplbnRyeSwgKmJhc2VPYmplY3QpOworCisgICAg
ICAgIG9mZnNldCA9IGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1l
LCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYgKCFpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAg
ICAgICAgICAgIGRhdGFMb2coIlN0YXRpYyBoYXNodGFibGUgaW5pdGlhbGlhdGlvbiBmb3IgIiwg
cHJvcGVydHlOYW1lLCAiIGRpZCBub3QgcHJvZHVjZSBhIHByb3BlcnR5LlxuIik7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gQXQgdGhpcyBwb2ludCwgc3RvcmVkIHZhbHVlIG11c3QgYmUgR2V0dGVyU2V0dGVyIGJl
Y2FzdWUsCisgICAgLy8gMS4gSW4gdGhlIGFib3ZlIHNlcXVlbmNlLCB3ZSByZWlmaWVkIGl0Lgor
ICAgIC8vIDIuIElmIHRoZSB2YWx1ZSBpcyBkZWxldGVkLCB3ZSByZWlmaWVkIGFsbCBmaWVsZHMu
IFNvIGBiYXNlT2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSlgIG11c3QgYmUgdHJ1
ZS4KKyAgICBpZiAoIWJhc2VPYmplY3QtPnN0cnVjdHVyZSh2bSktPmlzVW5jYWNoZWFibGVEaWN0
aW9uYXJ5KCkpCisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlU2V0dGVyKGJhc2VPYmplY3QsIG9m
ZnNldCk7CisgICAgcmV0dXJuIHRyaVN0YXRlKGNhbGxTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBzbG90
LnRoaXNWYWx1ZSgpLCBqc0Nhc3Q8R2V0dGVyU2V0dGVyKj4oYmFzZU9iamVjdC0+Z2V0RGlyZWN0
KG9mZnNldCkpLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSA/IEVDTUFNb2RlOjpzdHJpY3Qo
KSA6IEVDTUFNb2RlOjpzbG9wcHkoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggYTZkMGU3MWFiNThkNmU5M2U4Nzk1
YjU4ODliNjIxZTA1Yzc0YTcwYi4uMGM3ZDI0Nzk1MmQ2MWYzMTYxNWM5MjNiZTljMmE0MTUxODUy
YjU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTIwNCw2ICsy
MDQsNyBAQCBzdHJ1Y3QgSGFzaFRhYmxlIHsKIH07CiAKIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoVk0mLCBjb25zdCBDbGFzc0luZm8qLCBjb25zdCBIYXNo
VGFibGVWYWx1ZSosIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOworSlNfRVhQT1JUX1BSSVZBVEUgVHJpU3RhdGUgc2V0VXBBbmRDYWxsU3RhdGljU2V0
dGVyU2xvdChKU0dsb2JhbE9iamVjdCosIFZNJiwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFz
aFRhYmxlVmFsdWUqLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlTdGF0aWNB
Y2Nlc3NvcihWTSYsIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiwgSlNPYmplY3QmIHRoaXNPYmplY3Qs
IFByb3BlcnR5TmFtZSk7CiAKIGlubGluZSBCdWlsdGluR2VuZXJhdG9yIEhhc2hUYWJsZVZhbHVl
OjpidWlsdGluQWNjZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdApAQCAtMjY2LDcgKzI2Nyw3
IEBAIGlubGluZSBib29sIHJlcGxhY2VTdGF0aWNQcm9wZXJ0eVNsb3QoVk0mIHZtLCBKU09iamVj
dCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lCiAvLyAnYmFzZScgbWVhbnMgdGhlIG9iamVjdCBo
b2xkaW5nIHRoZSBwcm9wZXJ0eSAocG9zc2libHkgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiBvZiB0
aGUgb2JqZWN0IHB1dCB3YXMgY2FsbGVkIG9uKS4KIC8vICd0aGlzVmFsdWUnIGlzIHRoZSBvYmpl
Y3QgdGhhdCBwdXQgaXMgYmVpbmcgYXBwbGllZCB0byAoaW4gdGhlIGNhc2Ugb2YgYSBwcm94eSwg
dGhlIHByb3h5IHRhcmdldCkuCiAvLyAnc2xvdC50aGlzVmFsdWUoKScgaXMgdGhlIG9iamVjdCB0
aGUgcHV0IHdhcyBvcmlnaW5hbGx5IHBlcmZvcm1lZCBvbiAoaW4gdGhlIGNhc2Ugb2YgYSBwcm94
eSwgdGhlIHByb3h5IGl0c2VsZikuCi1pbmxpbmUgYm9vbCBwdXRFbnRyeShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0luZm8qLCBjb25zdCBIYXNoVGFibGVWYWx1ZSog
ZW50cnksIEpTT2JqZWN0KiBiYXNlLCBKU09iamVjdCogdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCitpbmxp
bmUgVHJpU3RhdGUgcHV0RW50cnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBlbnRyeSwgSlNPYmpl
Y3QqIGJhc2UsIEpTT2JqZWN0KiB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBn
ZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI3OCwxMyArMjc5LDE2IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IENsYXNzSW5mbyosIGNvbnN0IEhhc2hUCiAgICAg
ICAgICAgICAvLyBGSVhNRTogdGhpc1ZhbHVlIG1heSBiZSBhbiBvYmplY3Qgd2l0aCBub24tZXh0
ZW5zaWJsZSBzdHJ1Y3R1cmUgd2UgbXVzdCB0aHJvdyBmb3IuCiAgICAgICAgICAgICBpZiAoSlNP
YmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1
ZSkpCiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJu
IFRyaVN0YXRlOjpUcnVlOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdy
aXRlRXJyb3IpOworICAgICAgICByZXR1cm4gdHJpU3RhdGUodHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9y
KSk7CiAgICAgfQogCi0gICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJp
YnV0ZTo6QWNjZXNzb3IpCi0gICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwor
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KSB7CisgICAgICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpKQorICAgICAgICAgICAgcmV0dXJuIHRyaVN0YXRlKHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9kZSgpLCBSZWFkb25seVByb3BlcnR5V3Jp
dGVFcnJvcikpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHNldFVwQW5kQ2Fs
bFN0YXRpY1NldHRlclNsb3QoZ2xvYmFsT2JqZWN0LCB2bSwgY2xhc3NJbmZvLCBlbnRyeSwgYmFz
ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOworICAgIH0KIAogICAgIGlmICghKGVudHJ5
LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKSB7CiAgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksICJET01KSVRBdHRyaWJ1dGUgc3VwcG9ydHMgcmVhZG9u
bHkgYXR0cmlidXRlcyBjdXJyZW50bHkuIik7CkBAIC0yOTgsMTcgKzMwMiwxNyBAQCBpbmxpbmUg
Ym9vbCBwdXRFbnRyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0lu
Zm8qLCBjb25zdCBIYXNoVAogICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21WYWx1ZShiYXNlLCBl
bnRyeS0+cHJvcGVydHlQdXR0ZXIoKSk7CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBjYWxsQ3Vz
dG9tU2V0dGVyKGdsb2JhbE9iamVjdCwgZW50cnktPnByb3BlcnR5UHV0dGVyKCksIGlzQWNjZXNz
b3IsIGJhc2UsIHNsb3QudGhpc1ZhbHVlKCksIHZhbHVlKTsKLSAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBUcmlTdGF0ZTo6RmFsc2UpOwogICAgICAgICBpZiAocmVzdWx0ICE9IFRyaVN0YXRlOjpJbmRl
dGVybWluYXRlKQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA9PSBUcmlTdGF0ZTo6VHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAgICAgLy8gRklYTUU6IHRoaXNWYWx1
ZSBtYXkgYmUgYW4gb2JqZWN0IHdpdGggbm9uLWV4dGVuc2libGUgc3RydWN0dXJlIHdlIG11c3Qg
dGhyb3cgZm9yLgogICAgICAgICBpZiAoSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSkpCiAgICAgICAgICAgICB0aGlzT2JqZWN0LT5w
dXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpUcnVlOwogICAgIH0KIAotICAgIHJldHVybiB0eXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQ
cm9wZXJ0eVdyaXRlRXJyb3IpOworICAgIHJldHVybiB0cmlTdGF0ZSh0eXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRl
RXJyb3IpKTsKIH0KIAogLyoqCkBAIC0zMjMsNyArMzI3LDggQEAgaW5saW5lIGJvb2wgbG9va3Vw
UHV0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEoKICAgICBpZiAoIWVudHJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBwdXRS
ZXN1bHQgPSBwdXRFbnRyeShnbG9iYWxPYmplY3QsIHRhYmxlLmNsYXNzRm9yVGhpcywgZW50cnks
IGJhc2UsIGJhc2UsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIGF1dG8gcmVzdWx0
ID0gcHV0RW50cnkoZ2xvYmFsT2JqZWN0LCB0YWJsZS5jbGFzc0ZvclRoaXMsIGVudHJ5LCBiYXNl
LCBiYXNlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBwdXRSZXN1bHQgPSByZXN1
bHQgPT0gVHJpU3RhdGU6OlRydWU7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0
YTMwOGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi5lMTBjODkyZDU3OTdmNzg0
NDE2NGI5M2FkZGU5NzQ0MDAyYmM3NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOSwyMyArMjksMjMgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4pOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCk7Ci1zdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk7Ci1z
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEp
Owotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIyKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMyk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI1KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0KTsKLXN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0
Y2gpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3Ry
dWN0b3JMZWZ0Q29udGV4dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyOSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1
Y3RvcklucHV0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTU3LDI3ICs1
NywyNyBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogCiAvKiBTb3VyY2UgZm9yIFJlZ0V4cENv
bnN0cnVjdG9yLmx1dC5oCiBAYmVnaW4gcmVnRXhwQ29uc3RydWN0b3JUYWJsZQotICAgIGlucHV0
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIE5vbmUKLSAgICAkXyAg
ICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBEb250RW51bQotICAg
IG11bHRpbGluZSAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIE5vbmUKLSAg
ICAkKiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBEb250RW51
bQotICAgIGxhc3RNYXRjaCAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAgbGFzdFBhcmVu
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQrICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERv
bnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICBsZWZ0Q29udGV4dCAgICAgcmVnRXhwQ29u
c3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJGAgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25s
eXxEb250RW51bQotICAgIHJpZ2h0Q29udGV4dCAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29u
dGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAg
JDEgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQyICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkMyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIzICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDQgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ1ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI2ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDcgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ4
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjggICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgICAkOSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAg
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgaW5wdXQgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQgICAgICAgICAgQWNjZXNzb3J8RG9udEVudW0KKyAgICAkXyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBBY2Nlc3NvcnxEb250RW51bQorICAg
IG11bHRpbGluZSAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIEFjY2Vzc29y
fERvbnRFbnVtCisgICAgJCogICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5l
ICAgICAgQWNjZXNzb3J8RG9udEVudW0KKyAgICBsYXN0TWF0Y2ggICAgICAgcmVnRXhwQ29uc3Ry
dWN0b3JMYXN0TWF0Y2ggICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQmICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIEFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgbGFzdFBhcmVuICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBh
cmVuICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkKyAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51
bQorICAgIGxlZnRDb250ZXh0ICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIEFj
Y2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJGAgICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yTGVmdENvbnRleHQgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICByaWdo
dENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBBY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQorICAgICQnICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dCAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDEgICAgICAgICAgICAg
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVu
dW0KKyAgICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBB
Y2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjMgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDQg
ICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCAgICAgICAgQWNjZXNzb3J8UmVh
ZE9ubHl8RG9udEVudW0KKyAgICAkNSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI1ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ2ICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRF
bnVtCisgICAgJDcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyAgICAgICAg
QWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOCAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI4ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ5
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIEFjY2Vzc29yfFJl
YWRPbmx5fERvbnRFbnVtCiBAZW5kCiAqLwogCkBAIC0xMDEsMTEzICsxMDEsMTM0IEBAIHZvaWQg
UmVnRXhwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgUmVnRXhwUHJvdG90eXBl
KiByZWdFeHBQcm90b3R5cGUsCiB9CiAKIHRlbXBsYXRlPGludCBOPgotaW5saW5lIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoraW5saW5lIEVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmICh0aGlzVmFsdWUg
IT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLiROIGdldHRlcnMgcmVx
dWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJhY2tyZWYoZ2xv
YmFsT2JqZWN0LCBOKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0
eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8MT4oZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
ckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyMywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+KGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXJJbXBsPDQ+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAg
IHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8ND4oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9w
ZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8NT4oZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDc+
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OD4oZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBw
cm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OT4o
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3Rvcigp
KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
UmVnRXhwLmlucHV0IGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8
Il9zKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xv
YmFsRGF0YSgpLmlucHV0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBD
b25zdHJ1Y3Rvck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
anNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5n
bG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5tdWx0
aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFs
T2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGds
b2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5sYXN0TWF0Y2ggZ2V0dGVycyBy
ZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFs
RGF0YSgpLmdldEJhY2tyZWYoZ2xvYmFsT2JqZWN0LCAwKSkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldExhc3RQYXJlbihnbG9iYWxP
YmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5sYXN0UGFyZW4g
Z2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVn
RXhwR2xvYmFsRGF0YSgpLmdldExhc3RQYXJlbihnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldExlZnRD
b250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVn
RXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRo
aXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmpl
Y3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJp
Z2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9y
UmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8
UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9i
amVjdCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBH
bG9iYWxEYXRhKCkuZ2V0UmlnaHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgaWYgKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLnJpZ2h0Q29udGV4dCBnZXR0ZXJzIHJlcXVpcmUgUmVn
RXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0
UmlnaHRDb250ZXh0KGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJl
Z0V4cENvbnN0cnVjdG9yKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAg
ICAgICBhdXRvKiBzdHJpbmcgPSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvU3RyaW5nKGdsb2Jh
bE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAg
ICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IGNvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBHbG9iYWxEYXRhKCkuc2V0SW5wdXQoZ2xvYmFsT2JqZWN0LCBzdHJpbmcpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxP
YmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNv
bnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8qIHN0cmluZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7CisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11
bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
aWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAgICAgICBib29sIG11bHRpbGlu
ZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRh
KCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlm
IChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0
b3IoKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVn
RXhwLm11bHRpbGluZSBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlz
fCJfcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGJvb2wgbXVsdGlsaW5lID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZ2xv
YmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHNj
b3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5zZXRN
dWx0aWxpbmUobXVsdGlsaW5lKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogaW5saW5lIFN0cnVj
dHVyZSogZ2V0UmVnRXhwU3RydWN0dXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgbmV3VGFyZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbFByb3RvdHlwZS5jcHAKaW5kZXggOWU4NWE5NmM3YWU4YmE2MWUzOGQ2OTE2MTg2OGVjNDYw
MDg2ZDQ1Yi4uNTE4OTZjNzNiNDRkZDg1NTQzYWVlMWYzOGUzNjBiN2RlMDRmNGExMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCkBA
IC00Nyw3ICs0Nyw3IEBAIGNvbnN0IENsYXNzSW5mbyBTeW1ib2xQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlN5bWJvbCIsICZCYXNlOjpzX2luZm8sICZzeW1ib2xQcm90CiAKIC8qIFNvdXJjZSBmb3Ig
U3ltYm9sUHJvdG90eXBlLmx1dC5oCiBAYmVnaW4gc3ltYm9sUHJvdG90eXBlVGFibGUKLSAgZGVz
Y3JpcHRpb24gICAgICAgc3ltYm9sUHJvdG9HZXR0ZXJEZXNjcmlwdGlvbiAgICBEb250RW51bXxB
Y2Nlc3NvciAwCisgIGRlc2NyaXB0aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRp
b24gICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkgMAogICB0b1N0cmluZyAgICAgICAgICBz
eW1ib2xQcm90b0Z1bmNUb1N0cmluZyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgdmFs
dWVPZiAgICAgICAgICAgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZiAgICAgICAgICBEb250RW51bXxG
dW5jdGlvbiAwCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggODQw
M2UyYzgxYzcyNjgxYzBkNTEwODc5YThiZTk4MGY2ZTFlMGY4Yy4uNjc3YjBlOTM5OTliMzVlMWM5
YmI5YjQ2NmQ4MjFjMmUyMTU3MTIzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cApAQCAtMzg2LDcgKzM4Niw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFw
VHlwZSwgV1RGOjpSdW5Mb29wKiBydW5Mb29wLCBib29sKiBzdWNjZXNzKQogICAgICwgcHJvcGVy
dHlOYW1lcyhudWxscHRyKQogICAgICwgZW1wdHlMaXN0KG5ldyBBcmdMaXN0KQogICAgICwgbWFj
aGluZUNvZGVCeXRlc1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUKG1ha2VVbmlxdWU8U2lt
cGxlU3RhdHM+KCkpCi0gICAgLCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCgqdGhpcykK
ICAgICAsIHN0cmluZ0NhY2hlKCp0aGlzKQogICAgICwgc3ltYm9sSW1wbFRvU3ltYm9sTWFwKCp0
aGlzKQogICAgICwgc3RydWN0dXJlQ2FjaGUoKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAppbmRleCAyN2FhZmMwMzI2NmZkMzdjMjVhYTJhNDMxMjJlYjZhMTNlNjU4Yzk3Li4zYmZi
ZDRlNjA3ZjBiNzU3ZTMyYmI5YjBhNjk1ODA1NjIzMDE5N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKQEAgLTcyMCw3ICs3MjAsNiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAg
IFNtYWxsU3RyaW5ncyBzbWFsbFN0cmluZ3M7CiAgICAgTnVtZXJpY1N0cmluZ3MgbnVtZXJpY1N0
cmluZ3M7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNpbXBsZVN0YXRzPiBtYWNoaW5lQ29kZUJ5dGVz
UGVyQnl0ZWNvZGVXb3JkRm9yQmFzZWxpbmVKSVQ7Ci0gICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxD
dXN0b21HZXR0ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiBj
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcDsKICAgICBXZWFrR0NNYXA8U3RyaW5nSW1wbCos
IEpTU3RyaW5nLCBQdHJIYXNoPFN0cmluZ0ltcGwqPj4gc3RyaW5nQ2FjaGU7CiAgICAgU3Ryb25n
PEpTU3RyaW5nPiBsYXN0Q2FjaGVkU3RyaW5nOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3Bw
CmluZGV4IGUyOTc3Mzk4YjJkN2Q5MzkzZDEwYzhiNjI2N2IxNzc0MjNmZTNhOTAuLjU1OWNlMWM1
NzE1ODMxMDNkZjBhYTk0YWU0MWI2MDgzMTEwMTFjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5
cGUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUluc3Rh
bmNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5JbnN0YW5jZSIsCiAKIC8qIFNv
dXJjZSBmb3IgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90
b3R5cGVUYWJsZVdlYkFzc2VtYmx5SW5zdGFuY2UKLSBleHBvcnRzIHdlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b0Z1bmNFeHBvcnRzIEFjY2Vzc29yIDAKKyBleHBvcnRzIHdlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b0Z1bmNFeHBvcnRzIEFjY2Vzc29yfFJlYWRPbmx5IDAKICBAZW5kCiAgKi8KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4IDdlMjA4YzMxMDFjMjM3MTYzMjI5Y2M1NzkyN2FlYTZi
OGYwYjI1ZTAuLjY5YjcwNzBmNWVmMDc3ODgzNWI3OTRiN2RlN2I1NGM3NjcwZDM1YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eU1lbW9yeVByb3RvdHlwZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdl
YkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1vcnki
LCAmQmEKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0LmgKIEBi
ZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5
TWVtb3J5UHJvdG9GdW5jR3JvdyAgIEZ1bmN0aW9uIDEKLSBidWZmZXIgd2ViQXNzZW1ibHlNZW1v
cnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3IgMAorIGJ1ZmZlciB3ZWJBc3NlbWJseU1lbW9yeVBy
b3RvRnVuY0J1ZmZlciBBY2Nlc3NvcnxSZWFkT25seSAwCiBAZW5kCiAqLwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCmluZGV4IDg2ZjRlNzhmZWE1MjEwNTEwMDY4MTU5N2U0NTZhMTg5OWVjZmJhODEu
LjA5M2FlYTNhYTY0ODRhNDhiZGJhY2JmN2E3MzA4YTZjZDFkZDIwMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5UYWJsZSIsICZCYXNlCiAKIC8q
IFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90
b3R5cGVUYWJsZVdlYkFzc2VtYmx5VGFibGUKLSBsZW5ndGggd2ViQXNzZW1ibHlUYWJsZVByb3Rv
RnVuY0xlbmd0aCBBY2Nlc3NvciAwCisgbGVuZ3RoIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNM
ZW5ndGggQWNjZXNzb3J8UmVhZE9ubHkgMAogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBnZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dl
dCAgICBGdW5jdGlvbiAxCiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAg
RnVuY3Rpb24gMgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCA3YjNmYjVmZjY1NWY2ODRmMjRlMjE3MTZkMTZlNWUzZDU0ODZhOWYyLi44M2Y0
NDQyM2EzMmY5NzFkNjU2OWFmNWQ1MDJkMzYyMzhmMjU2YjdhIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTAxLTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pT
Q10gTGVnYWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29ycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLXNldHRl
ci1yZWFsbS5qczogQWRkZWQuCisgICAgICAgIChsZXQucmVhbG0uY3JlYXRlR2xvYmFsT2JqZWN0
KToKKyAgICAgICAgKGRlc2NyaXB0b3IuY2FsbCk6CisgICAgICAgICogdGVzdDI2Mi9jb25maWcu
eWFtbDoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIxLTAxLTAx
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVt
b3ZlIHVubmVjZXNzYXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5nIHNpbXBsZSBvYmpl
Y3QgcGF0dGVybiBkZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1z
ZXR0ZXItcmVhbG0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA4MWI3OTg2Nzc3ZjZiNzkwOTFiZDA2MzczNDc5
MDdhY2M0N2FkNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1zZXR0
ZXItcmVhbG0uanMKQEAgLTAsMCArMSw5IEBACitsZXQgcmVhbG0gPSBjcmVhdGVHbG9iYWxPYmpl
Y3QoKTsKK3sKKyAgICBsZXQgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IocmVhbG0uUmVnRXhwLCAibXVsdGlsaW5lIik7CisgICAgZGVzY3JpcHRvci5zZXQuY2Fs
bChyZWFsbS5SZWdFeHAsIDQyKTsKK30KK3sKKyAgICBsZXQgZGVzY3JpcHRvciA9IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocmVhbG0uUmVnRXhwLCAiaW5wdXQiKTsKKyAgICBkZXNj
cmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4
IDlhNGM1ZTczMTMyMDhmNjA0NGNlZDFiNzFjMzIzNjMxYTI0YjU0NDYuLjkyOTllN2E1Y2QwZDI4
YjQyNzY1ZGNiOGEzNDMyOWJkNWZlMGRlYWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTE3LDcgKzE3
LDYgQEAgc2tpcDoKICAgICAtIEF0b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2JlaGlu
ZAotICAgIC0gbGVnYWN5LXJlZ2V4cAogCiAgICAgLSBjbGFzcy1tZXRob2RzLXByaXZhdGUKICAg
ICAtIGNsYXNzLXN0YXRpYy1tZXRob2RzLXByaXZhdGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bAppbmRleCA3MGI2MDc2YzA4NjgxZmYxZjlmMTZkNzU3ZDMwODJjNDU2ODgwNjk5Li45MDRkYjY4
NDBiMWViZjFiYWQxY2VhMGEzZjg1ZWVkYmU4YjljMDJhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sCkBAIC01LDYgKzUsMTIgQEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9uL2Ny
ZWF0ZWR5bmZuLWh0bWwtY2xvc2UtY29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9idWls
dC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpzOgog
ICBkZWZhdWx0OiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBh
IHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3RyaWN0
IG1vZGU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFy
YW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5leEIv
YnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWluc3Rh
bmNlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5jb21w
aWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGls
ZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
K3Rlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1zdWJj
bGFzcy1pbnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3Jl
Z2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5
cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJl
Y3QvZnVuYy1ibG9jay1kZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3Jl
YXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9s
YW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1l
YXJseS1lcnItZm9yLWluLmpzOgpAQCAtNjgxLDYgKzY4Nyw5IEBAIHRlc3QvYnVpbHQtaW5zL0Z1
bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50Lmpz
OgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1ldGhv
ZC1vYmplY3QuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2
ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICovIHsg
LyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICov
IH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVu
Y3Rpb24gU3ludGF4OiAiYXN5bmMgZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAvKiBk
ICovIH0iIChhc3luYyBmIC8qIGEgKi8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8gfSkn
Cit0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4tZnVu
Y3Rpb24tb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBO
YXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNvZGVd
XG59IiAoJVJlZ0V4cCUuJCopJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9y
bXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25hdGl2
ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3Rv
dHlwZS90b1N0cmluZy9mdW5jdGlvbi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRlci1s
aXN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5j
dGlvbiBTeW50YXg6ICJmdW5jdGlvbiBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAv
KiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8g
fSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAvKiBi
ICovICggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAv
KiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8g
eyAvKiBuICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8g
TmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8gPSAv
KiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8g
MCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAvKiBh
ICovIGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAv
KiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8g
KSAvKiBtICovIHsgLyogbiAqLyB9KScKQEAgLTc2Niw5ICs3NzUsNiBAQCB0ZXN0L2J1aWx0LWlu
cy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtZnVu
Y3Rpb24tYXJndQogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqtudWxswrssIMKrW29iamVjdCBBcmd1bWVudHNdwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUt
ZnVuY3Rpb24tY2FsbGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqtudWxswrssIMKrZnVuY3Rpb24gZygpIHsnCi10ZXN0L2J1aWx0LWlucy9PYmpl
Y3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhwLWRv
bGxhcjEuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9rZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416929</attachid>
            <date>2021-01-04 02:20:50 -0800</date>
            <delta_ts>2021-01-04 18:20:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210104022049.patch</filename>
            <type>text/plain</type>
            <size>49845</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ4ZmQ1ZGE1NDQ4MGY3ZjA0NTMxMzRhYjgwYWI2MjkyMzJkZjVjLi4wYjdlNDFjOTE5YmZkYmU0
NDRmMWYzNjkyY2M0N2YzZjdkY2I0M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1y
ZWdleHAtbGVnYWN5LWZlYXR1cmVzCisKKyAgICAgICAgKiBjcmVhdGVfaGFzaF90YWJsZToKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVu
dGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dElubGluZVNsb3cpOgorICAgICAgICAoSlNDOjpnZXRD
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlcik6CisgICAgICAgICogcnVu
dGltZS9Mb29rdXAuY3BwOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY0FjY2Vzc29yKToKKyAg
ICAgICAgKEpTQzo6c2V0VXBBbmRDYWxsU3RhdGljU2V0dGVyU2xvdCk6CisgICAgICAgICogcnVu
dGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6cHV0RW50cnkpOgorICAgICAgICAoSlNDOjps
b29rdXBQdXQpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAg
KiBydW50aW1lL1ZNLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgor
CiAyMDIxLTAxLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gUmVtb3ZlIHVubmVjZXNzYXJ5IG1vdiBieXRlY29kZXMgd2hlbiBwZXJmb3JtaW5n
IHNpbXBsZSBvYmplY3QgcGF0dGVybiBkZXN0cnVjdHVyaW5nIHRvIHZhcmlhYmxlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCmluZGV4IGI1YzhkYjcxNTI2YWFiMmYxNGM5
NjRlMzIzNGI1NWU0YTAwMTFmNjQuLjBlYTNmNDQ2NWUxM2RkMGZjNWE5ZGQ4ODRmZGIzN2M5YmQ3
ZjdlY2IgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJs
ZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTk0LDkg
Kzk0LDEyIEBAIHdoaWxlICg8SU4+KSB7CiAgICAgICAgIGlmICgkYXR0ID1+IG0vRnVuY3Rpb24v
KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24iLCAiZnVuY3Rpb24iID0+ICR2YWwsICJwYXJhbXMiID0+IChsZW5ndGgo
JHBhcmFtKSA/ICRwYXJhbSA6ICIiKSwgImludHJpbnNpYyIgPT4gKGxlbmd0aCgkaW50cmluc2lj
KSA/ICRpbnRyaW5zaWMgOiAiTm9JbnRyaW5zaWMiKSB9KTsKICAgICAgICAgICAgICNwcmludGYg
U1RERVJSICJXQVJOSU5HOiBOdW1iZXIgb2YgYXJndW1lbnRzIG1pc3NpbmcgZm9yICRrZXkvJHZh
bFxuIiBpZiAobGVuZ3RoKCRwYXJhbSkgPT0gMCk7Ci0gICAgICAgIH0gZWxzaWYgKCRhdHQgPX4g
bS9BY2Nlc3Nvci8pIHsKKyAgICAgICAgfSBlbHNpZiAoJGF0dCA9fiBtL0FjY2Vzc29yLyAmJiAh
KCRhdHQgPX4gbS9DdXN0b21BY2Nlc3Nvci8pKSB7CiAgICAgICAgICAgICBteSAkZ2V0ID0gJHZh
bDsKICAgICAgICAgICAgIG15ICRwdXQgPSAibnVsbHB0ciI7CisgICAgICAgICAgICBpZiAoISgk
YXR0ID1+IG0vUmVhZE9ubHkvKSkgeworICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpz
Y191Y2ZpcnN0KCR2YWwpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgJGhhc1NldHRlciA9
ICJ0cnVlIjsKICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3NvciIsICJnZXQiID0+ICRnZXQsICJwdXQiID0+ICRwdXQgfSk7CiAg
ICAgICAgIH0gZWxzaWYgKCRhdHQgPX4gbS9DZWxsUHJvcGVydHkvKSB7CkBAIC0xMTAsNyArMTEz
LDcgQEAgd2hpbGUgKDxJTj4pIHsKICAgICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIg
PT4gIlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrIiwgImNiYWNrIiA9PiAkY2Jh
Y2sgfSk7CiAgICAgICAgIH0gZWxzaWYgKGxlbmd0aCgkYXR0KSkgewogICAgICAgICAgICAgbXkg
JGdldCA9ICR2YWw7Ci0gICAgICAgICAgICBteSAkcHV0ID0gIjAiOworICAgICAgICAgICAgbXkg
JHB1dCA9ICJudWxscHRyIjsKICAgICAgICAgICAgIGlmICghKCRhdHQgPX4gbS9SZWFkT25seS8p
KSB7CiAgICAgICAgICAgICAgICAgJHB1dCA9ICJzZXQiIC4ganNjX3VjZmlyc3QoJHZhbCk7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAppbmRleCAwNGNjZGMwNmVlMzM0MmY1ODg2ZWEzOTlh
ZDY0YTFjODNjNGM0ZTBmLi4wY2U1YmJkYzkxNGVjNDBhY2MxNzZkZjdhMGQ2OGRhZDYwMjZjOGY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvclByb3RvdHlwZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEludGxD
b2xsYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5Db2xsYXRvciIsICZCYXNlOjpzX2lu
Zm8KIAogLyogU291cmNlIGZvciBJbnRsQ29sbGF0b3JQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBj
b2xsYXRvclByb3RvdHlwZVRhYmxlCi0gIGNvbXBhcmUgICAgICAgICAgSW50bENvbGxhdG9yUHJv
dG90eXBlR2V0dGVyQ29tcGFyZSAgICAgICAgRG9udEVudW18QWNjZXNzb3IKKyAgY29tcGFyZSAg
ICAgICAgICBJbnRsQ29sbGF0b3JQcm90b3R5cGVHZXR0ZXJDb21wYXJlICAgICAgICBEb250RW51
bXxBY2Nlc3NvcnxSZWFkT25seQogICByZXNvbHZlZE9wdGlvbnMgIEludGxDb2xsYXRvclByb3Rv
dHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMgIERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQKICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCA3MzhjOGM2NGJiMmZiNmI2NGMwMGViNzI2Yzgz
NTZkNWIxY2E1OTY3Li5lMTQwNjY3NTRjZDc4YTk2YTZhM2Q2NTE1ZDdkYjg1ZTVjNTYyMzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgY29uc3QgQ2xhc3NJ
bmZvIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5EYXRlVGlt
ZUZvcm1hdCIsICYKIAogLyogU291cmNlIGZvciBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUu
bHV0LmgKIEBiZWdpbiBkYXRlVGltZUZvcm1hdFByb3RvdHlwZVRhYmxlCi0gIGZvcm1hdCAgICAg
ICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAg
ICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCisgIGZvcm1hdCAgICAgICAgICAgICAgICBJbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAgICAgICAgIERvbnRFbnVtfEFj
Y2Vzc29yfFJlYWRPbmx5CiAgIGZvcm1hdFJhbmdlICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIK
ICAgZm9ybWF0VG9QYXJ0cyAgICAgICAgIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNG
b3JtYXRUb1BhcnRzICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlv
bnMgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCmluZGV4IDFlMWVlYjg2MzM1ZmI2MDk2
NWJhOWMxMDNkNzg2NDk3MjU3YTBiMzMuLjc1NWMzOGUxOWMxMTdkOWNkYTcwNDU3NTczMjJjMDc5
NjBiMGI5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxM
b2NhbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVQcm90b3R5cGUuY3BwCkBAIC01OCwxNiArNTgsMTYgQEAgY29uc3QgQ2xhc3NJbmZv
IEludGxMb2NhbGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuTG9jYWxlIiwgJkJhc2U6OnNf
aW5mbywgJmwKICAgbWF4aW1pemUgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGlt
aXplICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIG1pbmltaXplICAgICAgICAgSW50
bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MAogICB0b1N0cmluZyAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKLSAgYmFzZU5hbWUgICAgICAgICBJbnRsTG9jYWxl
UHJvdG90eXBlR2V0dGVyQmFzZU5hbWUgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjYWxl
bmRhciAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhciAgICAgICAgIERv
bnRFbnVtfEFjY2Vzc29yCi0gIGNhc2VGaXJzdCAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckNhc2VGaXJzdCAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgY29sbGF0aW9uICAgICAg
ICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uICAgICAgICBEb250RW51bXxBY2Nl
c3NvcgotICBob3VyQ3ljbGUgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJIb3VyQ3lj
bGUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIG51bWVyaWMgICAgICAgICAgSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlck51bWVyaWMgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgbnVt
YmVyaW5nU3lzdGVtICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtICBE
b250RW51bXxBY2Nlc3NvcgotICBsYW5ndWFnZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVH
ZXR0ZXJMYW5ndWFnZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIHNjcmlwdCAgICAgICAg
ICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdCAgICAgICAgICAgRG9udEVudW18QWNj
ZXNzb3IKLSAgcmVnaW9uICAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcgorICBiYXNlTmFtZSAgICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5CisgIGNhbGVuZGFyICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFy
ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgY2FzZUZpcnN0ICAgICAgICBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0ICAgICAgICBEb250RW51bXxBY2Nlc3Nv
cnxSZWFkT25seQorICBjb2xsYXRpb24gICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJD
b2xsYXRpb24gICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGhvdXJDeWNsZSAg
ICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSAgICAgICAgRG9udEVudW18
QWNjZXNzb3J8UmVhZE9ubHkKKyAgbnVtZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtZXJpYyAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBudW1i
ZXJpbmdTeXN0ZW0gIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERv
bnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckxhbmd1YWdlICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkK
KyAgc2NyaXB0ICAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAg
ICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICByZWdpb24gICAgICAgICAgIEludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24gICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJl
YWRPbmx5CiBAZW5kCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDJlZTk4MjkzNGI0
MzA0Zjg5OTg5ZmE5ZTIzYWUwNmMwOWNkMGU2YmUuLjI2MDdhZmQyYzk2M2UzMzdmZmNjNTc0Nzkw
ZDY1ZmNhNGI2NTk3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IGNvbnN0IENsYXNzSW5mbyBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJ
bnRsLk51bWJlckZvcm1hdCIsICZCYXNlCiAKIC8qIFNvdXJjZSBmb3IgSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5sdXQuaAogQGJlZ2luIG51bWJlckZvcm1hdFByb3RvdHlwZVRhYmxlCi0gIGZv
cm1hdCAgICAgICAgICAgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAg
ICAgIERvbnRFbnVtfEFjY2Vzc29yCisgIGZvcm1hdCAgICAgICAgICAgSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CiAgIGZvcm1hdFRvUGFydHMgICAgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRU
b1BhcnRzICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgcmVzb2x2ZWRPcHRpb25zICBJbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24g
MAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRh
Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3UHJvdG90eXBlLmNwcAppbmRleCBmNzM0ZjU2Yjg3YjcyZWRjYWEyOWU3OTM4NTAyYjAwMDY2
YzUzZDM4Li5lZDg3NmQ0Y2VmYWE4Y2IzOWJhN2E3NmRlMDlhOTY2ZGI4ZDY1NDljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBl
LmNwcApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgc2V0VWludDMyICAgICAg
ICAgICAgIGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDMyICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAyICBEYXRhVmlld1NldFVpbnQzMgogICBzZXRGbG9hdDMyICAgICAgICAgICAg
ZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDMyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDIgIERhdGFWaWV3U2V0RmxvYXQzMgogICBzZXRGbG9hdDY0ICAgICAgICAgICAgZGF0YVZp
ZXdQcm90b0Z1bmNTZXRGbG9hdDY0ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDIg
IERhdGFWaWV3U2V0RmxvYXQ2NAotICBidWZmZXIgICAgICAgICAgICAgICAgZGF0YVZpZXdQcm90
b0dldHRlckJ1ZmZlciAgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yICAgICAgIDAKLSAgYnl0
ZUxlbmd0aCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoICAgICAgICBE
b250RW51bXxBY2Nlc3NvciAgICAgICAwCi0gIGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmll
d1Byb3RvR2V0dGVyQnl0ZU9mZnNldCAgICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAor
ICBidWZmZXIgICAgICAgICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ1ZmZlciAgICAgICAg
ICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5ICAgICAgIDAKKyAgYnl0ZUxlbmd0aCAgICAg
ICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoICAgICAgICBEb250RW51bXxBY2Nl
c3NvcnxSZWFkT25seSAgICAgICAwCisgIGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkgICAg
ICAgMAogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IGFkNzRjZDYyZTMwMDQ2ZDE2N2FlMzc2YjY4NWMzMjg0M2I3
YmUzMDAuLjQ3MjhkNjEzZjQ3MTAyZmVkNTAyODVkNGI5NGNkOGU3YTgzMzFhYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUw
Myw2ICs1MDMsNyBAQCBKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TQogICAgICwgbV9udW1iZXJUb1N0
cmluZ1dhdGNocG9pbnRTZXQoSXNXYXRjaGVkKQogICAgICwgbV9ydW50aW1lRmxhZ3MoKQogICAg
ICwgbV9zdGFja1RyYWNlTGltaXQoT3B0aW9uczo6ZGVmYXVsdEVycm9yU3RhY2tUcmFjZUxpbWl0
KCkpCisgICAgLCBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKHZtKQogICAgICwgbV9n
bG9iYWxPYmplY3RNZXRob2RUYWJsZShnbG9iYWxPYmplY3RNZXRob2RUYWJsZSA/IGdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIDogJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA0Y2Iw
NTMyNWFhZDZiMzkzM2E4YTIyOWVkYjNjOGU0OWFjNTE4YjZkLi42M2Q2ZGYyZjAxNWY4OTY2MmQ5
ZDY1OTQzMWZkNjQ3ZmQ5MWM1OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTU0MCw2ICs1NDAsOCBAQCBjbGFzcyBKU0dsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBib29sIGlzTWFw
UHJvdG90eXBlU2V0RmFzdEFuZE5vbk9ic2VydmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90
eXBlQWRkRmFzdEFuZE5vbk9ic2VydmFibGUoKTsKIAorICAgIFdlYWtHQ01hcDxzdGQ6OnBhaXI8
Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbj4m
IGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCkgeyByZXR1cm4gbV9jdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbk1hcDsgfQorCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgdXNpbmcgUmVm
ZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgPSBIYXNoTWFwPFJlZlB0cjxVbmlx
dWVkU3RyaW5nSW1wbD4sIFJlZjxXYXRjaHBvaW50U2V0PiwgSWRlbnRpZmllclJlcEhhc2g+Owog
ICAgIFJlZmVyZW5jZWRHbG9iYWxQcm9wZXJ0eVdhdGNocG9pbnRTZXRzIG1fcmVmZXJlbmNlZEds
b2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHM7CkBAIC01NTQsNiArNTU2LDcgQEAgY2xhc3MgSlNH
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUnVu
dGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAgIENvbnNvbGVDbGllbnQqIG1fY29uc29sZUNs
aWVudCB7IG51bGxwdHIgfTsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGlt
aXQ7CisgICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0ZXJTZXR0ZXIqLCBpbnQ+LCBK
U0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
TWFwOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBjb25zdCBKU0dsb2JhbE9iamVjdCogbV9n
bG9iYWxPYmplY3RBdERlYnVnZ2VyRW50cnkgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggODgwODRkZjc3YTViYjgzMDJiM2JmNDky
ZWViMGQxODkxMjI4Yzc0YS4uNjI3MTQ3MGU5ZDIxYWYyY2ZjN2ViMzBkNjM1Y2E3MDBkOTZkMTQ3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtODcz
LDggKzg3MywxMyBAQCBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eQogICAgICAgICB9CiAgICAgICAg
IGlmICghb2JqLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpIHsKICAgICAgICAgICAgIGlm
IChvYmotPmNsYXNzSW5mbyh2bSktPmhhc1N0YXRpY1NldHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVz
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlbnRyeSA9IG9iai0+ZmluZFByb3BlcnR5
SGFzaEVudHJ5KHZtLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIHB1dEVudHJ5KGdsb2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5j
bGFzc0ZvclRoaXMsIGVudHJ5LT52YWx1ZSwgb2JqLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZW50cnkgPSBvYmotPmZpbmRQcm9w
ZXJ0eUhhc2hFbnRyeSh2bSwgcHJvcGVydHlOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlc3VsdCA9IHB1dEVudHJ5KGdsb2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5jbGFzc0Zv
clRoaXMsIGVudHJ5LT52YWx1ZSwgb2JqLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKKyAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IFRyaVN0YXRlOjpJbmRldGVybWlu
YXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA9PSBUcmlTdGF0ZTo6
VHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChvYmotPnR5cGUoKSA9PSBQcm94eU9i
amVjdFR5cGUpIHsKQEAgLTM1NDgsMTAgKzM1NTMsMTAgQEAgc3RhdGljIEpTQ3VzdG9tR2V0dGVy
U2V0dGVyRnVuY3Rpb24qIGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0
dGUKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBrZXkgPSBz
dGQ6Om1ha2VfcGFpcihnZXR0ZXJTZXR0ZXIsIChpbnQpdHlwZSk7Ci0gICAgSlNDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24gPSB2bS5jdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcC5nZXQoa2V5KTsKKyAgICBKU0N1c3RvbUdldHRlclNldHRl
ckZ1bmN0aW9uKiBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IGdsb2JhbE9iamVjdC0+Y3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5nZXQoa2V5KTsKICAgICBpZiAoIWN1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uKSB7CiAgICAgICAgIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
ID0gSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IGdldHRlclNldHRlciwgdHlwZSwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSk7Ci0gICAgICAg
IHZtLmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwLnNldChrZXksIGN1c3RvbUdldHRlclNl
dHRlckZ1bmN0aW9uKTsKKyAgICAgICAgZ2xvYmFsT2JqZWN0LT5jdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbk1hcCgpLnNldChrZXksIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKTsKICAgICB9
CiAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKaW5kZXggZTU3NGNkNDEzMTg2ZDcwOTg3NjkzOGZh
ZDJiYzQ5ZWY1NzUyZTgwMC4uYjYzNWYzNTc3MTEzNjgyMTQ5MGFlZWIyYjY4MWZlNGU3OWU3ZjQw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCkBAIC0zOSw3ICsz
OSwxOCBAQCB2b2lkIHJlaWZ5U3RhdGljQWNjZXNzb3IoVk0mIHZtLCBjb25zdCBIYXNoVGFibGVW
YWx1ZSYgdmFsdWUsIEpTT2JqZWN0JiB0aGlzT2JqZQogICAgICAgICAgICAgZ2V0dGVyID0gSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDAsIGdldHRlck5hbWUsIHZhbHVlLmFj
Y2Vzc29yR2V0dGVyKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIEdldHRlclNldHRlciogYWNj
ZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIG51
bGxwdHIpOworICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBudWxscHRyOworICAgIGlmICh2YWx1ZS5h
Y2Nlc3NvclNldHRlcigpKSB7CisgICAgICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QnVpbHRpbikKKyAgICAgICAgICAgIHNldHRlciA9IEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdmFsdWUuYnVpbHRpbkFjY2Vzc29yU2V0dGVyR2VuZXJhdG9yKCkodm0pLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBzZXR0ZXJO
YW1lID0gdHJ5TWFrZVN0cmluZygic2V0ICJfcywgU3RyaW5nKCpwcm9wZXJ0eU5hbWUucHVibGlj
TmFtZSgpKSk7CisgICAgICAgICAgICBpZiAoIXNldHRlck5hbWUpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgc2V0dGVyID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIDEsIHNldHRlck5hbWUsIHZhbHVlLmFjY2Vzc29yU2V0dGVyKCkpOworICAgICAg
ICB9CisgICAgfQorICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7CiAgICAgdGhpc09iamVjdC5w
dXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogfQogCkBAIC03Myw0ICs4
NCwzNCBAQCBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KFZNJiB2bSwgY29uc3QgQ2xhc3NJ
bmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hUYWJsZQogICAgIHJldHVybiB0cnVlOwogfQogCitU
cmlTdGF0ZSBzZXRVcEFuZENhbGxTdGF0aWNTZXR0ZXJTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hU
YWJsZVZhbHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBB
U1NFUlQoYmFzZU9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKSk7CisgICAgQVNTRVJUKGVudHJ5LT5h
dHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXM7CisgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gYmFzZU9iamVjdC0+Z2V0
RGlyZWN0T2Zmc2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOworCisgICAgaWYgKCFp
c1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAgICAgICAgLy8gSWYgYSBwcm9wZXJ0eSBpcyBldmVy
IGRlbGV0ZWQgZnJvbSBhbiBvYmplY3Qgd2l0aCBhIHN0YXRpYyB0YWJsZSwgdGhlbiB3ZSByZWlm
eQorICAgICAgICAvLyBhbGwgc3RhdGljIGZ1bmN0aW9ucyBhdCB0aGF0IHRpbWUgLSBhZnRlciB0
aGlzIHdlIHNob3VsZG4ndCBiZSByZS1hZGRpbmcgYW55dGhpbmcuCisgICAgICAgIGlmIChiYXNl
T2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpCisgICAgICAgICAgICByZXR1cm4g
VHJpU3RhdGU6OkluZGV0ZXJtaW5hdGU7CisKKyAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2
bSwgY2xhc3NJbmZvLCBwcm9wZXJ0eU5hbWUsICplbnRyeSwgKmJhc2VPYmplY3QpOworCisgICAg
ICAgIG9mZnNldCA9IGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1l
LCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYgKCFpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAg
ICAgICAgICAgIGRhdGFMb2coIlN0YXRpYyBoYXNodGFibGUgaW5pdGlhbGlhdGlvbiBmb3IgIiwg
cHJvcGVydHlOYW1lLCAiIGRpZCBub3QgcHJvZHVjZSBhIHByb3BlcnR5LlxuIik7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gQXQgdGhpcyBwb2ludCwgc3RvcmVkIHZhbHVlIG11c3QgYmUgR2V0dGVyU2V0dGVyIGJl
Y2FzdWUsCisgICAgLy8gMS4gSW4gdGhlIGFib3ZlIHNlcXVlbmNlLCB3ZSByZWlmaWVkIGl0Lgor
ICAgIC8vIDIuIElmIHRoZSB2YWx1ZSBpcyBkZWxldGVkLCB3ZSByZWlmaWVkIGFsbCBmaWVsZHMu
IFNvIGBiYXNlT2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSlgIG11c3QgYmUgdHJ1
ZS4KKyAgICBpZiAoIWJhc2VPYmplY3QtPnN0cnVjdHVyZSh2bSktPmlzVW5jYWNoZWFibGVEaWN0
aW9uYXJ5KCkpCisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlU2V0dGVyKGJhc2VPYmplY3QsIG9m
ZnNldCk7CisgICAgcmV0dXJuIHRyaVN0YXRlKGNhbGxTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBzbG90
LnRoaXNWYWx1ZSgpLCBqc0Nhc3Q8R2V0dGVyU2V0dGVyKj4oYmFzZU9iamVjdC0+Z2V0RGlyZWN0
KG9mZnNldCkpLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSA/IEVDTUFNb2RlOjpzdHJpY3Qo
KSA6IEVDTUFNb2RlOjpzbG9wcHkoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggYTZkMGU3MWFiNThkNmU5M2U4Nzk1
YjU4ODliNjIxZTA1Yzc0YTcwYi4uMGM3ZDI0Nzk1MmQ2MWYzMTYxNWM5MjNiZTljMmE0MTUxODUy
YjU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTIwNCw2ICsy
MDQsNyBAQCBzdHJ1Y3QgSGFzaFRhYmxlIHsKIH07CiAKIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoVk0mLCBjb25zdCBDbGFzc0luZm8qLCBjb25zdCBIYXNo
VGFibGVWYWx1ZSosIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOworSlNfRVhQT1JUX1BSSVZBVEUgVHJpU3RhdGUgc2V0VXBBbmRDYWxsU3RhdGljU2V0
dGVyU2xvdChKU0dsb2JhbE9iamVjdCosIFZNJiwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFz
aFRhYmxlVmFsdWUqLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlTdGF0aWNB
Y2Nlc3NvcihWTSYsIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiwgSlNPYmplY3QmIHRoaXNPYmplY3Qs
IFByb3BlcnR5TmFtZSk7CiAKIGlubGluZSBCdWlsdGluR2VuZXJhdG9yIEhhc2hUYWJsZVZhbHVl
OjpidWlsdGluQWNjZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdApAQCAtMjY2LDcgKzI2Nyw3
IEBAIGlubGluZSBib29sIHJlcGxhY2VTdGF0aWNQcm9wZXJ0eVNsb3QoVk0mIHZtLCBKU09iamVj
dCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lCiAvLyAnYmFzZScgbWVhbnMgdGhlIG9iamVjdCBo
b2xkaW5nIHRoZSBwcm9wZXJ0eSAocG9zc2libHkgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiBvZiB0
aGUgb2JqZWN0IHB1dCB3YXMgY2FsbGVkIG9uKS4KIC8vICd0aGlzVmFsdWUnIGlzIHRoZSBvYmpl
Y3QgdGhhdCBwdXQgaXMgYmVpbmcgYXBwbGllZCB0byAoaW4gdGhlIGNhc2Ugb2YgYSBwcm94eSwg
dGhlIHByb3h5IHRhcmdldCkuCiAvLyAnc2xvdC50aGlzVmFsdWUoKScgaXMgdGhlIG9iamVjdCB0
aGUgcHV0IHdhcyBvcmlnaW5hbGx5IHBlcmZvcm1lZCBvbiAoaW4gdGhlIGNhc2Ugb2YgYSBwcm94
eSwgdGhlIHByb3h5IGl0c2VsZikuCi1pbmxpbmUgYm9vbCBwdXRFbnRyeShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0luZm8qLCBjb25zdCBIYXNoVGFibGVWYWx1ZSog
ZW50cnksIEpTT2JqZWN0KiBiYXNlLCBKU09iamVjdCogdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCitpbmxp
bmUgVHJpU3RhdGUgcHV0RW50cnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBlbnRyeSwgSlNPYmpl
Y3QqIGJhc2UsIEpTT2JqZWN0KiB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBn
ZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI3OCwxMyArMjc5LDE2IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IENsYXNzSW5mbyosIGNvbnN0IEhhc2hUCiAgICAg
ICAgICAgICAvLyBGSVhNRTogdGhpc1ZhbHVlIG1heSBiZSBhbiBvYmplY3Qgd2l0aCBub24tZXh0
ZW5zaWJsZSBzdHJ1Y3R1cmUgd2UgbXVzdCB0aHJvdyBmb3IuCiAgICAgICAgICAgICBpZiAoSlNP
YmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1
ZSkpCiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJu
IFRyaVN0YXRlOjpUcnVlOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdy
aXRlRXJyb3IpOworICAgICAgICByZXR1cm4gdHJpU3RhdGUodHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9y
KSk7CiAgICAgfQogCi0gICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJp
YnV0ZTo6QWNjZXNzb3IpCi0gICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwor
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KSB7CisgICAgICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpKQorICAgICAgICAgICAgcmV0dXJuIHRyaVN0YXRlKHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9kZSgpLCBSZWFkb25seVByb3BlcnR5V3Jp
dGVFcnJvcikpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHNldFVwQW5kQ2Fs
bFN0YXRpY1NldHRlclNsb3QoZ2xvYmFsT2JqZWN0LCB2bSwgY2xhc3NJbmZvLCBlbnRyeSwgYmFz
ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOworICAgIH0KIAogICAgIGlmICghKGVudHJ5
LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKSB7CiAgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksICJET01KSVRBdHRyaWJ1dGUgc3VwcG9ydHMgcmVhZG9u
bHkgYXR0cmlidXRlcyBjdXJyZW50bHkuIik7CkBAIC0yOTgsMTcgKzMwMiwxNyBAQCBpbmxpbmUg
Ym9vbCBwdXRFbnRyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0lu
Zm8qLCBjb25zdCBIYXNoVAogICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21WYWx1ZShiYXNlLCBl
bnRyeS0+cHJvcGVydHlQdXR0ZXIoKSk7CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBjYWxsQ3Vz
dG9tU2V0dGVyKGdsb2JhbE9iamVjdCwgZW50cnktPnByb3BlcnR5UHV0dGVyKCksIGlzQWNjZXNz
b3IsIGJhc2UsIHNsb3QudGhpc1ZhbHVlKCksIHZhbHVlKTsKLSAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBUcmlTdGF0ZTo6RmFsc2UpOwogICAgICAgICBpZiAocmVzdWx0ICE9IFRyaVN0YXRlOjpJbmRl
dGVybWluYXRlKQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA9PSBUcmlTdGF0ZTo6VHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAgICAgLy8gRklYTUU6IHRoaXNWYWx1
ZSBtYXkgYmUgYW4gb2JqZWN0IHdpdGggbm9uLWV4dGVuc2libGUgc3RydWN0dXJlIHdlIG11c3Qg
dGhyb3cgZm9yLgogICAgICAgICBpZiAoSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSkpCiAgICAgICAgICAgICB0aGlzT2JqZWN0LT5w
dXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpUcnVlOwogICAgIH0KIAotICAgIHJldHVybiB0eXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQ
cm9wZXJ0eVdyaXRlRXJyb3IpOworICAgIHJldHVybiB0cmlTdGF0ZSh0eXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRl
RXJyb3IpKTsKIH0KIAogLyoqCkBAIC0zMjMsNyArMzI3LDggQEAgaW5saW5lIGJvb2wgbG9va3Vw
UHV0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEoKICAgICBpZiAoIWVudHJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBwdXRS
ZXN1bHQgPSBwdXRFbnRyeShnbG9iYWxPYmplY3QsIHRhYmxlLmNsYXNzRm9yVGhpcywgZW50cnks
IGJhc2UsIGJhc2UsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIGF1dG8gcmVzdWx0
ID0gcHV0RW50cnkoZ2xvYmFsT2JqZWN0LCB0YWJsZS5jbGFzc0ZvclRoaXMsIGVudHJ5LCBiYXNl
LCBiYXNlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBwdXRSZXN1bHQgPSByZXN1
bHQgPT0gVHJpU3RhdGU6OlRydWU7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0
YTMwOGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi43MWRjY2Q4MDMwY2U3NWE3
MzU4NTQ2OWIyYzBhYTVkNzliMzA2OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOSwyMyArMjksMjMgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4pOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCk7Ci1zdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk7Ci1z
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEp
Owotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIyKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMyk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI1KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0KTsKLXN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0
Y2gpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3Ry
dWN0b3JMZWZ0Q29udGV4dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyOSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1
Y3RvcklucHV0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTU3LDI3ICs1
NywyNyBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogCiAvKiBTb3VyY2UgZm9yIFJlZ0V4cENv
bnN0cnVjdG9yLmx1dC5oCiBAYmVnaW4gcmVnRXhwQ29uc3RydWN0b3JUYWJsZQotICAgIGlucHV0
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIE5vbmUKLSAgICAkXyAg
ICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBEb250RW51bQotICAg
IG11bHRpbGluZSAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIE5vbmUKLSAg
ICAkKiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBEb250RW51
bQotICAgIGxhc3RNYXRjaCAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAgbGFzdFBhcmVu
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQrICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERv
bnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICBsZWZ0Q29udGV4dCAgICAgcmVnRXhwQ29u
c3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJGAgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25s
eXxEb250RW51bQotICAgIHJpZ2h0Q29udGV4dCAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29u
dGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAg
JDEgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQyICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkMyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIzICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDQgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ1ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI2ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDcgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ4
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjggICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgICAkOSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAg
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgaW5wdXQgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQgICAgICAgICAgQWNjZXNzb3J8RG9udEVudW0KKyAgICAkXyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBBY2Nlc3NvcnxEb250RW51bQorICAg
IG11bHRpbGluZSAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIEFjY2Vzc29y
fERvbnRFbnVtCisgICAgJCogICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5l
ICAgICAgQWNjZXNzb3J8RG9udEVudW0KKyAgICBsYXN0TWF0Y2ggICAgICAgcmVnRXhwQ29uc3Ry
dWN0b3JMYXN0TWF0Y2ggICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQmICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIEFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgbGFzdFBhcmVuICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBh
cmVuICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkKyAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51
bQorICAgIGxlZnRDb250ZXh0ICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIEFj
Y2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJGAgICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yTGVmdENvbnRleHQgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICByaWdo
dENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBBY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQorICAgICQnICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dCAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDEgICAgICAgICAgICAg
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVu
dW0KKyAgICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBB
Y2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjMgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDQg
ICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCAgICAgICAgQWNjZXNzb3J8UmVh
ZE9ubHl8RG9udEVudW0KKyAgICAkNSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI1ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ2ICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRF
bnVtCisgICAgJDcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyAgICAgICAg
QWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOCAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI4ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ5
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIEFjY2Vzc29yfFJl
YWRPbmx5fERvbnRFbnVtCiBAZW5kCiAqLwogCkBAIC0xMDEsMTEzICsxMDEsMTMwIEBAIHZvaWQg
UmVnRXhwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgUmVnRXhwUHJvdG90eXBl
KiByZWdFeHBQcm90b3R5cGUsCiB9CiAKIHRlbXBsYXRlPGludCBOPgotaW5saW5lIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoraW5saW5lIEVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmICh0aGlzVmFsdWUg
IT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLiROIGdldHRlcnMgcmVx
dWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJhY2tyZWYoZ2xv
YmFsT2JqZWN0LCBOKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0
eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8MT4oZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
ckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyMywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+KGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXJJbXBsPDQ+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAg
IHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8ND4oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9w
ZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8NT4oZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDc+
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OD4oZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBw
cm9wZXJ0eU5hbWUpOworICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OT4o
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3Rvcigp
KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
UmVnRXhwLmlucHV0IGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8
Il9zKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xv
YmFsRGF0YSgpLmlucHV0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBD
b25zdHJ1Y3Rvck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
anNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5n
bG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5tdWx0
aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFs
T2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGds
b2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5sYXN0TWF0Y2ggZ2V0dGVycyBy
ZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFs
RGF0YSgpLmdldEJhY2tyZWYoZ2xvYmFsT2JqZWN0LCAwKSkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldExhc3RQYXJlbihnbG9iYWxP
YmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5sYXN0UGFyZW4g
Z2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVn
RXhwR2xvYmFsRGF0YSgpLmdldExhc3RQYXJlbihnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldExlZnRD
b250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVn
RXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRo
aXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmpl
Y3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJp
Z2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9y
UmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8
UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9i
amVjdCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBH
bG9iYWxEYXRhKCkuZ2V0UmlnaHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgaWYgKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkgIT0gZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLnJpZ2h0Q29udGV4dCBnZXR0ZXJzIHJlcXVpcmUgUmVn
RXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0
UmlnaHRDb250ZXh0KGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJl
Z0V4cENvbnN0cnVjdG9yKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkgewotICAg
ICAgICBhdXRvKiBzdHJpbmcgPSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvU3RyaW5nKGdsb2Jh
bE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAg
ICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IGNvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBHbG9iYWxEYXRhKCkuc2V0SW5wdXQoZ2xvYmFsT2JqZWN0LCBzdHJpbmcpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChjYWxsRnJh
bWUtPnRoaXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4
cC5pbnB1dCBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7
CisgICAgYXV0byogc3RyaW5nID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1N0cmluZyhnbG9i
YWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgc2Nv
cGUucmVsZWFzZSgpOworICAgIGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldElu
cHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0UmVnRXhwQ29u
c3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWljQ2FzdDxSZWdFeHBDb25z
dHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpIHsKLSAgICAgICAgYm9v
bCBtdWx0aWxpbmUgPSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvQm9vbGVhbihnbG9iYWxPYmpl
Y3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICBz
Y29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBj
b25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5tdWx0aWxpbmUg
c2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIGJv
b2wgbXVsdGlsaW5lID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHNjb3BlLnJl
bGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5zZXRNdWx0aWxp
bmUobXVsdGlsaW5lKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1Y3R1cmUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAppbmRleCA5ZTg1YTk2YzdhZThi
YTYxZTM4ZDY5MTYxODY4ZWM0NjAwODZkNDViLi41MTg5NmM3M2I0NGRkODU1NDNhZWUxZjM4ZTM2
MGI3ZGUwNGY0YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2xQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbFByb3RvdHlwZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJv
bFByb3RvdHlwZTo6c19pbmZvID0geyAiU3ltYm9sIiwgJkJhc2U6OnNfaW5mbywgJnN5bWJvbFBy
b3QKIAogLyogU291cmNlIGZvciBTeW1ib2xQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBzeW1ib2xQ
cm90b3R5cGVUYWJsZQotICBkZXNjcmlwdGlvbiAgICAgICBzeW1ib2xQcm90b0dldHRlckRlc2Ny
aXB0aW9uICAgIERvbnRFbnVtfEFjY2Vzc29yIDAKKyAgZGVzY3JpcHRpb24gICAgICAgc3ltYm9s
UHJvdG9HZXR0ZXJEZXNjcmlwdGlvbiAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seSAwCiAg
IHRvU3RyaW5nICAgICAgICAgIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMAogICB2YWx1ZU9mICAgICAgICAgICBzeW1ib2xQcm90b0Z1bmNWYWx1ZU9m
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcAppbmRleCA4NDAzZTJjODFjNzI2ODFjMGQ1MTA4NzlhOGJlOTgwZjZlMWUwZjhj
Li42NzdiMGU5Mzk5OWIzNWUxYzliYjliNDY2ZDgyMWMyZTIxNTcxMjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0zODYsNyArMzg2LDYgQEAgVk06OlZNKFZNVHlwZSB2
bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlLCBXVEY6OlJ1bkxvb3AqIHJ1bkxvb3AsIGJvb2wqIHN1
Y2Nlc3MpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG51bGxwdHIpCiAgICAgLCBlbXB0eUxpc3QobmV3
IEFyZ0xpc3QpCiAgICAgLCBtYWNoaW5lQ29kZUJ5dGVzUGVyQnl0ZWNvZGVXb3JkRm9yQmFzZWxp
bmVKSVQobWFrZVVuaXF1ZTxTaW1wbGVTdGF0cz4oKSkKLSAgICAsIGN1c3RvbUdldHRlclNldHRl
ckZ1bmN0aW9uTWFwKCp0aGlzKQogICAgICwgc3RyaW5nQ2FjaGUoKnRoaXMpCiAgICAgLCBzeW1i
b2xJbXBsVG9TeW1ib2xNYXAoKnRoaXMpCiAgICAgLCBzdHJ1Y3R1cmVDYWNoZSgqdGhpcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDI3YWFmYzAzMjY2ZmQzN2MyNWFhMmE0MzEy
MmViNmExM2U2NThjOTcuLjNiZmJkNGU2MDdmMGI3NTdlMzJiYjliMGE2OTU4MDU2MjMwMTk3ZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNzIwLDcgKzcyMCw2IEBAIGNsYXNz
IFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtl
ZExpc3ROb2RlPFZNPiB7CiAgICAgU21hbGxTdHJpbmdzIHNtYWxsU3RyaW5nczsKICAgICBOdW1l
cmljU3RyaW5ncyBudW1lcmljU3RyaW5nczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2ltcGxlU3Rh
dHM+IG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVDsKLSAgICBX
ZWFrR0NNYXA8c3RkOjpwYWlyPEN1c3RvbUdldHRlclNldHRlciosIGludD4sIEpTQ3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb24+IGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwOwogICAgIFdl
YWtHQ01hcDxTdHJpbmdJbXBsKiwgSlNTdHJpbmcsIFB0ckhhc2g8U3RyaW5nSW1wbCo+PiBzdHJp
bmdDYWNoZTsKICAgICBTdHJvbmc8SlNTdHJpbmc+IGxhc3RDYWNoZWRTdHJpbmc7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZS5jcHAKaW5kZXggZTI5NzczOThiMmQ3ZDkzOTNkMTBjOGI2MjY3YjE3
NzQyM2ZlM2E5MC4uNTU5Y2UxYzU3MTU4MzEwM2RmMGFhOTRhZTQxYjYwODMxMTAxMWM1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5j
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgY29uc3QgQ2xhc3NJ
bmZvIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5
Lkluc3RhbmNlIiwKIAogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
Lmx1dC5oCiAgQGJlZ2luIHByb3RvdHlwZVRhYmxlV2ViQXNzZW1ibHlJbnN0YW5jZQotIGV4cG9y
dHMgd2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvRnVuY0V4cG9ydHMgQWNjZXNzb3IgMAorIGV4cG9y
dHMgd2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvRnVuY0V4cG9ydHMgQWNjZXNzb3J8UmVhZE9ubHkg
MAogIEBlbmQKICAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKaW5kZXggN2UyMDhjMzEwMWMy
MzcxNjMyMjljYzU3OTI3YWVhNmI4ZjBiMjVlMC4uNjliNzA3MGY1ZWYwNzc4ODM1Yjc5NGI3ZGU3
YjU0Yzc2NzBkMzVhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcApAQCAtNTIsNyArNTIsNyBA
QCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IldlYkFzc2VtYmx5Lk1lbW9yeSIsICZCYQogLyogU291cmNlIGZvciBXZWJBc3NlbWJseU1lbW9y
eVByb3RvdHlwZS5sdXQuaAogQGJlZ2luIHByb3RvdHlwZVRhYmxlV2ViQXNzZW1ibHlNZW1vcnkK
ICBncm93ICAgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93ICAgRnVuY3Rpb24gMQotIGJ1
ZmZlciB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciBBY2Nlc3NvciAwCisgYnVmZmVy
IHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yfFJlYWRPbmx5IDAKIEBl
bmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5VGFibGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKaW5kZXggODZmNGU3OGZlYTUyMTA1MTAwNjgx
NTk3ZTQ1NmExODk5ZWNmYmE4MS4uMDkzYWVhM2FhNjQ4NGE0OGJkYmFjYmY3YTczMDhhNmNkMWRk
MjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgY29uc3QgQ2xh
c3NJbmZvIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5
LlRhYmxlIiwgJkJhc2UKIAogLyogU291cmNlIGZvciBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
Lmx1dC5oCiAgQGJlZ2luIHByb3RvdHlwZVRhYmxlV2ViQXNzZW1ibHlUYWJsZQotIGxlbmd0aCB3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoIEFjY2Vzc29yIDAKKyBsZW5ndGggd2ViQXNz
ZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCBBY2Nlc3NvcnxSZWFkT25seSAwCiAgZ3JvdyAgIHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93ICAgRnVuY3Rpb24gMQogIGdldCAgICB3ZWJBc3Nl
bWJseVRhYmxlUHJvdG9GdW5jR2V0ICAgIEZ1bmN0aW9uIDEKICBzZXQgICAgd2ViQXNzZW1ibHlU
YWJsZVByb3RvRnVuY1NldCAgICBGdW5jdGlvbiAyCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdiM2ZiNWZmNjU1ZjY4NGYyNGUyMTcxNmQx
NmU1ZTNkNTQ4NmE5ZjIuLjgzZjQ0NDIzYTMyZjk3MWQ2NTY5YWY1ZDUwMmQzNjIzOGYyNTZiN2Eg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBMZWdhY3kgUmVnRXhwIGZpZWxkcyBzaG91bGQgYmUgYWNj
ZXNzb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjAyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpzOiBBZGRlZC4KKyAgICAgICAgKGxldC5yZWFs
bS5jcmVhdGVHbG9iYWxPYmplY3QpOgorICAgICAgICAoZGVzY3JpcHRvci5jYWxsKToKKyAgICAg
ICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWw6CisKIDIwMjEtMDEtMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBSZW1vdmUgdW5uZWNlc3NhcnkgbW92IGJ5dGVjb2RlcyB3aGVuIHBl
cmZvcm1pbmcgc2ltcGxlIG9iamVjdCBwYXR0ZXJuIGRlc3RydWN0dXJpbmcgdG8gdmFyaWFibGVz
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDgxYjc5ODY3
NzdmNmI3OTA5MWJkMDYzNzM0NzkwN2FjYzQ3YWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpAQCAtMCwwICsxLDkgQEAKK2xldCByZWFs
bSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOworeworICAgIGxldCBkZXNjcmlwdG9yID0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdFeHAsICJtdWx0aWxpbmUiKTsKKyAg
ICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOworfQoreworICAgIGxldCBk
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdFeHAs
ICJpbnB1dCIpOworICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwocmVhbG0uUmVnRXhwLCA0Mik7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3Qy
NjIvY29uZmlnLnlhbWwKaW5kZXggOWE0YzVlNzMxMzIwOGY2MDQ0Y2VkMWI3MWMzMjM2MzFhMjRi
NTQ0Ni4uOTI5OWU3YTVjZDBkMjhiNDI3NjVkY2I4YTM0MzI5YmQ1ZmUwZGVhZSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25m
aWcueWFtbApAQCAtMTcsNyArMTcsNiBAQCBza2lwOgogICAgIC0gQXRvbWljcy53YWl0QXN5bmMK
ICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ5MzEKICAg
ICAtIHJlZ2V4cC1sb29rYmVoaW5kCi0gICAgLSBsZWdhY3ktcmVnZXhwCiAKICAgICAtIGNsYXNz
LW1ldGhvZHMtcHJpdmF0ZQogICAgIC0gY2xhc3Mtc3RhdGljLW1ldGhvZHMtcHJpdmF0ZQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDcwYjYwNzZjMDg2ODFmZjFmOWYxNmQ3NTdkMzA4
MmM0NTY4ODA2OTkuLjkwNGRiNjg0MGIxZWJmMWJhZDFjZWEwYTNmODVlZWRiZThiOWMwMmEgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTUsNiArNSwxMiBAQCB0ZXN0L2FubmV4Qi9i
dWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1jbG9zZS1jb21tZW50LXBhcmFtcy5q
czoKIHRlc3QvYW5uZXhCL2J1aWx0LWlucy9GdW5jdGlvbi9jcmVhdGVkeW5mbi1odG1sLW9wZW4t
Y29tbWVudC1wYXJhbXMuanM6CiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1l
dGVyIGxpc3QuIgogICBzdHJpY3QgbW9kZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2Vu
ICd9Jy4gRXhwZWN0ZWQgYSBwYXJhbWV0ZXIgcGF0dGVybiBvciBhICcpJyBpbiBwYXJhbWV0ZXIg
bGlzdC4iCit0ZXN0L2FubmV4Qi9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9jb21waWxlL3Ro
aXMtY3Jvc3MtcmVhbG0taW5zdGFuY2UuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBS
ZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuY2FsbChvdGhlclJlYWxtX3JlZ2V4cClgIHRocm93cyBU
eXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgUmVn
RXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlw
ZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvY29tcGlsZS90aGlzLXN1YmNsYXNzLWluc3RhbmNlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBzdWJjbGFzc19yZWdleHAu
Y29tcGlsZSgpYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9hbm5leEIvbGFu
Z3VhZ2UvZXZhbC1jb2RlL2RpcmVjdC9mdW5jLWJsb2NrLWRlY2wtZXZhbC1mdW5jLXNraXAtZWFy
bHktZXJyLWJsb2NrLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBBbiBpbml0aWFsaXpl
ZCBiaW5kaW5nIGlzIG5vdCBjcmVhdGVkIHByaW9yIHRvIGV2YWx1YXRpb24gRXhwZWN0ZWQgYSBS
ZWZlcmVuY2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1k
ZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1mb3ItaW4uanM6CkBAIC02ODEsNiArNjg3LDkg
QEAgdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1ldGhv
ZC1jbGFzcy1zdGF0ZW1lbnQuanM6CiB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUv
dG9TdHJpbmcvYXN5bmMtbWV0aG9kLW9iamVjdC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiYXN5bmMgZnVuY3Rpb24gZigg
LyogYiAqLyApIC8qIGMgKi8geyAvKiBkICovIH0iIChhc3luYyBmIC8qIGEgKi8gKCAvKiBiICov
ICkgLyogYyAqLyB7IC8qIGQgKi8gfSknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBD
b25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJhc3luYyBmdW5jdGlvbiBmKCAvKiBi
ICovICkgLyogYyAqLyB7IC8qIGQgKi8gfSIgKGFzeW5jIGYgLyogYSAqLyAoIC8qIGIgKi8gKSAv
KiBjICovIHsgLyogZCAqLyB9KScKK3Rlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90
b1N0cmluZy9idWlsdC1pbi1mdW5jdGlvbi1vYmplY3QuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uICQqKCkg
e1xuICAgIFtuYXRpdmUgY29kZV1cbn0iICglUmVnRXhwJS4kKiknCisgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlv
biAkKigpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IiAoJVJlZ0V4cCUuJCopJwogdGVzdC9idWls
dC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2Z1bmN0aW9uLWRlY2xhcmF0aW9uLW5v
bi1zaW1wbGUtcGFyYW1ldGVyLWxpc3QuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENv
bmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uIGYoIC8qIGMgKi8gYSAv
KiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8g
PSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAqLyB9IiAoZnVu
Y3Rpb24gLyogYSAqLyBmIC8qIGIgKi8gKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAv
KiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8g
fSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiBmKCAv
KiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAvKiBmICovICwgLyogZyAqLyB7IC8qIGggKi8g
YiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8gfSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4g
Ki8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAvKiBiICovICggLyogYyAqLyBhIC8qIGQgKi8gPSAv
KiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8g
MCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0pJwpAQCAtNzY2LDkgKzc3
NSw2IEBAIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkv
Y29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1hcmd1CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq251bGzCuywgwqtbb2JqZWN0IEFyZ3VtZW50c13CuykgdG8g
YmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVy
dHkvY29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1jYWxsZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq251bGzCuywgwqtmdW5jdGlvbiBnKCkgeycK
LXRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lz
dGVudC12YWx1ZS1yZWdleHAtZG9sbGFyMS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKreMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKreMK7KSB0byBiZSB0
cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3Bl
cnR5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBh
bmQgW2xlbmd0aCwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416968</attachid>
            <date>2021-01-04 18:20:45 -0800</date>
            <delta_ts>2021-01-05 00:50:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210104182045.patch</filename>
            <type>text/plain</type>
            <size>80459</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MDUyYzAyMmU3MGQxZGY1NGY5Y2QwZDk3YTgxMDkxYTg4ODIzYTk3Li5hNjc4N2RlZDFmMDMzMGUw
OGYzNDE1NzJjM2FlY2MzOTAwNDc0N2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuIFRoaXMgY2hhbmdlIG1ha2VzIHRoZXNlIEN1c3RvbVZhbHVlIGZpZWxkcyB0byBhY2Nl
c3NvcnMuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwKKworICAgICAgICAxLiBXZSB1c2UgQWNj
ZXNzb3IgYXR0cmlidXRlcyB0byBtYWtlIGdldHRlciAvIHNldHRlciBmb3IgdGhlc2UgZmllbGRz
LiBUaGlzIHBhdGNoIGFkZHMgc2V0dGVyIHN1cHBvcnQgZm9yIEFjY2Vzc29yIExVVCBmaWVsZC4K
KyAgICAgICAgMi4gV2UgdXBkYXRlIGVudW1lcmFibGUgZXRjLiBvZiB0aGVzZSBmaWVsZHMuCisg
ICAgICAgIDMuIFdlIHVwZGF0ZSB0ZXN0cyB0aGF0IGFyZSB1c2luZyBSZWdFeHAgdG8gdGVzdCBj
dXN0b20gdmFsdWVzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJv
cG9zYWwtcmVnZXhwLWxlZ2FjeS1mZWF0dXJlcworCisgICAgICAgICogY3JlYXRlX2hhc2hfdGFi
bGU6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBy
dW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0RhdGFWaWV3UHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjdXN0
b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KToKKyAgICAgICAgKEpT
Qzo6Z2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIpOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6cmVpZnlTdGF0aWNBY2Nlc3Nv
cik6CisgICAgICAgIChKU0M6OnNldFVwQW5kQ2FsbFN0YXRpY1NldHRlclNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAg
KEpTQzo6bG9va3VwUHV0KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKToKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFByb3RvdHlwZS5j
cHA6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6Cisg
ICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHA6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHA6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcDoKKwogMjAyMS0wMS0wNCAgSmVm
ZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlzaWJs
ZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9j
cmVhdGVfaGFzaF90YWJsZQppbmRleCBiNWM4ZGI3MTUyNmFhYjJmMTRjOTY0ZTMyMzRiNTVlNGEw
MDExZjY0Li4wZWEzZjQ0NjVlMTNkZDBmYzVhOWRkODg0ZmRiMzdjOWJkN2Y3ZWNiIDEwMDc1NQot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCkBAIC05NCw5ICs5NCwxMiBAQCB3aGls
ZSAoPElOPikgewogICAgICAgICBpZiAoJGF0dCA9fiBtL0Z1bmN0aW9uLykgewogICAgICAgICAg
ICAgcHVzaChAdmFsdWVzLCB7ICJ0eXBlIiA9PiAiUHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
IiwgImZ1bmN0aW9uIiA9PiAkdmFsLCAicGFyYW1zIiA9PiAobGVuZ3RoKCRwYXJhbSkgPyAkcGFy
YW0gOiAiIiksICJpbnRyaW5zaWMiID0+IChsZW5ndGgoJGludHJpbnNpYykgPyAkaW50cmluc2lj
IDogIk5vSW50cmluc2ljIikgfSk7CiAgICAgICAgICAgICAjcHJpbnRmIFNUREVSUiAiV0FSTklO
RzogTnVtYmVyIG9mIGFyZ3VtZW50cyBtaXNzaW5nIGZvciAka2V5LyR2YWxcbiIgaWYgKGxlbmd0
aCgkcGFyYW0pID09IDApOwotICAgICAgICB9IGVsc2lmICgkYXR0ID1+IG0vQWNjZXNzb3IvKSB7
CisgICAgICAgIH0gZWxzaWYgKCRhdHQgPX4gbS9BY2Nlc3Nvci8gJiYgISgkYXR0ID1+IG0vQ3Vz
dG9tQWNjZXNzb3IvKSkgewogICAgICAgICAgICAgbXkgJGdldCA9ICR2YWw7CiAgICAgICAgICAg
ICBteSAkcHV0ID0gIm51bGxwdHIiOworICAgICAgICAgICAgaWYgKCEoJGF0dCA9fiBtL1JlYWRP
bmx5LykpIHsKKyAgICAgICAgICAgICAgICAkcHV0ID0gInNldCIgLiBqc2NfdWNmaXJzdCgkdmFs
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAidHJ1ZSI7CiAgICAg
ICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNj
ZXNzb3IiLCAiZ2V0IiA9PiAkZ2V0LCAicHV0IiA9PiAkcHV0IH0pOwogICAgICAgICB9IGVsc2lm
ICgkYXR0ID1+IG0vQ2VsbFByb3BlcnR5LykgewpAQCAtMTEwLDcgKzExMyw3IEBAIHdoaWxlICg8
SU4+KSB7CiAgICAgICAgICAgICBwdXNoKEB2YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0
dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayIsICJjYmFjayIgPT4gJGNiYWNrIH0pOwogICAgICAg
ICB9IGVsc2lmIChsZW5ndGgoJGF0dCkpIHsKICAgICAgICAgICAgIG15ICRnZXQgPSAkdmFsOwot
ICAgICAgICAgICAgbXkgJHB1dCA9ICIwIjsKKyAgICAgICAgICAgIG15ICRwdXQgPSAibnVsbHB0
ciI7CiAgICAgICAgICAgICBpZiAoISgkYXR0ID1+IG0vUmVhZE9ubHkvKSkgewogICAgICAgICAg
ICAgICAgICRwdXQgPSAic2V0IiAuIGpzY191Y2ZpcnN0KCR2YWwpOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclBy
b3RvdHlwZS5jcHAKaW5kZXggMDRjY2RjMDZlZTMzNDJmNTg4NmVhMzk5YWQ2NGExYzgzYzRjNGUw
Zi4uMGNlNWJiZGM5MTRlYzQwYWNjMTc2ZGY3YTBkNjhkYWQ2MDI2YzhmNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUu
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIkludGwuQ29sbGF0b3IiLCAmQmFzZTo6c19pbmZvCiAKIC8qIFNvdXJj
ZSBmb3IgSW50bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oCiBAYmVnaW4gY29sbGF0b3JQcm90b3R5
cGVUYWJsZQotICBjb21wYXJlICAgICAgICAgIEludGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNv
bXBhcmUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCisgIGNvbXBhcmUgICAgICAgICAgSW50bENv
bGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVh
ZE9ubHkKICAgcmVzb2x2ZWRPcHRpb25zICBJbnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2
ZWRPcHRpb25zICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCiAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3Rv
dHlwZS5jcHAKaW5kZXggNzM4YzhjNjRiYjJmYjZiNjRjMDBlYjcyNmM4MzU2ZDViMWNhNTk2Ny4u
ZTE0MDY2NzU0Y2Q3OGE5NmE2YTNkNjUxNWQ3ZGI4NWU1YzU2MjMwOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQ
cm90b3R5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGNvbnN0IENsYXNzSW5mbyBJbnRsRGF0ZVRp
bWVGb3JtYXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkludGwuRGF0ZVRpbWVGb3JtYXQiLCAmCiAK
IC8qIFNvdXJjZSBmb3IgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmx1dC5oCiBAYmVnaW4g
ZGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVUYWJsZQotICBmb3JtYXQgICAgICAgICAgICAgICAgSW50
bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0ICAgICAgICAgICAgICBEb250RW51
bXxBY2Nlc3NvcgorICBmb3JtYXQgICAgICAgICAgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlR2V0dGVyRm9ybWF0ICAgICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25s
eQogICBmb3JtYXRSYW5nZSAgICAgICAgICAgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVu
Y0Zvcm1hdFJhbmdlICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAyCiAgIGZvcm1hdFRvUGFy
dHMgICAgICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgcmVzb2x2ZWRPcHRpb25zICAgICAgIEludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bExvY2FsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TG9jYWxlUHJvdG90eXBlLmNwcAppbmRleCAxZTFlZWI4NjMzNWZiNjA5NjViYTljMTAzZDc4NjQ5
NzI1N2EwYjMzLi43NTVjMzhlMTljMTE3ZDljZGE3MDQ1NzU3MzIyYzA3OTYwYjBiOTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90
eXBlLmNwcApAQCAtNTgsMTYgKzU4LDE2IEBAIGNvbnN0IENsYXNzSW5mbyBJbnRsTG9jYWxlUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLkxvY2FsZSIsICZCYXNlOjpzX2luZm8sICZsCiAgIG1h
eGltaXplICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNYXhpbWl6ZSAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gMAogICBtaW5pbWl6ZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5
cGVGdW5jTWluaW1pemUgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgdG9TdHJpbmcg
ICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY1RvU3RyaW5nICAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAwCi0gIGJhc2VOYW1lICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckJhc2VOYW1lICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgY2FsZW5kYXIgICAgICAgICBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIgICAgICAgICBEb250RW51bXxBY2Nlc3Nv
cgotICBjYXNlRmlyc3QgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3Qg
ICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGNvbGxhdGlvbiAgICAgICAgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckNvbGxhdGlvbiAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgaG91ckN5
Y2xlICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlICAgICAgICBEb250
RW51bXxBY2Nlc3NvcgotICBudW1lcmljICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0
ZXJOdW1lcmljICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIG51bWJlcmluZ1N5c3RlbSAg
SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSAgRG9udEVudW18QWNjZXNz
b3IKLSAgbGFuZ3VhZ2UgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTGFuZ3VhZ2Ug
ICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBzY3JpcHQgICAgICAgICAgIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJTY3JpcHQgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIHJlZ2lv
biAgICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclJlZ2lvbiAgICAgICAgICAgRG9u
dEVudW18QWNjZXNzb3IKKyAgYmFzZU5hbWUgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyQmFzZU5hbWUgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBjYWxlbmRh
ciAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhciAgICAgICAgIERvbnRF
bnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGNhc2VGaXJzdCAgICAgICAgSW50bExvY2FsZVByb3Rv
dHlwZUdldHRlckNhc2VGaXJzdCAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAg
Y29sbGF0aW9uICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uICAgICAg
ICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBob3VyQ3ljbGUgICAgICAgIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJIb3VyQ3ljbGUgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRP
bmx5CisgIG51bWVyaWMgICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWVyaWMg
ICAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgbnVtYmVyaW5nU3lzdGVtICBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtICBEb250RW51bXxBY2Nlc3Nv
cnxSZWFkT25seQorICBsYW5ndWFnZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJM
YW5ndWFnZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIHNjcmlwdCAgICAg
ICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdCAgICAgICAgICAgRG9udEVudW18
QWNjZXNzb3J8UmVhZE9ubHkKKyAgcmVnaW9uICAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyUmVnaW9uICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQogQGVuZAog
Ki8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAyZWU5ODI5MzRiNDMwNGY4OTk4OWZhOWUy
M2FlMDZjMDljZDBlNmJlLi4yNjA3YWZkMmM5NjNlMzM3ZmZjYzU3NDc5MGQ2NWZjYTRiNjU5NzQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtNDksNyArNDksNyBAQCBjb25zdCBDbGFzc0lu
Zm8gSW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5OdW1iZXJGb3Jt
YXQiLCAmQmFzZQogCiAvKiBTb3VyY2UgZm9yIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUubHV0
LmgKIEBiZWdpbiBudW1iZXJGb3JtYXRQcm90b3R5cGVUYWJsZQotICBmb3JtYXQgICAgICAgICAg
IEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAgICBEb250RW51bXxB
Y2Nlc3NvcgorICBmb3JtYXQgICAgICAgICAgIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0
ZXJGb3JtYXQgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQogICBmb3JtYXRUb1Bh
cnRzICAgIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyAgICBEb250
RW51bXxGdW5jdGlvbiAxCiAgIHJlc29sdmVkT3B0aW9ucyAgSW50bE51bWJlckZvcm1hdFByb3Rv
dHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMgIERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5j
cHAKaW5kZXggZjczNGY1NmI4N2I3MmVkY2FhMjllNzkzODUwMmIwMDA2NmM1M2QzOC4uZWQ4NzZk
NGNlZmFhOGNiMzliYTdhNzZkZTA5YTk2NmRiOGQ2NTQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKQEAgLTUzLDkg
KzUzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgIHNldFVpbnQzMiAgICAgICAgICAgICBkYXRhVmll
d1Byb3RvRnVuY1NldFVpbnQzMiAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMiAg
RGF0YVZpZXdTZXRVaW50MzIKICAgc2V0RmxvYXQzMiAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9G
dW5jU2V0RmxvYXQzMiAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAyICBEYXRhVmll
d1NldEZsb2F0MzIKICAgc2V0RmxvYXQ2NCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9GdW5jU2V0
RmxvYXQ2NCAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAyICBEYXRhVmlld1NldEZs
b2F0NjQKLSAgYnVmZmVyICAgICAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIg
ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvciAgICAgICAwCi0gIGJ5dGVMZW5ndGggICAgICAg
ICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aCAgICAgICAgRG9udEVudW18QWNjZXNz
b3IgICAgICAgMAotICBieXRlT2Zmc2V0ICAgICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ5
dGVPZmZzZXQgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yICAgICAgIDAKKyAgYnVmZmVyICAgICAg
ICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIgICAgICAgICAgICBEb250RW51bXxB
Y2Nlc3NvcnxSZWFkT25seSAgICAgICAwCisgIGJ5dGVMZW5ndGggICAgICAgICAgICBkYXRhVmll
d1Byb3RvR2V0dGVyQnl0ZUxlbmd0aCAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkg
ICAgICAgMAorICBieXRlT2Zmc2V0ICAgICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVP
ZmZzZXQgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5ICAgICAgIDAKIEBlbmQKICov
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAppbmRleCBhZDc0Y2Q2MmUzMDA0NmQxNjdhZTM3NmI2ODVjMzI4NDNiN2JlMzAwLi40NzI4ZDYx
M2Y0NzEwMmZlZDUwMjg1ZDRiOTRjZDhlN2E4MzMxYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC01MDMsNiArNTAzLDcgQEAg
SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IEdsb2JhbE9iamVjdE0KICAgICAsIG1fbnVtYmVyVG9TdHJpbmdXYXRjaHBvaW50
U2V0KElzV2F0Y2hlZCkKICAgICAsIG1fcnVudGltZUZsYWdzKCkKICAgICAsIG1fc3RhY2tUcmFj
ZUxpbWl0KE9wdGlvbnM6OmRlZmF1bHRFcnJvclN0YWNrVHJhY2VMaW1pdCgpKQorICAgICwgbV9j
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCh2bSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUoZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPyBnbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSA6ICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNGNiMDUzMjVhYWQ2YjM5MzNh
OGEyMjllZGIzYzhlNDlhYzUxOGI2ZC4uNjNkNmRmMmYwMTVmODk2NjJkOWQ2NTk0MzFmZDY0N2Zk
OTFjNTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC01NDAsNiArNTQwLDggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMg
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgYm9vbCBpc01hcFByb3RvdHlwZVNldEZh
c3RBbmROb25PYnNlcnZhYmxlKCk7CiAgICAgYm9vbCBpc1NldFByb3RvdHlwZUFkZEZhc3RBbmRO
b25PYnNlcnZhYmxlKCk7CiAKKyAgICBXZWFrR0NNYXA8c3RkOjpwYWlyPEN1c3RvbUdldHRlclNl
dHRlciosIGludD4sIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24+JiBjdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbk1hcCgpIHsgcmV0dXJuIG1fY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25N
YXA7IH0KKwogI2lmIEVOQUJMRShERkdfSklUKQogICAgIHVzaW5nIFJlZmVyZW5jZWRHbG9iYWxQ
cm9wZXJ0eVdhdGNocG9pbnRTZXRzID0gSGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+
LCBSZWY8V2F0Y2hwb2ludFNldD4sIElkZW50aWZpZXJSZXBIYXNoPjsKICAgICBSZWZlcmVuY2Vk
R2xvYmFsUHJvcGVydHlXYXRjaHBvaW50U2V0cyBtX3JlZmVyZW5jZWRHbG9iYWxQcm9wZXJ0eVdh
dGNocG9pbnRTZXRzOwpAQCAtNTU0LDYgKzU1Niw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDog
cHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIFJ1bnRpbWVGbGFncyBtX3J1
bnRpbWVGbGFnczsKICAgICBDb25zb2xlQ2xpZW50KiBtX2NvbnNvbGVDbGllbnQgeyBudWxscHRy
IH07CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fc3RhY2tUcmFjZUxpbWl0OworICAgIFdlYWtH
Q01hcDxzdGQ6OnBhaXI8Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50PiwgSlNDdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbj4gbV9jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcDsKIAogI2lmIEFT
U0VSVF9FTkFCTEVECiAgICAgY29uc3QgSlNHbG9iYWxPYmplY3QqIG1fZ2xvYmFsT2JqZWN0QXRE
ZWJ1Z2dlckVudHJ5IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCmluZGV4IDg4MDg0ZGY3N2E1YmI4MzAyYjNiZjQ5MmVlYjBkMTg5MTIyOGM3
NGEuLjYyNzE0NzBlOWQyMWFmMmNmYzdlYjMwZDYzNWNhNzAwZDk2ZDE0N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTg3Myw4ICs4NzMsMTMgQEAg
Ym9vbCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHkKICAgICAgICAgfQogICAgICAgICBpZiAoIW9iai0+c3Rh
dGljUHJvcGVydGllc1JlaWZpZWQodm0pKSB7CiAgICAgICAgICAgICBpZiAob2JqLT5jbGFzc0lu
Zm8odm0pLT5oYXNTdGF0aWNTZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcygpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGF1dG8gZW50cnkgPSBvYmotPmZpbmRQcm9wZXJ0eUhhc2hFbnRyeSh2bSwg
cHJvcGVydHlOYW1lKSkKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBwdXRFbnRyeShnbG9iYWxPYmplY3QsIGVudHJ5LT50YWJsZS0+Y2xhc3NGb3JUaGlzLCBl
bnRyeS0+dmFsdWUsIG9iaiwgdGhpcywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGVudHJ5ID0gb2JqLT5maW5kUHJvcGVydHlIYXNoRW50cnko
dm0sIHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSBw
dXRFbnRyeShnbG9iYWxPYmplY3QsIGVudHJ5LT50YWJsZS0+Y2xhc3NGb3JUaGlzLCBlbnRyeS0+
dmFsdWUsIG9iaiwgdGhpcywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgPT0gVHJpU3RhdGU6OlRydWU7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICBpZiAob2JqLT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSB7CkBA
IC0zNTQ4LDEwICszNTUzLDEwIEBAIHN0YXRpYyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
KiBnZXRDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIo
Z2V0dGVyU2V0dGVyLCAoaW50KXR5cGUpOwotICAgIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rp
b24qIGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uID0gdm0uY3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb25NYXAuZ2V0KGtleSk7CisgICAgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiogY3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24gPSBnbG9iYWxPYmplY3QtPmN1c3RvbUdldHRlclNldHRl
ckZ1bmN0aW9uTWFwKCkuZ2V0KGtleSk7CiAgICAgaWYgKCFjdXN0b21HZXR0ZXJTZXR0ZXJGdW5j
dGlvbikgewogICAgICAgICBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IEpTQ3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXJTZXR0ZXIs
IHR5cGUsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCkpOwotICAgICAgICB2bS5jdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbk1hcC5zZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7
CisgICAgICAgIGdsb2JhbE9iamVjdC0+Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5z
ZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBj
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuY3BwCmluZGV4IGU1NzRjZDQxMzE4NmQ3MDk4NzY5MzhmYWQyYmM0OWVmNTc1MmU4
MDAuLmI2MzVmMzU3NzExMzY4MjE0OTBhZWViMmI2ODFmZTRlNzllN2Y0MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcApAQCAtMzksNyArMzksMTggQEAgdm9pZCBy
ZWlmeVN0YXRpY0FjY2Vzc29yKFZNJiB2bSwgY29uc3QgSGFzaFRhYmxlVmFsdWUmIHZhbHVlLCBK
U09iamVjdCYgdGhpc09iamUKICAgICAgICAgICAgIGdldHRlciA9IEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCBnZXR0ZXJOYW1lLCB2YWx1ZS5hY2Nlc3NvckdldHRlcigp
KTsKICAgICAgICAgfQogICAgIH0KLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBudWxscHRyKTsKKyAgICBK
U09iamVjdCogc2V0dGVyID0gbnVsbHB0cjsKKyAgICBpZiAodmFsdWUuYWNjZXNzb3JTZXR0ZXIo
KSkgeworICAgICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6
OkJ1aWx0aW4pCisgICAgICAgICAgICBzZXR0ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHZh
bHVlLmJ1aWx0aW5BY2Nlc3NvclNldHRlckdlbmVyYXRvcigpKHZtKSwgZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgc2V0dGVyTmFtZSA9IHRyeU1ha2VT
dHJpbmcoInNldCAiX3MsIFN0cmluZygqcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSkpOworICAg
ICAgICAgICAgaWYgKCFzZXR0ZXJOYW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHNldHRlciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCBz
ZXR0ZXJOYW1lLCB2YWx1ZS5hY2Nlc3NvclNldHRlcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwogICAgIHRoaXNPYmplY3QucHV0RGlyZWN0Tm9uSW5k
ZXhBY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlc0ZvclN0cnVj
dHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKIH0KIApAQCAtNzMsNCArODQsMzQgQEAgYm9vbCBz
ZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
LCBjb25zdCBIYXNoVGFibGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorVHJpU3RhdGUgc2V0VXBB
bmRDYWxsU3RhdGljU2V0dGVyU2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYg
dm0sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBIYXNoVGFibGVWYWx1ZSogZW50
cnksIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgQVNTRVJUKGJhc2VPYmpl
Y3QtPmdsb2JhbE9iamVjdCh2bSkpOworICAgIEFTU0VSVChlbnRyeS0+YXR0cmlidXRlcygpICYg
UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwor
ICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldCh2
bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKKworICAgIGlmICghaXNWYWxpZE9mZnNldChv
ZmZzZXQpKSB7CisgICAgICAgIC8vIElmIGEgcHJvcGVydHkgaXMgZXZlciBkZWxldGVkIGZyb20g
YW4gb2JqZWN0IHdpdGggYSBzdGF0aWMgdGFibGUsIHRoZW4gd2UgcmVpZnkKKyAgICAgICAgLy8g
YWxsIHN0YXRpYyBmdW5jdGlvbnMgYXQgdGhhdCB0aW1lIC0gYWZ0ZXIgdGhpcyB3ZSBzaG91bGRu
J3QgYmUgcmUtYWRkaW5nIGFueXRoaW5nLgorICAgICAgICBpZiAoYmFzZU9iamVjdC0+c3RhdGlj
UHJvcGVydGllc1JlaWZpZWQodm0pKQorICAgICAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpJbmRl
dGVybWluYXRlOworCisgICAgICAgIHJlaWZ5U3RhdGljUHJvcGVydHkodm0sIGNsYXNzSW5mbywg
cHJvcGVydHlOYW1lLCAqZW50cnksICpiYXNlT2JqZWN0KTsKKworICAgICAgICBvZmZzZXQgPSBi
YXNlT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7
CisgICAgICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKSB7CisgICAgICAgICAgICBkYXRh
TG9nKCJTdGF0aWMgaGFzaHRhYmxlIGluaXRpYWxpYXRpb24gZm9yICIsIHByb3BlcnR5TmFtZSwg
IiBkaWQgbm90IHByb2R1Y2UgYSBwcm9wZXJ0eS5cbiIpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEF0IHRoaXMg
cG9pbnQsIHN0b3JlZCB2YWx1ZSBtdXN0IGJlIEdldHRlclNldHRlciBiZWNhc3VlLAorICAgIC8v
IDEuIEluIHRoZSBhYm92ZSBzZXF1ZW5jZSwgd2UgcmVpZmllZCBpdC4KKyAgICAvLyAyLiBJZiB0
aGUgdmFsdWUgaXMgZGVsZXRlZCwgd2UgcmVpZmllZCBhbGwgZmllbGRzLiBTbyBgYmFzZU9iamVj
dC0+c3RhdGljUHJvcGVydGllc1JlaWZpZWQodm0pYCBtdXN0IGJlIHRydWUuCisgICAgaWYgKCFi
YXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpKQorICAg
ICAgICBzbG90LnNldENhY2hlYWJsZVNldHRlcihiYXNlT2JqZWN0LCBvZmZzZXQpOworICAgIHJl
dHVybiB0cmlTdGF0ZShjYWxsU2V0dGVyKGdsb2JhbE9iamVjdCwgc2xvdC50aGlzVmFsdWUoKSwg
anNDYXN0PEdldHRlclNldHRlcio+KGJhc2VPYmplY3QtPmdldERpcmVjdChvZmZzZXQpKSwgdmFs
dWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkgPyBFQ01BTW9kZTo6c3RyaWN0KCkgOiBFQ01BTW9kZTo6
c2xvcHB5KCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5oCmluZGV4IGE2ZDBlNzFhYjU4ZDZlOTNlODc5NWI1ODg5YjYyMWUwNWM3
NGE3MGIuLmJmZmVlM2JmNjFmZTVmN2QyYmQwNjZmYjcyNTUxNmFjMjI0NTJhMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0yMDQsNiArMjA0LDcgQEAgc3RydWN0
IEhhc2hUYWJsZSB7CiB9OwogCiBKU19FWFBPUlRfUFJJVkFURSBib29sIHNldFVwU3RhdGljRnVu
Y3Rpb25TbG90KFZNJiwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFzaFRhYmxlVmFsdWUqLCBK
U09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKK0pTX0VY
UE9SVF9QUklWQVRFIFRyaVN0YXRlIHNldFVwQW5kQ2FsbFN0YXRpY1NldHRlclNsb3QoSlNHbG9i
YWxPYmplY3QqLCBWTSYsIGNvbnN0IENsYXNzSW5mbyosIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiwg
SlNPYmplY3QqIHRoaXNPYmplY3QsIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CiBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlaWZ5U3RhdGljQWNjZXNzb3IoVk0mLCBj
b25zdCBIYXNoVGFibGVWYWx1ZSYsIEpTT2JqZWN0JiB0aGlzT2JqZWN0LCBQcm9wZXJ0eU5hbWUp
OwogCiBpbmxpbmUgQnVpbHRpbkdlbmVyYXRvciBIYXNoVGFibGVWYWx1ZTo6YnVpbHRpbkFjY2Vz
c29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3QKQEAgLTI2Niw3ICsyNjcsNyBAQCBpbmxpbmUgYm9v
bCByZXBsYWNlU3RhdGljUHJvcGVydHlTbG90KFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3Qs
IFByb3BlcnR5TmFtZQogLy8gJ2Jhc2UnIG1lYW5zIHRoZSBvYmplY3QgaG9sZGluZyB0aGUgcHJv
cGVydHkgKHBvc3NpYmx5IGluIHRoZSBwcm90b3R5cGUgY2hhaW4gb2YgdGhlIG9iamVjdCBwdXQg
d2FzIGNhbGxlZCBvbikuCiAvLyAndGhpc1ZhbHVlJyBpcyB0aGUgb2JqZWN0IHRoYXQgcHV0IGlz
IGJlaW5nIGFwcGxpZWQgdG8gKGluIHRoZSBjYXNlIG9mIGEgcHJveHksIHRoZSBwcm94eSB0YXJn
ZXQpLgogLy8gJ3Nsb3QudGhpc1ZhbHVlKCknIGlzIHRoZSBvYmplY3QgdGhlIHB1dCB3YXMgb3Jp
Z2luYWxseSBwZXJmb3JtZWQgb24gKGluIHRoZSBjYXNlIG9mIGEgcHJveHksIHRoZSBwcm94eSBp
dHNlbGYpLgotaW5saW5lIGJvb2wgcHV0RW50cnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVj
dCogYmFzZSwgSlNPYmplY3QqIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoraW5saW5lIFRyaVN0YXRlIHB1
dEVudHJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvLCBjb25zdCBIYXNoVGFibGVWYWx1ZSogZW50cnksIEpTT2JqZWN0KiBiYXNlLCBKU09i
amVjdCogdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzgs
MTMgKzI3OSwxNiBAQCBpbmxpbmUgYm9vbCBwdXRFbnRyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBDbGFzc0luZm8qLCBjb25zdCBIYXNoVAogICAgICAgICAgICAgLy8gRklY
TUU6IHRoaXNWYWx1ZSBtYXkgYmUgYW4gb2JqZWN0IHdpdGggbm9uLWV4dGVuc2libGUgc3RydWN0
dXJlIHdlIG11c3QgdGhyb3cgZm9yLgogICAgICAgICAgICAgaWYgKEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpKQogICAgICAgICAg
ICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBUcmlTdGF0ZTo6VHJ1
ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKKyAg
ICAgICAgcmV0dXJuIHRyaVN0YXRlKHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBzbG90
LmlzU3RyaWN0TW9kZSgpLCBSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpOwogICAgIH0KIAot
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KQotICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNT
dHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKKyAgICBpZiAoZW50cnkt
PmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgeworICAgICAgICBp
ZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkKKyAg
ICAgICAgICAgIHJldHVybiB0cmlTdGF0ZSh0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
c2xvdC5pc1N0cmljdE1vZGUoKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpKTsKKyAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBzZXRVcEFuZENhbGxTdGF0aWNTZXR0ZXJTbG90
KGdsb2JhbE9iamVjdCwgdm0sIGNsYXNzSW5mbywgZW50cnksIGJhc2UsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpKTsKKyAgICB9CiAKICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSkgewogICAgICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRy
aWJ1dGUpLCAiRE9NSklUQXR0cmlidXRlIHN1cHBvcnRzIHJlYWRvbmx5IGF0dHJpYnV0ZXMgY3Vy
cmVudGx5LiIpOwpAQCAtMjk4LDE3ICszMDIsMTcgQEAgaW5saW5lIGJvb2wgcHV0RW50cnkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFzaFQK
ICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tVmFsdWUoYmFzZSwgZW50cnktPnByb3BlcnR5UHV0
dGVyKCkpOwogCiAgICAgICAgIGF1dG8gcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihnbG9iYWxP
YmplY3QsIGVudHJ5LT5wcm9wZXJ0eVB1dHRlcigpLCBpc0FjY2Vzc29yLCBiYXNlLCBzbG90LnRo
aXNWYWx1ZSgpLCB2YWx1ZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZh
bHNlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgVHJpU3RhdGU6OkZhbHNl
KTsKICAgICAgICAgaWYgKHJlc3VsdCAhPSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZSkKLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQgPT0gVHJpU3RhdGU6OlRydWU7CisgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogCiAgICAgICAgIC8vIEZJWE1FOiB0aGlzVmFsdWUgbWF5IGJlIGFuIG9iamVj
dCB3aXRoIG5vbi1leHRlbnNpYmxlIHN0cnVjdHVyZSB3ZSBtdXN0IHRocm93IGZvci4KICAgICAg
ICAgaWYgKEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZt
LCB0aGlzVmFsdWUpKQogICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBU
cmlTdGF0ZTo6VHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9y
KTsKKyAgICByZXR1cm4gdHJpU3RhdGUodHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNs
b3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKSk7CiB9CiAKIC8q
KgpAQCAtMzIzLDcgKzMyNyw4IEBAIGlubGluZSBib29sIGxvb2t1cFB1dChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKCiAgICAgaWYgKCFl
bnRyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHV0UmVzdWx0ID0gcHV0RW50cnko
Z2xvYmFsT2JqZWN0LCB0YWJsZS5jbGFzc0ZvclRoaXMsIGVudHJ5LCBiYXNlLCBiYXNlLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBhdXRvIHJlc3VsdCA9IHB1dEVudHJ5KGdsb2Jh
bE9iamVjdCwgdGFibGUuY2xhc3NGb3JUaGlzLCBlbnRyeSwgYmFzZSwgYmFzZSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgcHV0UmVzdWx0ID0gcmVzdWx0ID09IFRyaVN0YXRlOjpU
cnVlOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNGEzMDhiZDlkYWU0NWJjODY2
NGM5Y2ZlODRhYTlkNjc5NWRmMTllMS4uNzFkY2NkODAzMGNlNzVhNzM1ODU0NjliMmMwYWE1ZDc5
YjMwNjllYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcApAQCAtMjksMjMgKzI5LDIzIEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvcklucHV0
KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yTGFzdE1hdGNoKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENv
bnN0cnVjdG9yTGFzdFBhcmVuKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIocmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQpOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKTsKLXN0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik7Ci1zdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMpOwotc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KTsKLXN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk7
Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjYpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI3KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyOCk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjkpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0UmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvcklucHV0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JSaWdo
dENvbnRleHQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIxKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyMik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGlu
ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkBAIC01NywyNyArNTcsMjcgQEAgY29uc3QgQ2xh
c3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5h
bEZ1bmN0aW9uOjpzX2kKIAogLyogU291cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaAog
QGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVnRXhw
Q29uc3RydWN0b3JJbnB1dCAgICAgICAgICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAgICAg
IHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0Y2gg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRPbmx5
Ci0gICAgJCYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5
fERvbnRFbnVtCi0gICAgbGVmdENvbnRleHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRl
eHQgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICBy
aWdodENvbnRleHQgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gICAgJCcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250
ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgICQxICAgICAgICAgICAgICBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAk
MiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjQgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5
Ci0gICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjcgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI4ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDkg
ICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQorICAgIGlucHV0ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAg
ICAgIEFjY2Vzc29yfERvbnRFbnVtCisgICAgJF8gICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVj
dG9ySW5wdXQgICAgICAgICAgQWNjZXNzb3J8RG9udEVudW0KKyAgICBtdWx0aWxpbmUgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBBY2Nlc3NvcnxEb250RW51bQorICAgICQq
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIEFjY2Vzc29yfERv
bnRFbnVtCisgICAgbGFzdE1hdGNoICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAg
ICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkJiAgICAgICAgICAgICAgcmVnRXhw
Q29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAg
IGxhc3RQYXJlbiAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEFjY2Vzc29y
fFJlYWRPbmx5fERvbnRFbnVtCisgICAgJCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9y
TGFzdFBhcmVuICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICBsZWZ0Q29udGV4
dCAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBBY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0
ICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4
cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAg
ICAkJyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBBY2Nlc3Nv
cnxSZWFkT25seXxEb250RW51bQorICAgICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjEgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDIgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICAkMyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzICAg
ICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ0ICAgICAgICAgICAgICByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisg
ICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgQWNjZXNz
b3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI2ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ3ICAgICAg
ICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5
fERvbnRFbnVtCisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAg
ICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkOSAgICAgICAgICAgICAgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI5ICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQog
QGVuZAogKi8KIApAQCAtMTAxLDExMyArMTAxLDEzMCBAQCB2b2lkIFJlZ0V4cENvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBl
LAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4KLWlubGluZSBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK2lubGluZSBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFs
dWUpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBD
b25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAodGhpc1ZhbHVlICE9IGdsb2JhbE9iamVjdC0+
cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC4kTiBnZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxP
YmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2JhbE9iamVjdCwgTikpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
SW1wbDwxPihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFySW1wbDwyPihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlO
YW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwzPihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJ
bXBsPDM+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXJJbXBsPDQ+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUo
KSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFySW1wbDw1PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICBy
ZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI2LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFySW1wbDw2PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVy
dHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXJJbXBsPDc+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4Pihn
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFs
dWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFySW1wbDw5PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29u
c3RydWN0b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0
PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxP
YmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBnZXR0
ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5pbnB1dCgp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25z
dHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9i
YWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubXVsdGlsaW5lIGdldHRlcnMgcmVx
dWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5tdWx0
aWxpbmUoKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JMYXN0TWF0Y2gsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJl
Z0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmpl
Y3QoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xv
YmFsRGF0YSgpLmdldEJhY2tyZWYoZ2xvYmFsT2JqZWN0LCAwKSk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4
cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJSZWdFeHAubGFzdE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29u
c3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVm
KGdsb2JhbE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3Qt
PnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubGFzdFBhcmVuIGdldHRlcnMgcmVxdWlyZSBS
ZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5n
ZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmpl
Y3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
ICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5sZWZ0Q29udGV4dCBn
ZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBHbG9iYWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9y
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJp
Z2h0Q29udGV4dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3Io
KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBh
cyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChnbG9i
YWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25z
dHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWljQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpIHsKLSAgICAgICAgYXV0byogc3RyaW5n
ID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICBzY29wZS5yZWxlYXNl
KCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+
Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgp
LnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAh
PSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAuaW5wdXQgc2V0dGVycyBy
ZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIGF1dG8qIHN0cmlu
ZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAg
ICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3Qs
IHN0cmluZyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5l
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBpZiAoYXV0
byBjb25zdHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPih2bSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKSB7Ci0gICAgICAgIGJvb2wgbXVsdGlsaW5lID0gSlNW
YWx1ZTo6ZGVjb2RlKHZhbHVlKS50b0Jvb2xlYW4oZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgc2NvcGUucmVsZWFzZSgpOwot
ICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5zZXRN
dWx0aWxpbmUobXVsdGlsaW5lKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWlyZSBS
ZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBib29sIG11bHRpbGluZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgZ2xv
YmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAogaW5saW5lIFN0
cnVjdHVyZSogZ2V0UmVnRXhwU3RydWN0dXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgbmV3VGFyZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbFByb3RvdHlwZS5jcHAKaW5kZXggOWU4NWE5NmM3YWU4YmE2MWUzOGQ2OTE2MTg2OGVj
NDYwMDg2ZDQ1Yi4uNTE4OTZjNzNiNDRkZDg1NTQzYWVlMWYzOGUzNjBiN2RlMDRmNGExMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIGNvbnN0IENsYXNzSW5mbyBTeW1ib2xQcm90b3R5cGU6OnNfaW5m
byA9IHsgIlN5bWJvbCIsICZCYXNlOjpzX2luZm8sICZzeW1ib2xQcm90CiAKIC8qIFNvdXJjZSBm
b3IgU3ltYm9sUHJvdG90eXBlLmx1dC5oCiBAYmVnaW4gc3ltYm9sUHJvdG90eXBlVGFibGUKLSAg
ZGVzY3JpcHRpb24gICAgICAgc3ltYm9sUHJvdG9HZXR0ZXJEZXNjcmlwdGlvbiAgICBEb250RW51
bXxBY2Nlc3NvciAwCisgIGRlc2NyaXB0aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3Jp
cHRpb24gICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkgMAogICB0b1N0cmluZyAgICAgICAg
ICBzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAg
dmFsdWVPZiAgICAgICAgICAgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZiAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAwCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXgg
ODQwM2UyYzgxYzcyNjgxYzBkNTEwODc5YThiZTk4MGY2ZTFlMGY4Yy4uNjc3YjBlOTM5OTliMzVl
MWM5YmI5YjQ2NmQ4MjFjMmUyMTU3MTIzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcApAQCAtMzg2LDcgKzM4Niw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBo
ZWFwVHlwZSwgV1RGOjpSdW5Mb29wKiBydW5Mb29wLCBib29sKiBzdWNjZXNzKQogICAgICwgcHJv
cGVydHlOYW1lcyhudWxscHRyKQogICAgICwgZW1wdHlMaXN0KG5ldyBBcmdMaXN0KQogICAgICwg
bWFjaGluZUNvZGVCeXRlc1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUKG1ha2VVbmlxdWU8
U2ltcGxlU3RhdHM+KCkpCi0gICAgLCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCgqdGhp
cykKICAgICAsIHN0cmluZ0NhY2hlKCp0aGlzKQogICAgICwgc3ltYm9sSW1wbFRvU3ltYm9sTWFw
KCp0aGlzKQogICAgICwgc3RydWN0dXJlQ2FjaGUoKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaAppbmRleCAyN2FhZmMwMzI2NmZkMzdjMjVhYTJhNDMxMjJlYjZhMTNlNjU4Yzk3Li4z
YmZiZDRlNjA3ZjBiNzU3ZTMyYmI5YjBhNjk1ODA1NjIzMDE5N2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgKQEAgLTcyMCw3ICs3MjAsNiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewog
ICAgIFNtYWxsU3RyaW5ncyBzbWFsbFN0cmluZ3M7CiAgICAgTnVtZXJpY1N0cmluZ3MgbnVtZXJp
Y1N0cmluZ3M7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNpbXBsZVN0YXRzPiBtYWNoaW5lQ29kZUJ5
dGVzUGVyQnl0ZWNvZGVXb3JkRm9yQmFzZWxpbmVKSVQ7Ci0gICAgV2Vha0dDTWFwPHN0ZDo6cGFp
cjxDdXN0b21HZXR0ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
PiBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcDsKICAgICBXZWFrR0NNYXA8U3RyaW5nSW1w
bCosIEpTU3RyaW5nLCBQdHJIYXNoPFN0cmluZ0ltcGwqPj4gc3RyaW5nQ2FjaGU7CiAgICAgU3Ry
b25nPEpTU3RyaW5nPiBsYXN0Q2FjaGVkU3RyaW5nOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggY2RkMzhiZmY3MDI2ZGQ0NzkwY2YwOTk2MTkyMzli
ODZjY2FkYzNjMS4uYmJjZTc1ZmRjNzQyNmViOGExN2M0NmQ0Njk1OTU0YzBiY2U4MDYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMTUyNSwxMCAr
MTUyNSwxMiBAQCBjbGFzcyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3RvbUdl
dEFjY2Vzc29yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZh
bHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZhbHVlMik7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRBY2Nlc3Nvckdsb2Jh
bE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRWYWx1
ZUdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21T
ZXRBY2Nlc3Nvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRW
YWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZTIp
Owogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIp
OwogCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3IsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKQEAgLTE1
NDQsNiArMTU0NiwxOCBAQCBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSgogICAgIHJldHVybiBzbG90
VmFsdWU7CiB9CiAKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRWYWx1ZTIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFBy
b3BlcnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVChKU1Zh
bHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI+
KGdsb2JhbE9iamVjdC0+dm0oKSkpOworCisgICAgYXV0byogdGFyZ2V0ID0ganNDYXN0PEpTVGVz
dEN1c3RvbUdldHRlclNldHRlcio+KEpTVmFsdWU6OmRlY29kZShzbG90VmFsdWUpKTsKKyAgICBK
U1ZhbHVlIHZhbHVlID0gdGFyZ2V0LT5nZXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJ2YWx1ZTIiKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1ZSA/IHZh
bHVlIDoganNVbmRlZmluZWQoKSk7Cit9CisKIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjdXN0
b21HZXRBY2Nlc3Nvckdsb2JhbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoZ2xvYmFsT2JqZWN0KTsKQEAgLTE1ODgsNiArMTYwMiwxOCBAQCBKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSgogICAgIHJldHVybiB0cnVlOwogfQogCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoY3VzdG9tU2V0VmFsdWUyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgc2xvdFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQoreworICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1
ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkp
KTsKKyAgICBhdXRvKiB0YXJnZXQgPSBqc0Nhc3Q8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyKj4o
SlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRh
cmdldCk7CisgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJ2YWx1ZTIiKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOworICAgIHJldHVy
biB0cnVlOworfQorCiBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0
ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwpAQCAtMTYxMiw2ICsxNjM4LDggQEAgdm9pZCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0
ZXI6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29y
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tVmFsdWUiKSwKICAgICAgICAg
Q3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGN1c3RvbUdldFZhbHVlLCBjdXN0b21TZXRW
YWx1ZSksIDApOworICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAiY3VzdG9tVmFsdWUyIiksCisgICAgICAgIEN1c3RvbUdldHRlclNldHRl
cjo6Y3JlYXRlKHZtLCBjdXN0b21HZXRWYWx1ZTIsIGN1c3RvbVNldFZhbHVlMiksIDApOwogICAg
IHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
Y3VzdG9tQWNjZXNzb3IiKSwKICAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0s
IGN1c3RvbUdldEFjY2Vzc29yLCBjdXN0b21TZXRBY2Nlc3NvciksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKTsKICAgICBwdXREaXJlY3RD
dXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbVZhbHVl
R2xvYmFsT2JqZWN0IiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCmluZGV4IGUyOTc3Mzk4
YjJkN2Q5MzkzZDEwYzhiNjI2N2IxNzc0MjNmZTNhOTAuLjU1OWNlMWM1NzE1ODMxMDNkZjBhYTk0
YWU0MWI2MDgzMTEwMTFjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCkBAIC00Niw3
ICs0Niw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlOjpz
X2luZm8gPSB7ICJXZWJBc3NlbWJseS5JbnN0YW5jZSIsCiAKIC8qIFNvdXJjZSBmb3IgV2ViQXNz
ZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFz
c2VtYmx5SW5zdGFuY2UKLSBleHBvcnRzIHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBv
cnRzIEFjY2Vzc29yIDAKKyBleHBvcnRzIHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBv
cnRzIEFjY2Vzc29yfFJlYWRPbmx5IDAKICBAZW5kCiAgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUu
Y3BwCmluZGV4IDdlMjA4YzMxMDFjMjM3MTYzMjI5Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjY5Yjcw
NzBmNWVmMDc3ODgzNWI3OTRiN2RlN2I1NGM3NjcwZDM1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1vcnkiLCAmQmEKIC8qIFNvdXJj
ZSBmb3IgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBwcm90b3R5cGVU
YWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
R3JvdyAgIEZ1bmN0aW9uIDEKLSBidWZmZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZm
ZXIgQWNjZXNzb3IgMAorIGJ1ZmZlciB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciBB
Y2Nlc3NvcnxSZWFkT25seSAwCiBAZW5kCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCmluZGV4
IDg2ZjRlNzhmZWE1MjEwNTEwMDY4MTU5N2U0NTZhMTg5OWVjZmJhODEuLjA5M2FlYTNhYTY0ODRh
NDhiZGJhY2JmN2E3MzA4YTZjZDFkZDIwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCkBAIC01
MSw3ICs1MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlOjpz
X2luZm8gPSB7ICJXZWJBc3NlbWJseS5UYWJsZSIsICZCYXNlCiAKIC8qIFNvdXJjZSBmb3IgV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFz
c2VtYmx5VGFibGUKLSBsZW5ndGggd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCBBY2Nl
c3NvciAwCisgbGVuZ3RoIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGggQWNjZXNzb3J8
UmVhZE9ubHkgMAogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdyAgIEZ1bmN0
aW9uIDEKICBnZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCAgICBGdW5jdGlvbiAx
CiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAgRnVuY3Rpb24gMgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDNhMjUyMmE4Y2ViYzY3NDE5ZmVlYzU4MDgwZDBlMDRjMzdhZTUxZDAuLmVhM2Q4MDgwNGQ2
OGU1ZjI1YTFiZmRkMmM1OGIxYWE1NTI2NWQ1MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MS0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtK
U0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvZG9tL2dldE93blByb3Bl
cnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3JlZ2V4cC1jYWNo
aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRtbDoK
KyAgICAgICAgKiBqcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzOgorICAg
ICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiBqcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUt
Y2hhaW4uaHRtbDogUmVtb3ZlZC4KKwogMjAyMS0wMS0wNCAgQWxpY2lhIEJveWEgR2FyY8OtYSAg
PGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bTVNFXSBVbnJldmlld2Vk
IG1pY3JvLWdhcmRlbmluZyAocmVtb3ZlIHNwdXJpb3VzIC1leHBlY3RlZC50eHQgcmVmZXJlbmNl
cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3Jp
cHRvci1leHBlY3RlZC50eHQKaW5kZXggOTljYjkzMzcxODk3ZTRlNDU0ZTIzNTY5NDY4N2RiZDIx
YjM5ZDk4OS4uODY5N2U3NjFkMTVlN2QwNjVlYTBhY2VhMjQ5NmJmODhkMDE2YzdkMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1l
eHBlY3RlZC50eHQKQEAgLTM5LDkgKzM5LDEwIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmhhc093blByb3BlcnR5CiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTnVtYmVyLCAnTkVHQVRJVkVfSU5G
SU5JVFknKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmVudW1lcmFi
bGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIs
ICdORUdBVElWRV9JTkZJTklUWScpLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykudmFsdWUgaXMgUmVnRXhwLiRf
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZ2V0IGlzIFJl
Z0V4cCRfR2V0dGVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LCAnJF8nKS5zZXQgaXMgUmVnRXhwJF9TZXR0ZXIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCd2YWx1ZScpIGlzIGZhbHNl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5oYXNP
d25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuY29uZmlndXJhYmxlIGlz
IHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLCAnRE9DVU1F
TlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJykudmFsdWUgaXMgTm9kZS5ET0NVTUVOVF9QT1NJVElP
Tl9ESVNDT05ORUNURUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2Fj
aGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hpbmctZXhw
ZWN0ZWQudHh0CmluZGV4IDg1MTNjOGUyY2U1ZGE0YmFhYTU5YjVlNDE5NGNiYmI5ZTQxYzkxYjEu
LmM1MWM5MDllMzU4NGFlYTc3YWIxYTQxYmUyNmI5YzM4NjIxODE3NDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDEwIEBA
CiBUaGlzIHRlc3QgY2hlY2tzIG91ciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3BlY2lhbCBSZWdF
eHAgbWVtYmVyIHZhcmlhYmxlcy4KIAogUHJvcGVydGllcyBvZiBSZWdFeHAgYXQgc3RhcnR1cDoK
KyQmOiB7fSAocmVhZC1vbmx5KQorJCc6IHt9IChyZWFkLW9ubHkpCiskKjoge2ZhbHNlfSAocmVh
ZC13cml0ZSkKKyQrOiB7fSAocmVhZC1vbmx5KQogJDE6IHt9IChyZWFkLW9ubHkpCiAkMjoge30g
KHJlYWQtb25seSkKICQzOiB7fSAocmVhZC1vbmx5KQpAQCAtMTAsMTQgKzE0LDIzIEBAICQ2OiB7
fSAocmVhZC1vbmx5KQogJDc6IHt9IChyZWFkLW9ubHkpCiAkODoge30gKHJlYWQtb25seSkKICQ5
OiB7fSAocmVhZC1vbmx5KQorJF86IHt9IChyZWFkLXdyaXRlKQorJGA6IHt9IChyZWFkLW9ubHkp
CiBpbnB1dDoge30gKHJlYWQtd3JpdGUpCiBsYXN0TWF0Y2g6IHt9IChyZWFkLW9ubHkpCiBsYXN0
UGFyZW46IHt9IChyZWFkLW9ubHkpCiBsZWZ0Q29udGV4dDoge30gKHJlYWQtb25seSkKK2xlbmd0
aDogezJ9IChyZWFkLW9ubHkpCiBtdWx0aWxpbmU6IHtmYWxzZX0gKHJlYWQtd3JpdGUpCituYW1l
OiB7UmVnRXhwfSAocmVhZC1vbmx5KQorcHJvdG90eXBlOiB7Lyg/OikvfSAocmVhZC1vbmx5KQog
cmlnaHRDb250ZXh0OiB7fSAocmVhZC1vbmx5KQogCiBQcm9wZXJ0aWVzIG9mIFJlZ0V4cCBhZnRl
ciAvKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDApLy5leGVjKDwxMjM0NTY3ODkwPik6Cisk
JjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge2ZhbHNlfQorJCs6IHswfQogJDE6IHsxfQog
JDI6IHsyfQogJDM6IHszfQpAQCAtMjcsMTEgKzQwLDE2IEBAICQ2OiB7Nn0KICQ3OiB7N30KICQ4
OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+fQorJGA6IHs8fQogaW5wdXQ6IHs8MTIz
NDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVuOiB7MH0KIGxlZnRD
b250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHtmYWxzZX0KK25hbWU6IHtSZWdF
eHB9Citwcm90b3R5cGU6IHsvKD86KS99CiByaWdodENvbnRleHQ6IHs+fQogCiBSZWdFeHAuJDAg
ZG9lcyBub3QgZXhpc3QKQEAgLTQxLDYgKzU5LDEwIEBAIFJlZ0V4cC5tdWx0aWxpbmUgY29lcmNl
cyB2YWx1ZXMgdG8gYm9vbGVhbnMKIFJlZ0V4cC5pbnB1dCBjb2VyY2VzIHZhbHVlcyB0byBzdHJp
bmdzCiAKIFByb3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIC8oMSkoMikoMykoNCkoNSkoNikoNyko
OCkoOSkoMCkvLmV4ZWMoWFhYKToKKyQmOiB7MTIzNDU2Nzg5MH0KKyQnOiB7Pn0KKyQqOiB7dHJ1
ZX0KKyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30KQEAgLTUwLDE1ICs3MiwyNCBA
QCAkNjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezB9CiskYDogezx9CiBp
bnB1dDogezB9CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVuOiB7MH0KIGxlZnRD
b250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHt0cnVlfQorbmFtZToge1JlZ0V4
cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29udGV4dDogez59CiAKIC0tLS0tLS0tLS0g
W0NsZWFyZWQgUmVnRXhwIHZhbHVlc10gLS0tLS0tLS0tLQogUHJvcGVydGllcyBvZiBSZWdFeHAg
YWZ0ZXIgPDEyMzQ1Njc4OTA+LnNlYXJjaCgvKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDAp
Lyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3RydWV9CiskKzogezB9CiAkMTog
ezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC02OCwxNSArOTksMjQgQEAgJDY6IHs2fQogJDc6IHs3
fQogJDg6IHs4fQogJDk6IHs5fQorJF86IHs8MTIzNDU2Nzg5MD59CiskYDogezx9CiBpbnB1dDog
ezwxMjM0NTY3ODkwPn0KIGxhc3RNYXRjaDogezEyMzQ1Njc4OTB9CiBsYXN0UGFyZW46IHswfQog
bGVmdENvbnRleHQ6IHs8fQorbGVuZ3RoOiB7Mn0KIG11bHRpbGluZToge3RydWV9CituYW1lOiB7
UmVnRXhwfQorcHJvdG90eXBlOiB7Lyg/OikvfQogcmlnaHRDb250ZXh0OiB7Pn0KIAogLS0tLS0t
LS0tLSBbQ2xlYXJlZCBSZWdFeHAgdmFsdWVzXSAtLS0tLS0tLS0tCiBQcm9wZXJ0aWVzIG9mIFJl
Z0V4cCBhZnRlciA8MTIzNDU2Nzg5MD4ucmVwbGFjZSgvKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgp
KDkpKDApLyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3RydWV9CiskKzogezB9
CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC04NiwxMCArMTI2LDE1IEBAICQ2OiB7Nn0K
ICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+fQorJGA6IHs8fQog
aW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVu
OiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHt0cnVlfQor
bmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29udGV4dDogez59CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLmh0bWwKaW5kZXggMDZhZGE3MDExMDIwY2Vi
MjhiZWRmZmZkNDZlOGFhODExNTYzNTgwNC4uYjk4NzE0NTM4NmU0NGEyNDM5NDVkMGE0YWIwNjBm
ZWZhYWI3NDQwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLmh0bWwKQEAgLTIw
LDEwICsyMCw3IEBACiAKIGZ1bmN0aW9uIHByaW50UHJvcGVydGllc1dpdGhSZWFkT25seShvYmpl
Y3QpCiB7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5OwotICAgIGZvciAodmFyIHByb3BlcnR5
IGluIG9iamVjdCkgewotICAgICAgICBhcnJheS5wdXNoKHByb3BlcnR5KTsKLSAgICB9CisgICAg
dmFyIGFycmF5ID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsKICAgICBhcnJh
eS5zb3J0KCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewog
ICAgICAgICB2YXIgcHJvcGVydHkgPSBhcnJheVtpXTsKQEAgLTMzLDEwICszMCw3IEBACiAKIGZ1
bmN0aW9uIHByaW50UHJvcGVydGllcyhvYmplY3QpCiB7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFy
cmF5OwotICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkgewotICAgICAgICBhcnJheS5w
dXNoKHByb3BlcnR5KTsKLSAgICB9CisgICAgdmFyIGFycmF5ID0gT2JqZWN0LmdldE93blByb3Bl
cnR5TmFtZXMob2JqZWN0KTsKICAgICBhcnJheS5zb3J0KCk7CiAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewogICAgICAgICB2YXIgcHJvcGVydHkgPSBhcnJheVtp
XTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IuanMgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yLmpzCmluZGV4IGM2NTEyMTEzMjg1NjY3MzBmMmZjNzllNjFhNDZlNGU2MDRhNzU3YmYu
LmUzOGJmNzQyMjVjOTExNmFlZmIyZmYwMjBiYWMwOGRlNjg5M2I1NzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwpAQCAt
MjUsNyArMjUsOSBAQCBmdW5jdGlvbiBkZXNjcmlwdG9yU2hvdWxkQmUob2JqZWN0LCBwcm9wZXJ0
eSwgZXhwZWN0ZWQpIHsKIGRlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhwLnByb3RvdHlwZSIsICIn
ZXhlYyciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6
IHRydWUsIHZhbHVlOiJSZWdFeHAucHJvdG90eXBlLmV4ZWMifSk7CiBkZXNjcmlwdG9yU2hvdWxk
QmUoImRvY3VtZW50Ll9fcHJvdG9fXy5fX3Byb3RvX18iLCAiJ2NyZWF0ZUVsZW1lbnQnIiwge3dy
aXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVl
OiJkb2N1bWVudC5jcmVhdGVFbGVtZW50In0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJOdW1iZXIi
LCAiJ05FR0FUSVZFX0lORklOSVRZJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZh
bHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZ
In0pOwotZGVzY3JpcHRvclNob3VsZEJlKCJSZWdFeHAiLCAiJyRfJyIsIHt3cml0YWJsZTogdHJ1
ZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IlJlZ0V4cC4k
XyJ9KTsKK3ZhciBSZWdFeHAkX0dldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoUmVnRXhwLCAnJF8nKS5nZXQ7Cit2YXIgUmVnRXhwJF9TZXR0ZXIgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuc2V0OworZGVzY3JpcHRvclNob3VsZEJl
KCJSZWdFeHAiLCAiJyRfJyIsIHtnZXQ6ICJSZWdFeHAkX0dldHRlciIsIHNldDogIlJlZ0V4cCRf
U2V0dGVyIiwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSx9KTsKIGRlc2Ny
aXB0b3JTaG91bGRCZSgiTm9kZSIsICInRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJyIs
IHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2Us
IHZhbHVlOiJOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCJ9KTsKIGRlc2NyaXB0
b3JTaG91bGRCZSgiTWF0aCIsICInc2luJyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTog
ZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6Ik1hdGguc2luIn0pOwogZGVzY3JpcHRv
clNob3VsZEJlKCJbMSwyLDNdIiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRy
dWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IjEifSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4u
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOTFkMjFjNDIzMTAxZDI5NDAzYmIy
NWE4NzE0MTNhMTUyOTAzM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQtaW4tcHJvdG90
eXBlLWNoYWluLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBjYWxsIGEgY3VzdG9tIHNldHRlciB3aGVu
IHRoZSBzZXR0ZXIgaXMgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiIpOwotCi0vLyBUaGUgUmVnRXhw
IE9iamVjdCBpcyBhIGNvbnZlbmllbnQgY29uc3RydWN0b3Igd2l0aCBhIGN1c3RvbSBzZXR0ZXIu
Ci0vLyBUaGlzIHdpbGwgYWxzbyB0ZXN0IHRoZSB3ZWlyZCBiZWhhdmlvdXIgaW4gd2hpY2ggdGhl
IFJlZ0V4cCBjb25zdHJ1Y3RvcgotLy8gc2V0dGVycyBhcmUgZXhwZWN0ZWQgdG8gYWN0IG9uIHRo
ZSBiYXNlIG9iamVjdCAoZS5nLiB0aGUgY29uc3RydWN0b3Igb2JqZWN0KQotLy8gcmF0aGVyIHRo
YW4gdGhlIHRoaXMgdmFsdWUuCi12YXIgdGVzdE9iamVjdCA9IHtfX3Byb3RvX186IFJlZ0V4cCB9
Ci0KLXRlc3RPYmplY3QuaW5wdXQgPSAidGVzdElucHV0IgotCi1zaG91bGRCZSgidGVzdE9iamVj
dC5pbnB1dCIsICIndGVzdElucHV0JyIpCi1zaG91bGRCZSgiUmVnRXhwLmlucHV0IiwgIid0ZXN0
SW5wdXQnIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90
eXBlLWNoYWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJv
dG90eXBlLWNoYWluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MWM4MzE2MTVkYTU5YmE3MDU0Y2Y4YmMxOTg0NzE2ZGRkYzE5MzA0MC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0
LWluLXByb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSAr
MCwwIEBACi1UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdlIHdpbGwgY2FsbCBhIGN1c3RvbSBzZXR0
ZXIgd2hlbiB0aGUgc2V0dGVyIGlzIGluIHRoZSBwcm90b3R5cGUgY2hhaW4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdGVzdE9iamVjdC5pbnB1dCBpcyAndGVzdElucHV0
JwotUEFTUyBSZWdFeHAuaW5wdXQgaXMgJ3Rlc3RJbnB1dCcKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvc3Rh
dGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggY2MxYTgxYzAzNjE4ZjMyODY1NDQxZWZlMzUwZWE2YTkyZjE5MDM3NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zdGF0
aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAs
MCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0YXRp
Yy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxp
bmUtanNjIGIvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvTGliL2ZvcmluX2xpYl92My5iYXNlbGlu
ZS1qc2MKaW5kZXggODU1MjRkMzFlMjA3ZjAwNDdiZTc2NWY0MGRhNDhiYmI0YmRjNDgyMi4uNjMy
MTEzZDc3ZjYwOTg0MDYyMjUyMDZjNTFlN2I2MGNjZWNlNzQ0MiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFrcmFDb3JlL3Rlc3QvTGliL2ZvcmluX2xpYl92My5iYXNlbGluZS1qc2MKKysrIGIvSlNU
ZXN0cy9DaGFrcmFDb3JlL3Rlc3QvTGliL2ZvcmluX2xpYl92My5iYXNlbGluZS1qc2MKQEAgLTc4
LDM4ICs3OCw4IEBAIGZvci4uaW4gRGF0ZSAod2l0aCBwcm90b3R5cGUuYmxhaDIpCiAgIGJsYWgy
ID0gRGF0ZQogCiBmb3IuLmluIFJlZ0V4cAotICBpbnB1dCA9IAotICBtdWx0aWxpbmUgPSBmYWxz
ZQotICBsYXN0TWF0Y2ggPSAKLSAgbGFzdFBhcmVuID0gCi0gIGxlZnRDb250ZXh0ID0gCi0gIHJp
Z2h0Q29udGV4dCA9IAotICAkMSA9IAotICAkMiA9IAotICAkMyA9IAotICAkNCA9IAotICAkNSA9
IAotICAkNiA9IAotICAkNyA9IAotICAkOCA9IAotICAkOSA9IAogICBibGFoMiA9IEZ1bmN0aW9u
CiBmb3IuLmluIFJlZ0V4cCAod2l0aCBibGFoKQotICBpbnB1dCA9IAotICBtdWx0aWxpbmUgPSBm
YWxzZQotICBsYXN0TWF0Y2ggPSAKLSAgbGFzdFBhcmVuID0gCi0gIGxlZnRDb250ZXh0ID0gCi0g
IHJpZ2h0Q29udGV4dCA9IAotICAkMSA9IAotICAkMiA9IAotICAkMyA9IAotICAkNCA9IAotICAk
NSA9IAotICAkNiA9IAotICAkNyA9IAotICAkOCA9IAotICAkOSA9IAogICBibGFoID0gYgogICBi
bGFoMiA9IEZ1bmN0aW9uCiBmb3IuLmluIG5ldyBSZWdFeHAKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2IzZmI1ZmY2NTVmNjg0ZjI0ZTIx
NzE2ZDE2ZTVlM2Q1NDg2YTlmMi4uMmI4NjI5ZjY2M2FhODFkNmMwMjg1YjI4YzVjZDY3NzYwZTA0
MTQ2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NyBAQAorMjAyMS0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBi
ZSBhY2Nlc3NvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMDIzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ2hha3JhQ29yZS90ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjOgorICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYy5q
czoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3Vz
dG9tLXNldHRlci5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9jdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS0yLmpzOgorICAgICAg
ICAodGVzdDEuZ2V0Q3VzdG9tVmFsdWUyKToKKyAgICAgICAgKHRlc3QxKToKKyAgICAgICAgKHRl
c3QxLmdldE11bHRpbGluZSk6IERlbGV0ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2N1
c3RvbS12YWx1ZS5qczoKKyAgICAgICAgKHRlc3QxLmdldEN1c3RvbVZhbHVlMik6CisgICAgICAg
ICh0ZXN0MSk6CisgICAgICAgICh0ZXN0MS5nZXRNdWx0aWxpbmUpOiBEZWxldGVkLgorICAgICAg
ICAqIG1pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qczoKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEuanM6Cisg
ICAgICAgICh0ZXN0MS5nZXRDdXN0b21WYWx1ZTIpOgorICAgICAgICAodGVzdDEpOgorICAgICAg
ICAodGVzdDEuZ2V0TXVsdGlsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvY3VzdG9t
LXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzOgorICAgICAgICAodGVzdDIuZm9vKToKKyAgICAg
ICAgKHRlc3QyKToKKyAgICAgICAgKiBzdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0
eS0zLmpzOgorICAgICAgICAodGVzdDYuZm9vKToKKyAgICAgICAgKHRlc3Q2KToKKyAgICAgICAg
KiBzdHJlc3Mvb2JqZWN0LWFzc2lnbi1mYXN0LXBhdGguanM6CisgICAgICAgICogc3RyZXNzL3Jl
ZmxlY3Qtc2V0LmpzOgorICAgICAgICAqIHN0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGxldC5yZWFsbS5jcmVhdGVHbG9iYWxPYmplY3QpOgorICAgICAgICAo
ZGVzY3JpcHRvci5jYWxsKToKKyAgICAgICAgKiBzdHJlc3Mvc3RhdGljLXB1dC1pbi1wcm90b3R5
cGUtY2hhaW4uanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHRlc3Qy
NjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKwog
MjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVyZm9ybWluZyBz
aW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3Jw
aGljLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9s
eW1vcnBoaWMuanMKaW5kZXggNTkwMWMwZGIzY2ZlNTA0YmFhNDNmOTIwNGEyNDI3OTdjMmQzMDA3
YS4uMzhmMGNhZDIyMGIwOThlMTBjZDM2Yzc0MzRkYWEzYTlkNzAwMDZmOCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMu
anMKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9s
eW1vcnBoaWMuanMKQEAgLTEsMjAgKzEsMjAgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBw
bGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKIAot
byA9IFJlZ0V4cDsKK28gPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwogaiA9
IDA7CiBsID0gMjsKIHogPSAwOwogZnVuY3Rpb24gdGVzdChvLCB6KSB7CiAgICAgdmFyIGsgPSBh
cmd1bWVudHNbKCgoaiA8PCAxIHwgbCkgPj4gMSkgXiAxKSAmICh6ICo9IDEpXTsKLSAgICBrLmlu
cHV0ID0gMDsKKyAgICBrLmN1c3RvbVZhbHVlMiA9IDA7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAyNTAwMDsgaSsrKSB7Ci0gICAgICAgIGsuaW5wdXQgPSAiZm9vIjsKKyAgICAgICAgay5jdXN0
b21WYWx1ZTIgPSAiZm9vIjsKICAgICB9CiAKLSAgICByZXR1cm4gay5pbnB1dDsKKyAgICByZXR1
cm4gay5jdXN0b21WYWx1ZTI7CiB9Ci12YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90b19fOiB7YmFy
OiJ3aWJibGUiLCBpbnB1dDoiZm9vIn19KTsKLXZhciByZXN1bHQgPSB0ZXN0KHtpbnB1dDoiZm9v
In0pOwordmFyIHJlc3VsdCA9IHRlc3Qoe19fcHJvdG9fXzoge2Jhcjoid2liYmxlIiwgY3VzdG9t
VmFsdWUyOiJmb28ifX0pOwordmFyIHJlc3VsdCA9IHRlc3Qoe2N1c3RvbVZhbHVlMjoiZm9vIn0p
OwogdmFyIHJlc3VsdCA9IHRlc3QobykKIGZvciAodmFyIGsgPSAwOyBrIDwgNjsgaysrKSB7CiAg
ICAgdmFyIHN0YXJ0ID0gbmV3IERhdGU7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fz
c2lnbi1jdXN0b20tc2V0dGVyLmpzCmluZGV4IGZhZGQ0Zjk3YTRhYzdkZGM4ZTkzMTUwYTFlMjYz
YWEwNTExY2ZmMmQuLjM0MGZiOGRhMjM5YzE0OWJhNmMwNjk3MDllM2Q2OThjOWZkNzc0NmQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpz
CisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzCkBA
IC0xLDE0ICsxLDEzIEBACiAvL0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmll
cyAzIiAjIGFkZGVkIGJ5IG1hcmstanNjLXN0cmVzcy10ZXN0LnB5Ci0vLyBSZWdFeHAuaW5wdXQg
aXMgYSBoYW5keSBzZXR0ZXIKIAotdmFyIG8gPSBSZWdFeHA7Cit2YXIgbyA9ICR2bS5jcmVhdGVD
dXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlvbiB0ZXN0KG8pIHsKICAgICB2YXIgayA9
IDA7Ci0gICAgby5pbnB1dCA9ICJiYXIiOworICAgIG8uY3VzdG9tVmFsdWUyID0gImJhciI7CiAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMDAwMDsgaSsrKQotICAgICAgICBvLmlucHV0ID0gImZv
byI7CisgICAgICAgIG8uY3VzdG9tVmFsdWUyID0gImZvbyI7CiAKLSAgICByZXR1cm4gby5pbnB1
dDsKKyAgICByZXR1cm4gby5jdXN0b21WYWx1ZTI7CiB9CiAKIHZhciByZXN1bHQgPSB0ZXN0KG8p
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXNldHRlci1nZXR0
ZXItYXMtcHV0LWdldC1ieS1pZC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2N1c3RvbS1z
ZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanMKaW5kZXggYThlNTc1ZWM2MWYyMWM2MmQx
NzdjNzdlNWUwNGM0MTZlNzhmZmQzOS4uNGRjYWE3NDgzNzA4MGU4YmRjYTAzYmIyY2ViYjNlMThm
ZTNjNzFkNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXNldHRl
ci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9jdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzCkBAIC01LDIxICs1LDIw
IEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiB9CiBub0lubGluZShhc3NlcnQpOwogCi0vLyBSZWdF
eHAuaW5wdXQgaXMgYSBoYW5keSBjdXN0b20gZ2V0dGVyL3NldHRlci4KLXZhciBvMSA9IFJlZ0V4
cDsKK3ZhciBvMSA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlv
biB0ZXN0KG8pIHsKLSAgICBvLmlucHV0ID0gImJhciI7Ci0gICAgcmV0dXJuIG8uaW5wdXQ7Cisg
ICAgby5jdXN0b21WYWx1ZTIgPSAiYmFyIjsKKyAgICByZXR1cm4gby5jdXN0b21WYWx1ZTI7CiB9
CiBub0lubGluZSh0ZXN0KTsKIAogdmFyIG8yID0gewotICAgIGlucHV0OiAiaGVsbG8iCisgICAg
Y3VzdG9tVmFsdWUyOiAiaGVsbG8iCiB9CiAKIHZhciBvMyA9IHsKICAgICB4OiAyMCwKLSAgICBp
bnB1dDogImhlbGxvIgorICAgIGN1c3RvbVZhbHVlMjogImhlbGxvIgogfQogCiAvLyBGaXJzdCBj
b21waWxlIGFzIEdldEJ5SWQgbm9kZS4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2N1c3RvbS12YWx1ZS0yLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZh
bHVlLTIuanMKaW5kZXggYmU0Mjg5ZjkzYjM5Njc5MGQyMGQ4NDgxYTdmMDJjNjRhZjdkYjJmMC4u
M2I1YmI1MmZiYzkyNTk4OTBmNmMwYzAxZGJkZTcxYTYyNzUwYmQ2NiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLTIuanMKKysrIGIvSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLTIuanMKQEAgLTQsMjQgKzQsMjUgQEAgZnVuY3Rpb24g
YXNzZXJ0KGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yOwogfQogCitjb25zdCBWYWx1ZSA9
ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlvbiB0ZXN0MSgpIHsK
LSAgICBmdW5jdGlvbiBnZXRNdWx0aWxpbmUobykgewotICAgICAgICByZXR1cm4gby5tdWx0aWxp
bmU7CisgICAgZnVuY3Rpb24gZ2V0Q3VzdG9tVmFsdWUyKG8pIHsKKyAgICAgICAgcmV0dXJuIG8u
Y3VzdG9tVmFsdWUyOwogICAgIH0KLSAgICBub0lubGluZShnZXRNdWx0aWxpbmUpOworICAgIG5v
SW5saW5lKGdldEN1c3RvbVZhbHVlMik7CiAKLSAgICBSZWdFeHAuZm9vID0gNDI7CisgICAgVmFs
dWUuZm9vID0gNDI7CiAKICAgICBjb25zdCBvID0ge307Ci0gICAgby5fX3Byb3RvX18gPSBSZWdF
eHA7Ci0gICAgUmVnRXhwLm11bHRpbGluZSA9IGZhbHNlOworICAgIG8uX19wcm90b19fID0gVmFs
dWU7CisgICAgVmFsdWUuY3VzdG9tVmFsdWUyID0gZmFsc2U7CiAKICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDUwMDAwMDA7ICsraSkgewotICAgICAgICBhc3NlcnQoZ2V0TXVsdGlsaW5lKG8pID09
PSBmYWxzZSk7CisgICAgICAgIGFzc2VydChnZXRDdXN0b21WYWx1ZTIobykgPT09IGZhbHNlKTsK
ICAgICB9Ci0gICAgZGVsZXRlIFJlZ0V4cC5mb287CisgICAgZGVsZXRlIFZhbHVlLmZvbzsKICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDAwMDA7ICsraSkgewotICAgICAgICBhc3NlcnQoZ2V0
TXVsdGlsaW5lKG8pID09PSBmYWxzZSk7CisgICAgICAgIGFzc2VydChnZXRDdXN0b21WYWx1ZTIo
bykgPT09IGZhbHNlKTsKICAgICB9CiB9CiB0ZXN0MSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9t
aWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
Y3VzdG9tLXZhbHVlLmpzCmluZGV4IDIyZTEzZWFhMzkxYzY3NWJiMjFkMTQzMTgzZDBkZTI1NjYx
MDk5YzkuLjBkYjRkMjVkN2VhNWMyNTkxNTE3MDRkN2NhMjU2NGVkNjMzYmE4MTggMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qcworKysgYi9KU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanMKQEAgLTQsMTggKzQsMTkgQEAgZnVuY3Rp
b24gYXNzZXJ0KGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yOwogfQogCitjb25zdCBWYWx1
ZSA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlvbiB0ZXN0MSgp
IHsKLSAgICBmdW5jdGlvbiBnZXRNdWx0aWxpbmUobykgewotICAgICAgICByZXR1cm4gby5tdWx0
aWxpbmU7CisgICAgZnVuY3Rpb24gZ2V0Q3VzdG9tVmFsdWUyKG8pIHsKKyAgICAgICAgcmV0dXJu
IG8uY3VzdG9tVmFsdWUyOwogICAgIH0KLSAgICBub0lubGluZShnZXRNdWx0aWxpbmUpOworICAg
IG5vSW5saW5lKGdldEN1c3RvbVZhbHVlMik7CiAKICAgICBjb25zdCBvID0ge307Ci0gICAgby5f
X3Byb3RvX18gPSBSZWdFeHA7Ci0gICAgUmVnRXhwLm11bHRpbGluZSA9IGZhbHNlOworICAgIG8u
X19wcm90b19fID0gVmFsdWU7CisgICAgVmFsdWUuY3VzdG9tVmFsdWUyID0gZmFsc2U7CiAKICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDAwMDA7ICsraSkgewotICAgICAgICBhc3NlcnQoZ2V0
TXVsdGlsaW5lKG8pID09PSBmYWxzZSk7CisgICAgICAgIGFzc2VydChnZXRDdXN0b21WYWx1ZTIo
bykgPT09IGZhbHNlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2dldC1jdXN0b20tZ2V0dGVyLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2V0
LWN1c3RvbS1nZXR0ZXIuanMKaW5kZXggZjFiZmY1MWZhNzMyNjg1NGIwMGY3MzVlMDhhNTk3YjNj
NWNmNzY4Mi4uOGI5MDk2NzZmZGJjODc0ZjQ5NjYwODZhMDZmOTcxNGQ4NDk0ZTU0NSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanMKKysrIGIv
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanMKQEAgLTEsMTMgKzEs
MTIgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRk
ZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vIFJlZ0V4cC5pbnB1dCBpcyBhIGhhbmR5
IGdldHRlcgogCi12YXIgbyA9IFJlZ0V4cDsKLW8uaW5wdXQgPSAiZm9vIjsKK3ZhciBvID0gJHZt
LmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKK28uY3VzdG9tVmFsdWUyID0gImZvbyI7
CiAKIGZ1bmN0aW9uIHRlc3QobykgewogICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMzAwMDA7IGkrKykKLSAgICAgICAgcmVzdWx0ID0gby5pbnB1dDsKKyAg
ICAgICAgcmVzdWx0ID0gby5jdXN0b21WYWx1ZTI7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0x
LmpzIGIvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCmlu
ZGV4IDBjYzgwNGEwNzJiOTk1OGQxOGE5ZWI5MjBlZTI4MDFjYTNkMWIxZWEuLmJiYmRjODM0M2M4
MzM5ODU3YjEzZWI1MmM1MGMxNzRjOGFlNmVjODEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9j
dXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEuanMKQEAgLTMsMjEgKzMsMjEgQEAgZnVuY3Rp
b24gYXNzZXJ0KGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yOwogfQogCitjb25zdCBWYWx1
ZSA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlvbiB0ZXN0MSgp
IHsKLSAgICBmdW5jdGlvbiBnZXRNdWx0aWxpbmUobykgewotICAgICAgICByZXR1cm4gby5tdWx0
aWxpbmU7CisgICAgZnVuY3Rpb24gZ2V0Q3VzdG9tVmFsdWUyKG8pIHsKKyAgICAgICAgcmV0dXJu
IG8uY3VzdG9tVmFsdWUyOwogICAgIH0KLSAgICBub0lubGluZShnZXRNdWx0aWxpbmUpOworICAg
IG5vSW5saW5lKGdldEN1c3RvbVZhbHVlMik7CiAKICAgICBjb25zdCBvID0ge307Ci0gICAgby5f
X3Byb3RvX18gPSBSZWdFeHA7Ci0gICAgUmVnRXhwLm11bHRpbGluZSA9IGZhbHNlOworICAgIG8u
X19wcm90b19fID0gVmFsdWU7CisgICAgVmFsdWUuY3VzdG9tVmFsdWUyID0gZmFsc2U7CiAKICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRNdWx0
aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihvKSA9
PT0gZmFsc2UpOwogICAgIH0KLSAgICBkZWxldGUgUmVnRXhwLmlucHV0OwotICAgIGRlbGV0ZSBS
ZWdFeHAubXVsdGlsaW5lOwotICAgIGFzc2VydChnZXRNdWx0aWxpbmUobykgPT09IHVuZGVmaW5l
ZCk7CisgICAgZGVsZXRlIFZhbHVlLmN1c3RvbVZhbHVlMjsKKyAgICBhc3NlcnQoZ2V0Q3VzdG9t
VmFsdWUyKG8pID09PSB1bmRlZmluZWQpOwogfQogdGVzdDEoKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMi5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMi5qcwppbmRleCAwYTVmOWUyZTc5YTU1
N2ZkNzRiMjY3YmVmZDU5MDY2OWE3Zjk5ZmY4Li41YTZlNGNiNDJkNTU1N2I1MzNmYmI4MTQwMWU3
ZmExMzQ1NWJjZmYyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVs
ZXRlLXByb3BlcnR5LTIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0
ZS1wcm9wZXJ0eS0yLmpzCkBAIC0xLDExICsxLDEyIEBACitjb25zdCBWYWx1ZSA9ICR2bS5jcmVh
dGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5jdGlvbiB0ZXN0MigpIHsKICAgICBmdW5j
dGlvbiBmb28oKSB7CiAgICAgICAgIGNvbnN0IG8gPSB7fTsKICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgICAgIGxldCB4ID0gby5tdWx0aWxpbmU7Ci0gICAg
ICAgICAgICBvLl9fcHJvdG9fXyA9IFJlZ0V4cDsKKyAgICAgICAgICAgIGxldCB4ID0gby5jdXN0
b21WYWx1ZTI7CisgICAgICAgICAgICBvLl9fcHJvdG9fXyA9IFZhbHVlOwogICAgICAgICB9Ci0g
ICAgICAgIGRlbGV0ZSBSZWdFeHAuaW5wdXQ7CisgICAgICAgIGRlbGV0ZSBWYWx1ZS5jdXN0b21W
YWx1ZTsKICAgICB9CiAKICAgICBmb28oKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2N1
c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMy5qcyBiL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12
YWx1ZS1kZWxldGUtcHJvcGVydHktMy5qcwppbmRleCBjMDY2YTI4MjMwNTdkZjEzZDI0ZmI5ZmY5
NzJkNTc3NjU3MjU1OWI1Li44OTZlMzA1OGI5ZGRhZGI0ZjEzNGM5ZTkxMGEzMGY3ZjI4Y2JlYzQy
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5
LTMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0z
LmpzCkBAIC0xLDExICsxLDEyIEBACiBmdW5jdGlvbiB0ZXN0NigpIHsKKyAgICB2YXIgY3VzdG9t
ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKICAgICBmdW5jdGlvbiBmb28o
KSB7CiAgICAgICAgIGNvbnN0IG8gPSB7fTsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4
OyBpKyspIHsKLSAgICAgICAgICAgIG8ubGFzdE1hdGNoOwotICAgICAgICAgICAgby5fX3Byb3Rv
X18gPSBSZWdFeHA7CisgICAgICAgICAgICBvLmN1c3RvbVZhbHVlMjsKKyAgICAgICAgICAgIG8u
X19wcm90b19fID0gY3VzdG9tOwogICAgICAgICB9Ci0gICAgICAgIGRlbGV0ZSBSZWdFeHAuaW5w
dXQ7CisgICAgICAgIGRlbGV0ZSBjdXN0b20uY3VzdG9tVmFsdWUyOwogICAgIH0KIAogICAgIGZv
bygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2lnbi1mYXN0LXBhdGgu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qcwppbmRleCBlY2I5
MGQ1NmJjZDUwZmMzZjU1Yzk3YzEyMjljYjM4M2I5YTI4ZTNkLi42MDUzNThjMmU0NzU3ODJhM2Ri
YTM2NGFkYTEwZTE1MmI0N2YwY2RhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qt
YXNzaWduLWZhc3QtcGF0aC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZh
c3QtcGF0aC5qcwpAQCAtMzIsNyArMzIsMTEgQEAgZnVuY3Rpb24gY2hlY2tQcm9wZXJ0eShvYmpl
Y3QsIG5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzID0geyB3cml0YWJsZTogdHJ1ZSwgZW51bWUKIAog
ewogICAgIGxldCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBSZWdFeHApOwotICAgIHNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHJlc3VsdCkuc29y
dCgpKSwgYFsiJDEiLCIkMiIsIiQzIiwiJDQiLCIkNSIsIiQ2IiwiJDciLCIkOCIsIiQ5IiwiaW5w
dXQiLCJsYXN0TWF0Y2giLCJsYXN0UGFyZW4iLCJsZWZ0Q29udGV4dCIsIm11bHRpbGluZSIsInJp
Z2h0Q29udGV4dCJdYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93
blByb3BlcnR5TmFtZXMocmVzdWx0KS5zb3J0KCkpLCBgW11gKTsKK30KK3sKKyAgICBsZXQgcmVz
dWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIo
KSk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5TmFt
ZXMocmVzdWx0KS5zb3J0KCkpLCBgWyJjdXN0b21BY2Nlc3NvciIsImN1c3RvbUFjY2Vzc29yR2xv
YmFsT2JqZWN0IiwiY3VzdG9tRnVuY3Rpb24iLCJjdXN0b21WYWx1ZSIsImN1c3RvbVZhbHVlMiIs
ImN1c3RvbVZhbHVlR2xvYmFsT2JqZWN0Il1gKTsKIH0KIHsKICAgICBmdW5jdGlvbiBIZWxsbygp
IHsgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVmbGVjdC1zZXQuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWZsZWN0LXNldC5qcwppbmRleCA2NDBiZWZmZGIzMjVjMTc4MDRiZTE4ZTBlYjk4
NGNmYjhkY2U3MTY5Li5iYzA0ODA4NGZiNGZmYjFhMTEyMjNiODM4NGNjYTc4YWY0MzdjMTkyIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWZsZWN0LXNldC5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9yZWZsZWN0LXNldC5qcwpAQCAtMTExNywxMCArMTExNyw3IEBAIGZ1bmN0aW9uIHRlc3Q1
KCkgewogICAgIHJlY2VpdmVyVGVzdEluZGV4ZWQoL2hlbGxvLywge30pOwogfSgpKTsKIAotKGZ1
bmN0aW9uIGN1c3RvbVZhbHVlKCkgewotICAgIC8vIEluIHRoaXMgY2FzZSwgUmVnRXhwLm11bHRp
bGluZSBiZWhhdmVzIGxpa2UgYSBzZXR0ZXIgYmVjYXVzZSBpdCBjb2VyY2UgYm9vbGVhbiB0eXBl
LgotICAgIC8vIEFueXdheSwgaXQncyBPSywgYmVjYXVzZSBSZWdFeHAubXVsdGlsaW5lIGlzIG5v
dCBzcGVjaWZpZWQgaW4gdGhlIHNwZWMuCi0KKyhmdW5jdGlvbiByZWdFeHBNdWx0aWxpbmUoKSB7
CiAgICAgZnVuY3Rpb24gdGVzdDEoKSB7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJl
Z0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJyksIHRydWUpOwogICAgICAgICBzaG91bGRC
ZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgdHJ1ZSk7CkBAIC0xMTI4LDggKzEx
MjUsOCBAQCBmdW5jdGlvbiB0ZXN0MSgpIHsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQo
UmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKIAogICAgICAgICB2YXIgcmVjZWl2ZXIgPSB7
fTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0Nh
cHB1Y2Npbm8nLCByZWNlaXZlciksIHRydWUpOwotICAgICAgICBzaG91bGRCZShSZWZsZWN0Lmdl
dChyZWNlaXZlciwgJ211bHRpbGluZScpLCAnQ2FwcHVjY2lubycpOworICAgICAgICBzaG91bGRU
aHJvdygoKSA9PiBSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2FwcHVjY2lubycs
IHJlY2VpdmVyKSwgYFR5cGVFcnJvcjogUmVnRXhwLm11bHRpbGluZSBzZXR0ZXJzIHJlcXVpcmUg
UmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfGApOworICAgICAgICBzaG91bGRCZShSZWZsZWN0
LmdldChyZWNlaXZlciwgJ211bHRpbGluZScpLCB1bmRlZmluZWQpOwogICAgICAgICBzaG91bGRC
ZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOwogICAgIH0KIApAQCAt
MTE0MSw4ICsxMTM4LDggQEAgZnVuY3Rpb24gdGVzdDIoKSB7CiAgICAgICAgIHNob3VsZEJlKFJl
ZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CiAKICAgICAgICAgdmFyIHJl
Y2VpdmVyID0ge307Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRp
bGluZScsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCB0cnVlKTsKLSAgICAgICAgc2hvdWxkQmUo
UmVmbGVjdC5nZXQocmVjZWl2ZXIsICdtdWx0aWxpbmUnKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAg
ICAgc2hvdWxkVGhyb3coKCkgPT4gUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0Nh
cHB1Y2Npbm8nLCByZWNlaXZlciksIGBUeXBlRXJyb3I6IFJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVy
cyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3xgKTsKKyAgICAgICAgc2hvdWxk
QmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKICAgICAg
ICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKICAg
ICB9CiAKQEAgLTExNTEsMTEgKzExNDgsMTEgQEAgZnVuY3Rpb24gdGVzdDMoKSB7CiAgICAgICAg
IHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoUmVnRXhwLCAnbXVsdGlsaW5lJywgewog
ICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlCiAgICAgICAgIH0pLCB0cnVlKTsKLSAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKKyAgICAg
ICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7
CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBw
dWNjaW5vJyksIGZhbHNlKTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAn
bXVsdGlsaW5lJyksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhw
LCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0
KFJlZ0V4cCwgJ211bHRpbGluZScsIDApLCBmYWxzZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxl
Y3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJl
ZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCB1bmRlZmluZWQpOwogCiAgICAgICAgIHZh
ciByZWNlaXZlciA9IHt9OwogICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdt
dWx0aWxpbmUnLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgZmFsc2UpOwpAQCAtMTIwMSw2ICsx
MTk4LDU1IEBAIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgIH0sIGBUeXBlRXJyb3I6IEF0dGVtcHRl
ZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7CiB9KCkpOwogCisoZnVuY3Rpb24g
Y3VzdG9tVmFsdWUoKSB7CisgICAgY29uc3QgVmFsdWUgPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdl
dHRlclNldHRlcigpOworICAgIGZ1bmN0aW9uIHRlc3QxKCkgeworICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJyksIHRydWUpOwor
ICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAnQ2Fw
cHVjY2lubycpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZh
bHVlMicsIDApLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdj
dXN0b21WYWx1ZTInKSwgMCk7CisKKyAgICAgICAgdmFyIHJlY2VpdmVyID0ge307CisgICAgICAg
IHNob3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8n
LCByZWNlaXZlciksIHRydWUpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZl
ciwgJ2N1c3RvbVZhbHVlMicpLCAnQ2FwcHVjY2lubycpOworICAgICAgICBzaG91bGRCZShSZWZs
ZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0MigpIHsKKyAgICAgICAgJ3VzZSBzdHJpY3QnOworICAgICAgICBzaG91bGRCZShSZWZs
ZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJyksIHRydWUpOworICAg
ICAgICBzaG91bGRCZShSZWZsZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAnQ2FwcHVj
Y2lubycpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVl
MicsIDApLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0
b21WYWx1ZTInKSwgMCk7CisKKyAgICAgICAgdmFyIHJlY2VpdmVyID0ge307CisgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8nLCBy
ZWNlaXZlciksIHRydWUpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwg
J2N1c3RvbVZhbHVlMicpLCAnQ2FwcHVjY2lubycpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0
LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0
ZXN0MygpIHsKKyAgICAgICAgJ3VzZSBzdHJpY3QnOworICAgICAgICBzaG91bGRCZShSZWZsZWN0
LmRlZmluZVByb3BlcnR5KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgeworICAgICAgICAgICAgd3Jp
dGFibGU6IGZhbHNlLAorICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgfSks
IHRydWUpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVl
MicpLCB1bmRlZmluZWQpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1ZSwgJ2N1
c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJyksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVm
bGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKyAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwgZmFsc2UpOworICAg
ICAgICBzaG91bGRCZShSZWZsZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCB1bmRlZmlu
ZWQpOworCisgICAgICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShSZWZs
ZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCBm
YWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KHJlY2VpdmVyLCAnY3VzdG9tVmFs
dWUyJyksIHVuZGVmaW5lZCk7CisgICAgfQorCisgICAgdGVzdDEoKTsKKyAgICB0ZXN0MigpOwor
ICAgIHRlc3QzKCk7Cit9KCkpOworCiAoZnVuY3Rpb24gZnVuY3Rpb25DYXNlKCkgewogICAgIHZh
ciBmdW5jID0gZnVuY3Rpb24gKCkgeyB9OwogICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KGZ1bmMs
ICdhcmd1bWVudHMnKSwgbnVsbCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAt
c2V0dGVyLXJlYWxtLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMDgxYjc5ODY3NzdmNmI3OTA5MWJkMDYzNzM0NzkwN2FjYzQ3YWQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpAQCAt
MCwwICsxLDkgQEAKK2xldCByZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOworeworICAgIGxl
dCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdF
eHAsICJtdWx0aWxpbmUiKTsKKyAgICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwg
NDIpOworfQoreworICAgIGxldCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihyZWFsbS5SZWdFeHAsICJpbnB1dCIpOworICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwo
cmVhbG0uUmVnRXhwLCA0Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMt
cHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3N0YXRpYy1wdXQtaW4t
cHJvdG90eXBlLWNoYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNTgyZDFkMGUwZTExMzk0NDRlY2I4M2Iz
YmZhMDY1OTUwYjc4NmIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMt
cHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworLy8g
VGhlIFJlZ0V4cCBPYmplY3QgaXMgYSBjb252ZW5pZW50IGNvbnN0cnVjdG9yIHdpdGggYSBjdXN0
b20gc2V0dGVyLgorLy8gVGhpcyB3aWxsIGFsc28gdGVzdCB0aGUgd2VpcmQgYmVoYXZpb3VyIGlu
IHdoaWNoIHRoZSBSZWdFeHAgY29uc3RydWN0b3IKKy8vIHNldHRlcnMgYXJlIGV4cGVjdGVkIHRv
IGFjdCBvbiB0aGUgYmFzZSBvYmplY3QgKGUuZy4gdGhlIGNvbnN0cnVjdG9yIG9iamVjdCkKKy8v
IHJhdGhlciB0aGFuIHRoZSB0aGlzIHZhbHVlLgordmFyIHRhcmdldCA9ICR2bS5jcmVhdGVDdXN0
b21UZXN0R2V0dGVyU2V0dGVyKCk7Cit2YXIgdGVzdE9iamVjdCA9IHsgX19wcm90b19fOiB0YXJn
ZXQgfQordmFyIHJlc3VsdCA9IHsKKyAgICByZXN1bHQ6IHVuZGVmaW5lZAorfTsKKwordGVzdE9i
amVjdC5jdXN0b21WYWx1ZSA9IHJlc3VsdDsKKworc2hvdWxkQmUocmVzdWx0LnJlc3VsdCwgdGFy
Z2V0KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMv
dGVzdDI2Mi9jb25maWcueWFtbAppbmRleCA5YTRjNWU3MzEzMjA4ZjYwNDRjZWQxYjcxYzMyMzYz
MWEyNGI1NDQ2Li45Mjk5ZTdhNWNkMGQyOGI0Mjc2NWRjYjhhMzQzMjliZDVmZTBkZWFlIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L2NvbmZpZy55YW1sCkBAIC0xNyw3ICsxNyw2IEBAIHNraXA6CiAgICAgLSBBdG9taWNzLndhaXRB
c3luYwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDkz
MQogICAgIC0gcmVnZXhwLWxvb2tiZWhpbmQKLSAgICAtIGxlZ2FjeS1yZWdleHAKIAogICAgIC0g
Y2xhc3MtbWV0aG9kcy1wcml2YXRlCiAgICAgLSBjbGFzcy1zdGF0aWMtbWV0aG9kcy1wcml2YXRl
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNzBiNjA3NmMwODY4MWZmMWY5ZjE2ZDc1
N2QzMDgyYzQ1Njg4MDY5OS4uOTA0ZGI2ODQwYjFlYmYxYmFkMWNlYTBhM2Y4NWVlZGJlOGI5YzAy
YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtNSw2ICs1LDEyIEBAIHRlc3QvYW5u
ZXhCL2J1aWx0LWlucy9GdW5jdGlvbi9jcmVhdGVkeW5mbi1odG1sLWNsb3NlLWNvbW1lbnQtcGFy
YW1zLmpzOgogdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9uL2NyZWF0ZWR5bmZuLWh0bWwt
b3Blbi1jb21tZW50LXBhcmFtcy5qczoKICAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICd9Jy4gRXhwZWN0ZWQgYSBwYXJhbWV0ZXIgcGF0dGVybiBvciBhICcpJyBpbiBw
YXJhbWV0ZXIgbGlzdC4iCiAgIHN0cmljdCBtb2RlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gJ30nLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFt
ZXRlciBsaXN0LiIKK3Rlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBp
bGUvdGhpcy1jcm9zcy1yZWFsbS1pbnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhy
b3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IGBSZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuY2FsbChvdGhlclJlYWxtX3JlZ2V4cClgIHRocm93
cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2FubmV4Qi9idWlsdC1pbnMvUmVnRXhwL3By
b3RvdHlwZS9jb21waWxlL3RoaXMtc3ViY2xhc3MtaW5zdGFuY2UuanM6CisgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IGBzdWJjbGFzc19yZWdleHAuY29tcGlsZSgpYCB0aHJvd3MgVHlwZUVycm9y
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3Jl
Z2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tp
cC1lYXJseS1lcnItYmxvY2suanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEFuIGluaXRp
YWxpemVkIGJpbmRpbmcgaXMgbm90IGNyZWF0ZWQgcHJpb3IgdG8gZXZhbHVhdGlvbiBFeHBlY3Rl
ZCBhIFJlZmVyZW5jZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsJwogdGVzdC9hbm5leEIvbGFuZ3VhZ2UvZXZhbC1jb2RlL2RpcmVjdC9mdW5jLWJs
b2NrLWRlY2wtZXZhbC1mdW5jLXNraXAtZWFybHktZXJyLWZvci1pbi5qczoKQEAgLTY4MSw2ICs2
ODcsOSBAQCB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYXN5bmMt
bWV0aG9kLWNsYXNzLXN0YXRlbWVudC5qczoKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3Rv
dHlwZS90b1N0cmluZy9hc3luYy1tZXRob2Qtb2JqZWN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJhc3luYyBmdW5jdGlv
biBmKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8gfSIgKGFzeW5jIGYgLyogYSAqLyAoIC8q
IGIgKi8gKSAvKiBjICovIHsgLyogZCAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYo
IC8qIGIgKi8gKSAvKiBjICovIHsgLyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAq
LyApIC8qIGMgKi8geyAvKiBkICovIH0pJwordGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90
eXBlL3RvU3RyaW5nL2J1aWx0LWluLWZ1bmN0aW9uLW9iamVjdC5qczoKKyAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24g
JCooKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKKyAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1
bmN0aW9uICQqKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iICglUmVnRXhwJS4kKiknCiB0ZXN0
L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvZnVuY3Rpb24tZGVjbGFyYXRp
b24tbm9uLXNpbXBsZS1wYXJhbWV0ZXItbGlzdC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAq
LyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyog
aSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0i
IChmdW5jdGlvbiAvKiBhICovIGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAq
LyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyog
ayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9u
IGYoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyog
aCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsg
LyogbiAqLyB9IiAoZnVuY3Rpb24gLyogYSAqLyBmIC8qIGIgKi8gKCAvKiBjICovIGEgLyogZCAq
LyA9IC8qIGUgKi8gMCAvKiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyog
aiAqLyAwIC8qIGsgKi8gfSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSknCkBAIC03NjYs
OSArNzc1LDYgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9w
ZXJ0eS9jb25zaXN0ZW50LXZhbHVlLWZ1bmN0aW9uLWFyZ3UKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrbnVsbMK7LCDCq1tvYmplY3QgQXJndW1lbnRzXcK7
KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Q
cm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLWZ1bmN0aW9uLWNhbGxlci5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrbnVsbMK7LCDCq2Z1bmN0aW9uIGco
KSB7JwotdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9j
b25zaXN0ZW50LXZhbHVlLXJlZ2V4cC1kb2xsYXIxLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJlIHRydWUnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRv
IGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUt
cHJvcGVydHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5n
dGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xlbmd0aCwg
YV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416976</attachid>
            <date>2021-01-05 00:50:54 -0800</date>
            <delta_ts>2021-07-23 19:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210105005053.patch</filename>
            <type>text/plain</type>
            <size>80266</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YTQxMDc2YWU4ZGMxZjdkMzdkM2VhY2U0ZDc4MDJiOGIzODczMjdmLi42NTU2M2EyMDExZjVjNDMz
MDc1YzYzNGVkMGViNjczZmY1MjY2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMS0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3Nv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBhIHBhcnQgb2YgWzFdLiBXZSBkZWZpbmUgZGV0YWlsZWQgYmVoYXZp
b3Igb2YgbGVnYWN5IFJlZ0V4cCBjb25zdHJ1Y3RvciBhY2Nlc3NvcnMgKGUuZy4gUmVnRXhwLiQx
KS4KKyAgICAgICAgQW5kIHRoaXMgcGF0Y2ggYWxpZ25zIEpTQydzIGltcGxlbWVudGF0aW9uIHRv
IHRoYXQuIFRoaXMgY2hhbmdlIG1ha2VzIHRoZXNlIEN1c3RvbVZhbHVlIGZpZWxkcyB0byBhY2Nl
c3NvcnMuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwKKworICAgICAgICAxLiBXZSB1c2UgQWNj
ZXNzb3IgYXR0cmlidXRlcyB0byBtYWtlIGdldHRlciAvIHNldHRlciBmb3IgdGhlc2UgZmllbGRz
LiBUaGlzIHBhdGNoIGFkZHMgc2V0dGVyIHN1cHBvcnQgZm9yIEFjY2Vzc29yIExVVCBmaWVsZC4K
KyAgICAgICAgMi4gV2UgdXBkYXRlIGVudW1lcmFibGUgZXRjLiBvZiB0aGVzZSBmaWVsZHMuCisg
ICAgICAgIDMuIFdlIHVwZGF0ZSB0ZXN0cyB0aGF0IGFyZSB1c2luZyBSZWdFeHAgdG8gdGVzdCBj
dXN0b20gdmFsdWVzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJv
cG9zYWwtcmVnZXhwLWxlZ2FjeS1mZWF0dXJlcworCisgICAgICAgICogY3JlYXRlX2hhc2hfdGFi
bGU6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBy
dW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0RhdGFWaWV3UHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjdXN0
b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KToKKyAgICAgICAgKEpT
Qzo6Z2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIpOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6cmVpZnlTdGF0aWNBY2Nlc3Nv
cik6CisgICAgICAgIChKU0M6OnNldFVwQW5kQ2FsbFN0YXRpY1NldHRlclNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAg
KEpTQzo6bG9va3VwUHV0KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKToKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFByb3RvdHlwZS5j
cHA6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6Cisg
ICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHA6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHA6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcDoKKwogMjAyMC0xMi0xNiAgVGFk
ZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yIG11c3QgY2hlY2sgaXQgY2FuIHN0aWxsIHRha2UgdGhlIGZhc3QgcGF0aCBhZnRl
ciBnZXRHZW5lcmljUHJvcGVydHlOYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNo
X3RhYmxlCmluZGV4IGI1YzhkYjcxNTI2YWFiMmYxNGM5NjRlMzIzNGI1NWU0YTAwMTFmNjQuLjBl
YTNmNDQ2NWUxM2RkMGZjNWE5ZGQ4ODRmZGIzN2M5YmQ3ZjdlY2IgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTk0LDkgKzk0LDEyIEBAIHdoaWxlICg8SU4+KSB7
CiAgICAgICAgIGlmICgkYXR0ID1+IG0vRnVuY3Rpb24vKSB7CiAgICAgICAgICAgICBwdXNoKEB2
YWx1ZXMsIHsgInR5cGUiID0+ICJQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24iLCAiZnVuY3Rp
b24iID0+ICR2YWwsICJwYXJhbXMiID0+IChsZW5ndGgoJHBhcmFtKSA/ICRwYXJhbSA6ICIiKSwg
ImludHJpbnNpYyIgPT4gKGxlbmd0aCgkaW50cmluc2ljKSA/ICRpbnRyaW5zaWMgOiAiTm9JbnRy
aW5zaWMiKSB9KTsKICAgICAgICAgICAgICNwcmludGYgU1RERVJSICJXQVJOSU5HOiBOdW1iZXIg
b2YgYXJndW1lbnRzIG1pc3NpbmcgZm9yICRrZXkvJHZhbFxuIiBpZiAobGVuZ3RoKCRwYXJhbSkg
PT0gMCk7Ci0gICAgICAgIH0gZWxzaWYgKCRhdHQgPX4gbS9BY2Nlc3Nvci8pIHsKKyAgICAgICAg
fSBlbHNpZiAoJGF0dCA9fiBtL0FjY2Vzc29yLyAmJiAhKCRhdHQgPX4gbS9DdXN0b21BY2Nlc3Nv
ci8pKSB7CiAgICAgICAgICAgICBteSAkZ2V0ID0gJHZhbDsKICAgICAgICAgICAgIG15ICRwdXQg
PSAibnVsbHB0ciI7CisgICAgICAgICAgICBpZiAoISgkYXR0ID1+IG0vUmVhZE9ubHkvKSkgewor
ICAgICAgICAgICAgICAgICRwdXQgPSAic2V0IiAuIGpzY191Y2ZpcnN0KCR2YWwpOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgJGhhc1NldHRlciA9ICJ0cnVlIjsKICAgICAgICAgICAgIHB1
c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciIsICJn
ZXQiID0+ICRnZXQsICJwdXQiID0+ICRwdXQgfSk7CiAgICAgICAgIH0gZWxzaWYgKCRhdHQgPX4g
bS9DZWxsUHJvcGVydHkvKSB7CkBAIC0xMTAsNyArMTEzLDcgQEAgd2hpbGUgKDxJTj4pIHsKICAg
ICAgICAgICAgIHB1c2goQHZhbHVlcywgeyAidHlwZSIgPT4gIlByb3BlcnR5QXR0cmlidXRlOjpQ
cm9wZXJ0eUNhbGxiYWNrIiwgImNiYWNrIiA9PiAkY2JhY2sgfSk7CiAgICAgICAgIH0gZWxzaWYg
KGxlbmd0aCgkYXR0KSkgewogICAgICAgICAgICAgbXkgJGdldCA9ICR2YWw7Ci0gICAgICAgICAg
ICBteSAkcHV0ID0gIjAiOworICAgICAgICAgICAgbXkgJHB1dCA9ICJudWxscHRyIjsKICAgICAg
ICAgICAgIGlmICghKCRhdHQgPX4gbS9SZWFkT25seS8pKSB7CiAgICAgICAgICAgICAgICAgJHB1
dCA9ICJzZXQiIC4ganNjX3VjZmlyc3QoJHZhbCk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNw
cAppbmRleCAwNGNjZGMwNmVlMzM0MmY1ODg2ZWEzOTlhZDY0YTFjODNjNGM0ZTBmLi4wY2U1YmJk
YzkxNGVjNDBhY2MxNzZkZjdhMGQ2OGRhZDYwMjZjOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKQEAgLTQ3
LDcgKzQ3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEludGxDb2xsYXRvclByb3RvdHlwZTo6c19pbmZv
ID0geyAiSW50bC5Db2xsYXRvciIsICZCYXNlOjpzX2luZm8KIAogLyogU291cmNlIGZvciBJbnRs
Q29sbGF0b3JQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBjb2xsYXRvclByb3RvdHlwZVRhYmxlCi0g
IGNvbXBhcmUgICAgICAgICAgSW50bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSAgICAg
ICAgRG9udEVudW18QWNjZXNzb3IKKyAgY29tcGFyZSAgICAgICAgICBJbnRsQ29sbGF0b3JQcm90
b3R5cGVHZXR0ZXJDb21wYXJlICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQogICBy
ZXNvbHZlZE9wdGlvbnMgIEludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMg
IERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQKICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApp
bmRleCA3MzhjOGM2NGJiMmZiNmI2NGMwMGViNzI2YzgzNTZkNWIxY2E1OTY3Li5lMTQwNjY3NTRj
ZDc4YTk2YTZhM2Q2NTE1ZDdkYjg1ZTVjNTYyMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5j
cHAKQEAgLTUzLDcgKzUzLDcgQEAgY29uc3QgQ2xhc3NJbmZvIEludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZTo6c19pbmZvID0geyAiSW50bC5EYXRlVGltZUZvcm1hdCIsICYKIAogLyogU291cmNl
IGZvciBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUubHV0LmgKIEBiZWdpbiBkYXRlVGltZUZv
cm1hdFByb3RvdHlwZVRhYmxlCi0gIGZvcm1hdCAgICAgICAgICAgICAgICBJbnRsRGF0ZVRpbWVG
b3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQgICAgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29y
CisgIGZvcm1hdCAgICAgICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0
ZXJGb3JtYXQgICAgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CiAgIGZvcm1h
dFJhbmdlICAgICAgICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFu
Z2UgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKICAgZm9ybWF0VG9QYXJ0cyAgICAgICAg
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMQogICByZXNvbHZlZE9wdGlvbnMgICAgICAgSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyAgICAgICBEb250RW51bXxGdW5jdGlvbiAw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVQcm90
b3R5cGUuY3BwCmluZGV4IDFlMWVlYjg2MzM1ZmI2MDk2NWJhOWMxMDNkNzg2NDk3MjU3YTBiMzMu
Ljc1NWMzOGUxOWMxMTdkOWNkYTcwNDU3NTczMjJjMDc5NjBiMGI5MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCkBA
IC01OCwxNiArNTgsMTYgQEAgY29uc3QgQ2xhc3NJbmZvIEludGxMb2NhbGVQcm90b3R5cGU6OnNf
aW5mbyA9IHsgIkludGwuTG9jYWxlIiwgJkJhc2U6OnNfaW5mbywgJmwKICAgbWF4aW1pemUgICAg
ICAgICBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGltaXplICAgICAgICAgICBEb250RW51bXxG
dW5jdGlvbiAwCiAgIG1pbmltaXplICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5p
bWl6ZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMAogICB0b1N0cmluZyAgICAgICAgIElu
dGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDAKLSAgYmFzZU5hbWUgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUg
ICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBjYWxlbmRhciAgICAgICAgIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYWxlbmRhciAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCi0gIGNhc2VG
aXJzdCAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdCAgICAgICAgRG9u
dEVudW18QWNjZXNzb3IKLSAgY29sbGF0aW9uICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyQ29sbGF0aW9uICAgICAgICBEb250RW51bXxBY2Nlc3NvcgotICBob3VyQ3ljbGUgICAgICAg
IEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJIb3VyQ3ljbGUgICAgICAgIERvbnRFbnVtfEFjY2Vz
c29yCi0gIG51bWVyaWMgICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWVyaWMg
ICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgbnVtYmVyaW5nU3lzdGVtICBJbnRsTG9jYWxl
UHJvdG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtICBEb250RW51bXxBY2Nlc3NvcgotICBsYW5n
dWFnZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSAgICAgICAgIERv
bnRFbnVtfEFjY2Vzc29yCi0gIHNjcmlwdCAgICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlclNjcmlwdCAgICAgICAgICAgRG9udEVudW18QWNjZXNzb3IKLSAgcmVnaW9uICAgICAgICAg
ICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9uICAgICAgICAgICBEb250RW51bXxBY2Nl
c3NvcgorICBiYXNlTmFtZSAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFt
ZSAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CisgIGNhbGVuZGFyICAgICAgICAg
SW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFyICAgICAgICAgRG9udEVudW18QWNjZXNz
b3J8UmVhZE9ubHkKKyAgY2FzZUZpcnN0ICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVy
Q2FzZUZpcnN0ICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBjb2xsYXRpb24g
ICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24gICAgICAgIERvbnRFbnVt
fEFjY2Vzc29yfFJlYWRPbmx5CisgIGhvdXJDeWNsZSAgICAgICAgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlckhvdXJDeWNsZSAgICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgbnVt
ZXJpYyAgICAgICAgICBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyAgICAgICAgICBE
b250RW51bXxBY2Nlc3NvcnxSZWFkT25seQorICBudW1iZXJpbmdTeXN0ZW0gIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0gIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5
CisgIGxhbmd1YWdlICAgICAgICAgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1YWdlICAg
ICAgICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkKKyAgc2NyaXB0ICAgICAgICAgICBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0ICAgICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxS
ZWFkT25seQorICByZWdpb24gICAgICAgICAgIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdp
b24gICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CiBAZW5kCiAqLwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGUuY3BwCmluZGV4IDJlZTk4MjkzNGI0MzA0Zjg5OTg5ZmE5ZTIzYWUwNmMwOWNk
MGU2YmUuLjI2MDdhZmQyYzk2M2UzMzdmZmNjNTc0NzkwZDY1ZmNhNGI2NTk3NDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGUuY3BwCkBAIC00OSw3ICs0OSw3IEBAIGNvbnN0IENsYXNzSW5mbyBJbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJJbnRsLk51bWJlckZvcm1hdCIsICZCYXNl
CiAKIC8qIFNvdXJjZSBmb3IgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5sdXQuaAogQGJlZ2lu
IG51bWJlckZvcm1hdFByb3RvdHlwZVRhYmxlCi0gIGZvcm1hdCAgICAgICAgICAgSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yCisg
IGZvcm1hdCAgICAgICAgICAgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCAg
ICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJlYWRPbmx5CiAgIGZvcm1hdFRvUGFydHMgICAgSW50
bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDEKICAgcmVzb2x2ZWRPcHRpb25zICBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyAgRG9udEVudW18RnVuY3Rpb24gMAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAppbmRleCBm
NzM0ZjU2Yjg3YjcyZWRjYWEyOWU3OTM4NTAyYjAwMDY2YzUzZDM4Li5lZDg3NmQ0Y2VmYWE4Y2Iz
OWJhN2E3NmRlMDlhOTY2ZGI4ZDY1NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAtNTMsOSArNTMsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgc2V0VWludDMyICAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9GdW5j
U2V0VWludDMyICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAyICBEYXRhVmlld1Nl
dFVpbnQzMgogICBzZXRGbG9hdDMyICAgICAgICAgICAgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9h
dDMyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDIgIERhdGFWaWV3U2V0RmxvYXQz
MgogICBzZXRGbG9hdDY0ICAgICAgICAgICAgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0ICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDIgIERhdGFWaWV3U2V0RmxvYXQ2NAotICBi
dWZmZXIgICAgICAgICAgICAgICAgZGF0YVZpZXdQcm90b0dldHRlckJ1ZmZlciAgICAgICAgICAg
IERvbnRFbnVtfEFjY2Vzc29yICAgICAgIDAKLSAgYnl0ZUxlbmd0aCAgICAgICAgICAgIGRhdGFW
aWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoICAgICAgICBEb250RW51bXxBY2Nlc3NvciAgICAgICAw
Ci0gIGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZU9mZnNldCAg
ICAgICAgRG9udEVudW18QWNjZXNzb3IgICAgICAgMAorICBidWZmZXIgICAgICAgICAgICAgICAg
ZGF0YVZpZXdQcm90b0dldHRlckJ1ZmZlciAgICAgICAgICAgIERvbnRFbnVtfEFjY2Vzc29yfFJl
YWRPbmx5ICAgICAgIDAKKyAgYnl0ZUxlbmd0aCAgICAgICAgICAgIGRhdGFWaWV3UHJvdG9HZXR0
ZXJCeXRlTGVuZ3RoICAgICAgICBEb250RW51bXxBY2Nlc3NvcnxSZWFkT25seSAgICAgICAwCisg
IGJ5dGVPZmZzZXQgICAgICAgICAgICBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZU9mZnNldCAgICAg
ICAgRG9udEVudW18QWNjZXNzb3J8UmVhZE9ubHkgICAgICAgMAogQGVuZAogKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGFk
NzRjZDYyZTMwMDQ2ZDE2N2FlMzc2YjY4NWMzMjg0M2I3YmUzMDAuLjQ3MjhkNjEzZjQ3MTAyZmVk
NTAyODVkNGI5NGNkOGU3YTgzMzFhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUwMyw2ICs1MDMsNyBAQCBKU0dsb2JhbE9i
amVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
R2xvYmFsT2JqZWN0TQogICAgICwgbV9udW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQoSXNXYXRj
aGVkKQogICAgICwgbV9ydW50aW1lRmxhZ3MoKQogICAgICwgbV9zdGFja1RyYWNlTGltaXQoT3B0
aW9uczo6ZGVmYXVsdEVycm9yU3RhY2tUcmFjZUxpbWl0KCkpCisgICAgLCBtX2N1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uTWFwKHZtKQogICAgICwgbV9nbG9iYWxPYmplY3RNZXRob2RUYWJsZShn
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA/IGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIDogJnNfZ2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA0Y2IwNTMyNWFhZDZiMzkzM2E4YTIyOWVkYjNj
OGU0OWFjNTE4YjZkLi42M2Q2ZGYyZjAxNWY4OTY2MmQ5ZDY1OTQzMWZkNjQ3ZmQ5MWM1OTk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAg
LTU0MCw2ICs1NDAsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0IHsKICAgICBib29sIGlzTWFwUHJvdG90eXBlU2V0RmFzdEFuZE5vbk9i
c2VydmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90eXBlQWRkRmFzdEFuZE5vbk9ic2VydmFi
bGUoKTsKIAorICAgIFdlYWtHQ01hcDxzdGQ6OnBhaXI8Q3VzdG9tR2V0dGVyU2V0dGVyKiwgaW50
PiwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbj4mIGN1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uTWFwKCkgeyByZXR1cm4gbV9jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcDsgfQorCiAj
aWYgRU5BQkxFKERGR19KSVQpCiAgICAgdXNpbmcgUmVmZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0
Y2hwb2ludFNldHMgPSBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIFJlZjxXYXRj
aHBvaW50U2V0PiwgSWRlbnRpZmllclJlcEhhc2g+OwogICAgIFJlZmVyZW5jZWRHbG9iYWxQcm9w
ZXJ0eVdhdGNocG9pbnRTZXRzIG1fcmVmZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNl
dHM7CkBAIC01NTQsNiArNTU2LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdz
OwogICAgIENvbnNvbGVDbGllbnQqIG1fY29uc29sZUNsaWVudCB7IG51bGxwdHIgfTsKICAgICBP
cHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGltaXQ7CisgICAgV2Vha0dDTWFwPHN0ZDo6
cGFpcjxDdXN0b21HZXR0ZXJTZXR0ZXIqLCBpbnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uPiBtX2N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwOwogCiAjaWYgQVNTRVJUX0VOQUJM
RUQKICAgICBjb25zdCBKU0dsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3RBdERlYnVnZ2VyRW50
cnkgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKaW5kZXggODgwODRkZjc3YTViYjgzMDJiM2JmNDkyZWViMGQxODkxMjI4Yzc0YS4uYzczNTQ2
OTk4MWIyY2ZlM2ViN2MwZGE2MTM1ZTUwYjZmYmI2MmQxZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtODczLDggKzg3MywxMiBAQCBib29sIEpTT2Jq
ZWN0OjpwdXRJbmxpbmVTbG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eQogICAgICAgICB9CiAgICAgICAgIGlmICghb2JqLT5zdGF0aWNQcm9wZXJ0
aWVzUmVpZmllZCh2bSkpIHsKICAgICAgICAgICAgIGlmIChvYmotPmNsYXNzSW5mbyh2bSktPmhh
c1N0YXRpY1NldHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVzKCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoYXV0byBlbnRyeSA9IG9iai0+ZmluZFByb3BlcnR5SGFzaEVudHJ5KHZtLCBwcm9wZXJ0eU5h
bWUpKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHB1dEVu
dHJ5KGdsb2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5jbGFzc0ZvclRoaXMsIGVudHJ5LT52YWx1
ZSwgb2JqLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSk7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gZW50cnkgPSBvYmotPmZpbmRQcm9wZXJ0eUhhc2hFbnRyeSh2bSwgcHJvcGVy
dHlOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHB1dEVudHJ5KGds
b2JhbE9iamVjdCwgZW50cnktPnRhYmxlLT5jbGFzc0ZvclRoaXMsIGVudHJ5LT52YWx1ZSwgb2Jq
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBB
U1NFUlQocmVzdWx0ICE9IFRyaVN0YXRlOjpJbmRldGVybWluYXRlKTsgLy8gQmVjYXVzZSBwdXRF
bnRyeSBpcyBndWFyZGVkIHdpdGggb2JqLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkgY2Fs
bCBoZXJlLCBwdXRFbnRyeSBuZXZlciByZXR1cm5zIFRyaVN0YXRlOjpJbmRldGVybWluYXRlLgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ID09IFRyaVN0YXRlOjpUcnVlOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAob2Jq
LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSB7CkBAIC0zNTQ4LDEwICszNTUyLDEwIEBAIHN0
YXRpYyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKiBnZXRDdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbkZvckdldHRlclNldHRlCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoZ2V0dGVyU2V0dGVyLCAoaW50KXR5cGUp
OwotICAgIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24qIGN1c3RvbUdldHRlclNldHRlckZ1
bmN0aW9uID0gdm0uY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAuZ2V0KGtleSk7CisgICAg
SlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiogY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24g
PSBnbG9iYWxPYmplY3QtPmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uTWFwKCkuZ2V0KGtleSk7
CiAgICAgaWYgKCFjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikgewogICAgICAgICBjdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbiA9IEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXJTZXR0ZXIsIHR5cGUsIHByb3BlcnR5TmFtZS5wdWJs
aWNOYW1lKCkpOwotICAgICAgICB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcC5zZXQo
a2V5LCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbik7CisgICAgICAgIGdsb2JhbE9iamVjdC0+
Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25NYXAoKS5zZXQoa2V5LCBjdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCmluZGV4IGU1NzRj
ZDQxMzE4NmQ3MDk4NzY5MzhmYWQyYmM0OWVmNTc1MmU4MDAuLmI2MzVmMzU3NzExMzY4MjE0OTBh
ZWViMmI2ODFmZTRlNzllN2Y0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9v
a3VwLmNwcApAQCAtMzksNyArMzksMTggQEAgdm9pZCByZWlmeVN0YXRpY0FjY2Vzc29yKFZNJiB2
bSwgY29uc3QgSGFzaFRhYmxlVmFsdWUmIHZhbHVlLCBKU09iamVjdCYgdGhpc09iamUKICAgICAg
ICAgICAgIGdldHRlciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCBn
ZXR0ZXJOYW1lLCB2YWx1ZS5hY2Nlc3NvckdldHRlcigpKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgZ2V0dGVyLCBudWxscHRyKTsKKyAgICBKU09iamVjdCogc2V0dGVyID0gbnVsbHB0
cjsKKyAgICBpZiAodmFsdWUuYWNjZXNzb3JTZXR0ZXIoKSkgeworICAgICAgICBpZiAodmFsdWUu
YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4pCisgICAgICAgICAgICBz
ZXR0ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHZhbHVlLmJ1aWx0aW5BY2Nlc3NvclNldHRl
ckdlbmVyYXRvcigpKHZtKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBTdHJpbmcgc2V0dGVyTmFtZSA9IHRyeU1ha2VTdHJpbmcoInNldCAiX3MsIFN0cmluZygq
cHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSkpOworICAgICAgICAgICAgaWYgKCFzZXR0ZXJOYW1l
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHNldHRlciA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCBzZXR0ZXJOYW1lLCB2YWx1ZS5hY2Nlc3Nv
clNldHRlcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29y
ID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIp
OwogICAgIHRoaXNPYmplY3QucHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgcHJvcGVydHlO
YW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkp
KTsKIH0KIApAQCAtNzMsNCArODQsMzQgQEAgYm9vbCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChW
TSYgdm0sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBIYXNoVGFibGUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorVHJpU3RhdGUgc2V0VXBBbmRDYWxsU3RhdGljU2V0dGVyU2xvdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvLCBjb25zdCBIYXNoVGFibGVWYWx1ZSogZW50cnksIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCit7CisgICAgQVNTRVJUKGJhc2VPYmplY3QtPmdsb2JhbE9iamVjdCh2bSkpOwor
ICAgIEFTU0VSVChlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKTsKKyAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCA9IGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1
dGVzKTsKKworICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKSB7CisgICAgICAgIC8vIElm
IGEgcHJvcGVydHkgaXMgZXZlciBkZWxldGVkIGZyb20gYW4gb2JqZWN0IHdpdGggYSBzdGF0aWMg
dGFibGUsIHRoZW4gd2UgcmVpZnkKKyAgICAgICAgLy8gYWxsIHN0YXRpYyBmdW5jdGlvbnMgYXQg
dGhhdCB0aW1lIC0gYWZ0ZXIgdGhpcyB3ZSBzaG91bGRuJ3QgYmUgcmUtYWRkaW5nIGFueXRoaW5n
LgorICAgICAgICBpZiAoYmFzZU9iamVjdC0+c3RhdGljUHJvcGVydGllc1JlaWZpZWQodm0pKQor
ICAgICAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpJbmRldGVybWluYXRlOworCisgICAgICAgIHJl
aWZ5U3RhdGljUHJvcGVydHkodm0sIGNsYXNzSW5mbywgcHJvcGVydHlOYW1lLCAqZW50cnksICpi
YXNlT2JqZWN0KTsKKworICAgICAgICBvZmZzZXQgPSBiYXNlT2JqZWN0LT5nZXREaXJlY3RPZmZz
ZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7CisgICAgICAgIGlmICghaXNWYWxpZE9m
ZnNldChvZmZzZXQpKSB7CisgICAgICAgICAgICBkYXRhTG9nKCJTdGF0aWMgaGFzaHRhYmxlIGlu
aXRpYWxpYXRpb24gZm9yICIsIHByb3BlcnR5TmFtZSwgIiBkaWQgbm90IHByb2R1Y2UgYSBwcm9w
ZXJ0eS5cbiIpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vIEF0IHRoaXMgcG9pbnQsIHN0b3JlZCB2YWx1ZSBtdXN0
IGJlIEdldHRlclNldHRlciBiZWNhc3VlLAorICAgIC8vIDEuIEluIHRoZSBhYm92ZSBzZXF1ZW5j
ZSwgd2UgcmVpZmllZCBpdC4KKyAgICAvLyAyLiBJZiB0aGUgdmFsdWUgaXMgZGVsZXRlZCwgd2Ug
cmVpZmllZCBhbGwgZmllbGRzLiBTbyBgYmFzZU9iamVjdC0+c3RhdGljUHJvcGVydGllc1JlaWZp
ZWQodm0pYCBtdXN0IGJlIHRydWUuCisgICAgaWYgKCFiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0p
LT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpKQorICAgICAgICBzbG90LnNldENhY2hlYWJsZVNl
dHRlcihiYXNlT2JqZWN0LCBvZmZzZXQpOworICAgIHJldHVybiB0cmlTdGF0ZShjYWxsU2V0dGVy
KGdsb2JhbE9iamVjdCwgc2xvdC50aGlzVmFsdWUoKSwganNDYXN0PEdldHRlclNldHRlcio+KGJh
c2VPYmplY3QtPmdldERpcmVjdChvZmZzZXQpKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkg
PyBFQ01BTW9kZTo6c3RyaWN0KCkgOiBFQ01BTW9kZTo6c2xvcHB5KCkpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
b29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IGE2
ZDBlNzFhYjU4ZDZlOTNlODc5NWI1ODg5YjYyMWUwNWM3NGE3MGIuLmJmZmVlM2JmNjFmZTVmN2Qy
YmQwNjZmYjcyNTUxNmFjMjI0NTJhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xv
b2t1cC5oCkBAIC0yMDQsNiArMjA0LDcgQEAgc3RydWN0IEhhc2hUYWJsZSB7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KFZNJiwgY29uc3QgQ2xh
c3NJbmZvKiwgY29uc3QgSGFzaFRhYmxlVmFsdWUqLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKK0pTX0VYUE9SVF9QUklWQVRFIFRyaVN0YXRlIHNl
dFVwQW5kQ2FsbFN0YXRpY1NldHRlclNsb3QoSlNHbG9iYWxPYmplY3QqLCBWTSYsIGNvbnN0IENs
YXNzSW5mbyosIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiwgSlNPYmplY3QqIHRoaXNPYmplY3QsIFBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHJlaWZ5U3RhdGljQWNjZXNzb3IoVk0mLCBjb25zdCBIYXNoVGFibGVWYWx1ZSYsIEpT
T2JqZWN0JiB0aGlzT2JqZWN0LCBQcm9wZXJ0eU5hbWUpOwogCiBpbmxpbmUgQnVpbHRpbkdlbmVy
YXRvciBIYXNoVGFibGVWYWx1ZTo6YnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29u
c3QKQEAgLTI2Niw3ICsyNjcsNyBAQCBpbmxpbmUgYm9vbCByZXBsYWNlU3RhdGljUHJvcGVydHlT
bG90KFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QsIFByb3BlcnR5TmFtZQogLy8gJ2Jhc2Un
IG1lYW5zIHRoZSBvYmplY3QgaG9sZGluZyB0aGUgcHJvcGVydHkgKHBvc3NpYmx5IGluIHRoZSBw
cm90b3R5cGUgY2hhaW4gb2YgdGhlIG9iamVjdCBwdXQgd2FzIGNhbGxlZCBvbikuCiAvLyAndGhp
c1ZhbHVlJyBpcyB0aGUgb2JqZWN0IHRoYXQgcHV0IGlzIGJlaW5nIGFwcGxpZWQgdG8gKGluIHRo
ZSBjYXNlIG9mIGEgcHJveHksIHRoZSBwcm94eSB0YXJnZXQpLgogLy8gJ3Nsb3QudGhpc1ZhbHVl
KCknIGlzIHRoZSBvYmplY3QgdGhlIHB1dCB3YXMgb3JpZ2luYWxseSBwZXJmb3JtZWQgb24gKGlu
IHRoZSBjYXNlIG9mIGEgcHJveHksIHRoZSBwcm94eSBpdHNlbGYpLgotaW5saW5lIGJvb2wgcHV0
RW50cnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQ2xhc3NJbmZvKiwgY29u
c3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFzZSwgSlNPYmplY3QqIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQoraW5saW5lIFRyaVN0YXRlIHB1dEVudHJ5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBIYXNoVGFibGVW
YWx1ZSogZW50cnksIEpTT2JqZWN0KiBiYXNlLCBKU09iamVjdCogdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzgsMTMgKzI3OSwxNiBAQCBpbmxpbmUgYm9v
bCBwdXRFbnRyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0luZm8q
LCBjb25zdCBIYXNoVAogICAgICAgICAgICAgLy8gRklYTUU6IHRoaXNWYWx1ZSBtYXkgYmUgYW4g
b2JqZWN0IHdpdGggbm9uLWV4dGVuc2libGUgc3RydWN0dXJlIHdlIG11c3QgdGhyb3cgZm9yLgog
ICAgICAgICAgICAgaWYgKEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU09i
amVjdCo+KHZtLCB0aGlzVmFsdWUpKQogICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERp
cmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybiBUcmlTdGF0ZTo6VHJ1ZTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCks
IFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIHRyaVN0YXRlKHR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9kZSgpLCBSZWFkb25s
eVByb3BlcnR5V3JpdGVFcnJvcikpOwogICAgIH0KIAotICAgIGlmIChlbnRyeS0+YXR0cmlidXRl
cygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKQotICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJv
cGVydHlXcml0ZUVycm9yKTsKKyAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3NvcikgeworICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiB0cmlTdGF0
ZSh0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgUmVh
ZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBzZXRVcEFuZENhbGxTdGF0aWNTZXR0ZXJTbG90KGdsb2JhbE9iamVjdCwgdm0sIGNsYXNz
SW5mbywgZW50cnksIGJhc2UsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKTsKKyAgICB9CiAK
ICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KSkgewogICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCEoZW50cnktPmF0dHJpYnV0ZXMo
KSAmIFByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCAiRE9NSklUQXR0cmlidXRl
IHN1cHBvcnRzIHJlYWRvbmx5IGF0dHJpYnV0ZXMgY3VycmVudGx5LiIpOwpAQCAtMjk4LDE3ICsz
MDIsMTcgQEAgaW5saW5lIGJvb2wgcHV0RW50cnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFzaFQKICAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tVmFsdWUoYmFzZSwgZW50cnktPnByb3BlcnR5UHV0dGVyKCkpOwogCiAgICAgICAgIGF1dG8g
cmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihnbG9iYWxPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eVB1
dHRlcigpLCBpc0FjY2Vzc29yLCBiYXNlLCBzbG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgVHJpU3RhdGU6OkZhbHNlKTsKICAgICAgICAgaWYgKHJlc3VsdCAh
PSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQgPT0g
VHJpU3RhdGU6OlRydWU7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgICAgIC8v
IEZJWE1FOiB0aGlzVmFsdWUgbWF5IGJlIGFuIG9iamVjdCB3aXRoIG5vbi1leHRlbnNpYmxlIHN0
cnVjdHVyZSB3ZSBtdXN0IHRocm93IGZvci4KICAgICAgICAgaWYgKEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpKQogICAgICAgICAg
ICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBUcmlTdGF0ZTo6VHJ1ZTsKICAgICB9CiAK
LSAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RN
b2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKKyAgICByZXR1cm4gdHJpU3RhdGUo
dHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRv
bmx5UHJvcGVydHlXcml0ZUVycm9yKSk7CiB9CiAKIC8qKgpAQCAtMzIzLDcgKzMyNyw4IEBAIGlu
bGluZSBib29sIGxvb2t1cFB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKCiAgICAgaWYgKCFlbnRyeSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcHV0UmVzdWx0ID0gcHV0RW50cnkoZ2xvYmFsT2JqZWN0LCB0YWJsZS5jbGFz
c0ZvclRoaXMsIGVudHJ5LCBiYXNlLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
KyAgICBhdXRvIHJlc3VsdCA9IHB1dEVudHJ5KGdsb2JhbE9iamVjdCwgdGFibGUuY2xhc3NGb3JU
aGlzLCBlbnRyeSwgYmFzZSwgYmFzZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAg
cHV0UmVzdWx0ID0gcmVzdWx0ID09IFRyaVN0YXRlOjpUcnVlOwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNGEzMDhiZDlkYWU0NWJjODY2NGM5Y2ZlODRhYTlkNjc5NWRmMTllMS4u
NzFkY2NkODAzMGNlNzVhNzM1ODU0NjliMmMwYWE1ZDc5YjMwNjllYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjks
MjMgKzI5LDIzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvcklucHV0KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKTsKLXN0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKTsKLXN0YXRpYyBK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKTsKLXN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRl
eHQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JS
aWdodENvbnRleHQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIxKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyMik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYpOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KTsKLXN0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk7Ci1zdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkpOwotc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dCk7Ci1z
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rv
cklucHV0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENv
bnN0cnVjdG9yTGFzdE1hdGNoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJl
Z0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyNSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjYpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI3KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyOCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCkBAIC01NywyNyArNTcsMjcgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIAogLyogU291
cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaAogQGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9y
VGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAg
ICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAg
ICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0Y2ggICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJCYgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51
bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAgbGVmdENvbnRl
eHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERv
bnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICByaWdodENvbnRleHQgICAgcmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJCcgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25s
eXxEb250RW51bQotICAgICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAg
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgIGlucHV0ICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIEFjY2Vzc29yfERvbnRFbnVtCisg
ICAgJF8gICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgQWNjZXNz
b3J8RG9udEVudW0KKyAgICBtdWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUgICAgICBBY2Nlc3NvcnxEb250RW51bQorICAgICQqICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZSAgICAgIEFjY2Vzc29yfERvbnRFbnVtCisgICAgbGFzdE1hdGNoICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9u
dEVudW0KKyAgICAkJiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAg
ICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAg
JCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAgICAgQWNjZXNzb3J8
UmVhZE9ubHl8RG9udEVudW0KKyAgICBsZWZ0Q29udGV4dCAgICAgcmVnRXhwQ29uc3RydWN0b3JM
ZWZ0Q29udGV4dCAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICRgICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIEFjY2Vzc29yfFJlYWRPbmx5fERv
bnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0
ICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkJyAgICAgICAgICAgICAgcmVnRXhw
Q29uc3RydWN0b3JSaWdodENvbnRleHQgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAg
ICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIEFjY2Vzc29y
fFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMiAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkMyAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzICAgICAgICBBY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQgICAg
ICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDUgICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAg
ICAkNiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2ICAgICAgICBBY2Nlc3Nv
cnxSZWFkT25seXxEb250RW51bQorICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjcgICAgICAgIEFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDggICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAgICAgICAgQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICAkOSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5ICAg
ICAgICBBY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQogQGVuZAogKi8KIApAQCAtMTAxLDExMyAr
MTAxLDEzMCBAQCB2b2lkIFJlZ0V4cENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IFJlZ0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlLAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4K
LWlubGluZSBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK2lubGlu
ZSBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICBpZiAodGhpc1ZhbHVlICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4
cC4kTiBnZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5nZXRCYWNrcmVmKGdsb2JhbE9iamVjdCwgTikpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXJJbXBsPDE+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwyPihn
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFs
dWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFySW1wbDwzPihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDM+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJv
cGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDQ+KGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw1PihnbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw2
PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDY+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlz
VmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsK
KyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDc+KGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
cHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDg+
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9Ci1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw5PihnbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVn
RXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBnZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxP
YmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5pbnB1dCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBp
ZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVj
dG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJSZWdFeHAubXVsdGlsaW5lIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3Ig
YXMgfHRoaXN8Il9zKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihnbG9i
YWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5tdWx0aWxpbmUoKSkpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJhY2tyZWYoZ2xv
YmFsT2JqZWN0LCAwKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoY2FsbEZyYW1lLT50
aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubGFz
dE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsK
KyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmpl
Y3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2JhbE9iamVjdCwgMCkpKTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4sIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rv
cio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRM
YXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkp
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJS
ZWdFeHAubGFzdFBhcmVuIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRo
aXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0
Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cENvbnN0cnVjdG9yTGVm
dENvbnRleHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdF
eHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0
KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhw
Q29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlJlZ0V4cC5sZWZ0Q29udGV4dCBnZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNv
bnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0TGVmdENv
bnRleHQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihy
ZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2Jh
bE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChnbG9iYWxPYmplY3Qp
KTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpICE9
IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0
dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UmVnRXhwQ29uc3RydWN0
b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0g
anNEeW5hbWljQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSkpIHsKLSAgICAgICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
KS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAg
IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwg
c3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENv
bnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJSZWdFeHAuaW5wdXQgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOworICAgIGF1dG8qIHN0cmluZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5zZXRJbnB1dChnbG9iYWxPYmplY3QsIHN0cmluZyk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1p
Y0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
KSB7Ci0gICAgICAgIGJvb2wgbXVsdGlsaW5lID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b0Jv
b2xlYW4oZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKLSAgICAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gY29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBnbG9i
YWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5zZXRNdWx0aWxpbmUobXVsdGlsaW5lKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkp
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJS
ZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRo
aXN8Il9zKTsKKyAgICBib29sIG11bHRpbGluZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9C
b29sZWFuKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxE
YXRhKCkuc2V0TXVsdGlsaW5lKG11bHRpbGluZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAogaW5saW5lIFN0cnVjdHVyZSogZ2V0UmVnRXhwU3RydWN0
dXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbmV3VGFyZ2V0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKaW5k
ZXggOWU4NWE5NmM3YWU4YmE2MWUzOGQ2OTE2MTg2OGVjNDYwMDg2ZDQ1Yi4uNTE4OTZjNzNiNDRk
ZDg1NTQzYWVlMWYzOGUzNjBiN2RlMDRmNGExMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIGNvbnN0
IENsYXNzSW5mbyBTeW1ib2xQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlN5bWJvbCIsICZCYXNlOjpz
X2luZm8sICZzeW1ib2xQcm90CiAKIC8qIFNvdXJjZSBmb3IgU3ltYm9sUHJvdG90eXBlLmx1dC5o
CiBAYmVnaW4gc3ltYm9sUHJvdG90eXBlVGFibGUKLSAgZGVzY3JpcHRpb24gICAgICAgc3ltYm9s
UHJvdG9HZXR0ZXJEZXNjcmlwdGlvbiAgICBEb250RW51bXxBY2Nlc3NvciAwCisgIGRlc2NyaXB0
aW9uICAgICAgIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24gICAgRG9udEVudW18QWNjZXNz
b3J8UmVhZE9ubHkgMAogICB0b1N0cmluZyAgICAgICAgICBzeW1ib2xQcm90b0Z1bmNUb1N0cmlu
ZyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKICAgdmFsdWVPZiAgICAgICAgICAgc3ltYm9s
UHJvdG9GdW5jVmFsdWVPZiAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggODQwM2UyYzgxYzcyNjgxYzBkNTEwODc5
YThiZTk4MGY2ZTFlMGY4Yy4uNjc3YjBlOTM5OTliMzVlMWM5YmI5YjQ2NmQ4MjFjMmUyMTU3MTIz
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzg2LDcgKzM4Niw2IEBA
IFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSwgV1RGOjpSdW5Mb29wKiBy
dW5Mb29wLCBib29sKiBzdWNjZXNzKQogICAgICwgcHJvcGVydHlOYW1lcyhudWxscHRyKQogICAg
ICwgZW1wdHlMaXN0KG5ldyBBcmdMaXN0KQogICAgICwgbWFjaGluZUNvZGVCeXRlc1BlckJ5dGVj
b2RlV29yZEZvckJhc2VsaW5lSklUKG1ha2VVbmlxdWU8U2ltcGxlU3RhdHM+KCkpCi0gICAgLCBj
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbk1hcCgqdGhpcykKICAgICAsIHN0cmluZ0NhY2hlKCp0
aGlzKQogICAgICwgc3ltYm9sSW1wbFRvU3ltYm9sTWFwKCp0aGlzKQogICAgICwgc3RydWN0dXJl
Q2FjaGUoKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCAyN2FhZmMwMzI2
NmZkMzdjMjVhYTJhNDMxMjJlYjZhMTNlNjU4Yzk3Li4zYmZiZDRlNjA3ZjBiNzU3ZTMyYmI5YjBh
Njk1ODA1NjIzMDE5N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTcyMCw3
ICs3MjAsNiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1
YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIFNtYWxsU3RyaW5ncyBzbWFsbFN0
cmluZ3M7CiAgICAgTnVtZXJpY1N0cmluZ3MgbnVtZXJpY1N0cmluZ3M7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNpbXBsZVN0YXRzPiBtYWNoaW5lQ29kZUJ5dGVzUGVyQnl0ZWNvZGVXb3JkRm9yQmFz
ZWxpbmVKSVQ7Ci0gICAgV2Vha0dDTWFwPHN0ZDo6cGFpcjxDdXN0b21HZXR0ZXJTZXR0ZXIqLCBp
bnQ+LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uPiBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5j
dGlvbk1hcDsKICAgICBXZWFrR0NNYXA8U3RyaW5nSW1wbCosIEpTU3RyaW5nLCBQdHJIYXNoPFN0
cmluZ0ltcGwqPj4gc3RyaW5nQ2FjaGU7CiAgICAgU3Ryb25nPEpTU3RyaW5nPiBsYXN0Q2FjaGVk
U3RyaW5nOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5k
ZXggY2RkMzhiZmY3MDI2ZGQ0NzkwY2YwOTk2MTkyMzliODZjY2FkYzNjMS4uYmJjZTc1ZmRjNzQy
NmViOGExN2M0NmQ0Njk1OTU0YzBiY2U4MDYyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9KU0RvbGxhclZNLmNwcApAQCAtMTUyNSwxMCArMTUyNSwxMiBAQCBjbGFzcyBKU1Rlc3RD
dXN0b21HZXR0ZXJTZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKIHN0YXRpYyBK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldEFjY2Vzc29yKTsKIHN0YXRpYyBKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZhbHVlMik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihjdXN0b21HZXRBY2Nlc3Nvckdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRWYWx1ZUdsb2JhbE9iamVjdCk7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRBY2Nlc3Nvcik7CiBzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZTIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIpOwogCiBKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoY3VzdG9tR2V0QWNjZXNzb3IsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKQEAgLTE1NDQsNiArMTU0NiwxOCBAQCBKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSgogICAgIHJldHVybiBzbG90VmFsdWU7CiB9CiAKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihjdXN0b21HZXRWYWx1ZTIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5p
bmhlcml0czxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwor
CisgICAgYXV0byogdGFyZ2V0ID0ganNDYXN0PEpTVGVzdEN1c3RvbUdldHRlclNldHRlcio+KEpT
VmFsdWU6OmRlY29kZShzbG90VmFsdWUpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gdGFyZ2V0LT5n
ZXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZTIiKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1ZSA/IHZhbHVlIDoganNVbmRlZmluZWQoKSk7Cit9
CisKIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRBY2Nlc3Nvckdsb2JhbE9iamVj
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0KTsKQEAg
LTE1ODgsNiArMTYwMiwxOCBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSgogICAgIHJldHVybiB0
cnVlOwogfQogCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgUkVMRUFT
RV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9t
R2V0dGVyU2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkpKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBq
c0Nhc3Q8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1
ZSkpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRhcmdldCk7CisgICAgdGFyZ2V0LT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZTIiKSwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOworICAgIHJldHVybiB0cnVlOworfQorCiBKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTYxMiw2ICsxNjM4
LDggQEAgdm9pZCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIAogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAiY3VzdG9tVmFsdWUiKSwKICAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGN1c3RvbUdldFZhbHVlLCBjdXN0b21TZXRWYWx1ZSksIDApOworICAgIHB1dERpcmVj
dEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tVmFs
dWUyIiksCisgICAgICAgIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBjdXN0b21HZXRW
YWx1ZTIsIGN1c3RvbVNldFZhbHVlMiksIDApOwogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29y
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tQWNjZXNzb3IiKSwKICAgICAg
ICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGN1c3RvbUdldEFjY2Vzc29yLCBjdXN0
b21TZXRBY2Nlc3NvciksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IpKTsKICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbVZhbHVlR2xvYmFsT2JqZWN0IiksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuY3BwCmluZGV4IGUyOTc3Mzk4YjJkN2Q5MzkzZDEwYzhiNjI2N2IxNzc0
MjNmZTNhOTAuLjU1OWNlMWM1NzE1ODMxMDNkZjBhYTk0YWU0MWI2MDgzMTEwMTFjNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIGNvbnN0IENsYXNzSW5m
byBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5J
bnN0YW5jZSIsCiAKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5s
dXQuaAogIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5SW5zdGFuY2UKLSBleHBvcnRz
IHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzIEFjY2Vzc29yIDAKKyBleHBvcnRz
IHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzIEFjY2Vzc29yfFJlYWRPbmx5IDAK
ICBAZW5kCiAgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4IDdlMjA4YzMxMDFjMjM3
MTYzMjI5Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjY5YjcwNzBmNWVmMDc3ODgzNWI3OTRiN2RlN2I1
NGM3NjcwZDM1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAg
Y29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlOjpzX2luZm8gPSB7ICJX
ZWJBc3NlbWJseS5NZW1vcnkiLCAmQmEKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlNZW1vcnlQ
cm90b3R5cGUubHV0LmgKIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAg
Z3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdyAgIEZ1bmN0aW9uIDEKLSBidWZm
ZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3IgMAorIGJ1ZmZlciB3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciBBY2Nlc3NvcnxSZWFkT25seSAwCiBAZW5k
CiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCmluZGV4IDg2ZjRlNzhmZWE1MjEwNTEwMDY4MTU5
N2U0NTZhMTg5OWVjZmJhODEuLjA5M2FlYTNhYTY0ODRhNDhiZGJhY2JmN2E3MzA4YTZjZDFkZDIw
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
VGFibGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IENsYXNz
SW5mbyBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5U
YWJsZSIsICZCYXNlCiAKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5s
dXQuaAogIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5VGFibGUKLSBsZW5ndGggd2Vi
QXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCBBY2Nlc3NvciAwCisgbGVuZ3RoIHdlYkFzc2Vt
Ymx5VGFibGVQcm90b0Z1bmNMZW5ndGggQWNjZXNzb3J8UmVhZE9ubHkgMAogIGdyb3cgICB3ZWJB
c3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBnZXQgICAgd2ViQXNzZW1i
bHlUYWJsZVByb3RvRnVuY0dldCAgICBGdW5jdGlvbiAxCiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFi
bGVQcm90b0Z1bmNTZXQgICAgRnVuY3Rpb24gMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJiODBkZTk4ZmFkY2NiZDQ5MDI0
ZDg3NGUxODc0ZWY4MjM4ZTJhMjMuLjNlZWUyMjIyMTRiNzYyMjQ3NzgyOTRkNjc0Yzg5NDc4NDM4
MTA2MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMS0wNSAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRz
IHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICoganMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50
eHQ6CisgICAgICAgICoganMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRtbDoKKyAgICAgICAgKiBqcy9yZXNvdXJjZXMv
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9z
dGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9z
dGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICoganMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbDogUmVtb3ZlZC4KKwog
MjAyMS0wMS0wNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBt
aXNzaW5nIHN1cHBvcnQvcmVmcmVzaC5zdWIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAppbmRleCA5OWNi
OTMzNzE4OTdlNGU0NTRlMjM1Njk0Njg3ZGJkMjFiMzlkOTg5Li44Njk3ZTc2MWQxNWU3ZDA2NWVh
MGFjZWEyNDk2YmY4OGQwMTZjN2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dApAQCAtMzksOSArMzksMTAg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE51bWJlciwgJ05FR0FUSVZF
X0lORklOSVRZJykuaGFzT3duUHJvcGVydHkKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE51bWJlciwg
J05FR0FUSVZFX0lORklOSVRZJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKE51bWJlciwgJ05FR0FUSVZFX0lORklOSVRZJykuY29uZmln
dXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVn
RXhwLCAnJF8nKS52YWx1ZSBpcyBSZWdFeHAuJF8KLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoUmVnRXhwLCAnJF8nKS5nZXQgaXMgUmVnRXhwJF9HZXR0ZXIKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLnNldCBpcyBSZWdFeHAkX1NldHRl
cgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuaGFz
T3duUHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCd3cml0YWJsZScpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
UmVnRXhwLCAnJF8nKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKE5vZGUsICdET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQnKS52
YWx1ZSBpcyBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy1leHBlY3RlZC50eHQKaW5kZXggODUxM2M4ZTJjZTVk
YTRiYWFhNTliNWU0MTk0Y2JiYjllNDFjOTFiMS4uYzUxYzkwOWUzNTg0YWVhNzdhYjFhNDFiZTI2
YjljMzg2MjE4MTc0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNo
aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hpbmct
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMTAgQEAKIFRoaXMgdGVzdCBjaGVja3Mgb3VyIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBzcGVjaWFsIFJlZ0V4cCBtZW1iZXIgdmFyaWFibGVzLgogCiBQcm9w
ZXJ0aWVzIG9mIFJlZ0V4cCBhdCBzdGFydHVwOgorJCY6IHt9IChyZWFkLW9ubHkpCiskJzoge30g
KHJlYWQtb25seSkKKyQqOiB7ZmFsc2V9IChyZWFkLXdyaXRlKQorJCs6IHt9IChyZWFkLW9ubHkp
CiAkMToge30gKHJlYWQtb25seSkKICQyOiB7fSAocmVhZC1vbmx5KQogJDM6IHt9IChyZWFkLW9u
bHkpCkBAIC0xMCwxNCArMTQsMjMgQEAgJDY6IHt9IChyZWFkLW9ubHkpCiAkNzoge30gKHJlYWQt
b25seSkKICQ4OiB7fSAocmVhZC1vbmx5KQogJDk6IHt9IChyZWFkLW9ubHkpCiskXzoge30gKHJl
YWQtd3JpdGUpCiskYDoge30gKHJlYWQtb25seSkKIGlucHV0OiB7fSAocmVhZC13cml0ZSkKIGxh
c3RNYXRjaDoge30gKHJlYWQtb25seSkKIGxhc3RQYXJlbjoge30gKHJlYWQtb25seSkKIGxlZnRD
b250ZXh0OiB7fSAocmVhZC1vbmx5KQorbGVuZ3RoOiB7Mn0gKHJlYWQtb25seSkKIG11bHRpbGlu
ZToge2ZhbHNlfSAocmVhZC13cml0ZSkKK25hbWU6IHtSZWdFeHB9IChyZWFkLW9ubHkpCitwcm90
b3R5cGU6IHsvKD86KS99IChyZWFkLW9ubHkpCiByaWdodENvbnRleHQ6IHt9IChyZWFkLW9ubHkp
CiAKIFByb3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIC8oMSkoMikoMykoNCkoNSkoNikoNykoOCko
OSkoMCkvLmV4ZWMoPDEyMzQ1Njc4OTA+KToKKyQmOiB7MTIzNDU2Nzg5MH0KKyQnOiB7Pn0KKyQq
OiB7ZmFsc2V9CiskKzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC0yNywxMSAr
NDAsMTYgQEAgJDY6IHs2fQogJDc6IHs3fQogJDg6IHs4fQogJDk6IHs5fQorJF86IHs8MTIzNDU2
Nzg5MD59CiskYDogezx9CiBpbnB1dDogezwxMjM0NTY3ODkwPn0KIGxhc3RNYXRjaDogezEyMzQ1
Njc4OTB9CiBsYXN0UGFyZW46IHswfQogbGVmdENvbnRleHQ6IHs8fQorbGVuZ3RoOiB7Mn0KIG11
bHRpbGluZToge2ZhbHNlfQorbmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJp
Z2h0Q29udGV4dDogez59CiAKIFJlZ0V4cC4kMCBkb2VzIG5vdCBleGlzdApAQCAtNDEsNiArNTks
MTAgQEAgUmVnRXhwLm11bHRpbGluZSBjb2VyY2VzIHZhbHVlcyB0byBib29sZWFucwogUmVnRXhw
LmlucHV0IGNvZXJjZXMgdmFsdWVzIHRvIHN0cmluZ3MKIAogUHJvcGVydGllcyBvZiBSZWdFeHAg
YWZ0ZXIgLygxKSgyKSgzKSg0KSg1KSg2KSg3KSg4KSg5KSgwKS8uZXhlYyhYWFgpOgorJCY6IHsx
MjM0NTY3ODkwfQorJCc6IHs+fQorJCo6IHt0cnVlfQorJCs6IHswfQogJDE6IHsxfQogJDI6IHsy
fQogJDM6IHszfQpAQCAtNTAsMTUgKzcyLDI0IEBAICQ2OiB7Nn0KICQ3OiB7N30KICQ4OiB7OH0K
ICQ5OiB7OX0KKyRfOiB7MH0KKyRgOiB7PH0KIGlucHV0OiB7MH0KIGxhc3RNYXRjaDogezEyMzQ1
Njc4OTB9CiBsYXN0UGFyZW46IHswfQogbGVmdENvbnRleHQ6IHs8fQorbGVuZ3RoOiB7Mn0KIG11
bHRpbGluZToge3RydWV9CituYW1lOiB7UmVnRXhwfQorcHJvdG90eXBlOiB7Lyg/OikvfQogcmln
aHRDb250ZXh0OiB7Pn0KIAogLS0tLS0tLS0tLSBbQ2xlYXJlZCBSZWdFeHAgdmFsdWVzXSAtLS0t
LS0tLS0tCiBQcm9wZXJ0aWVzIG9mIFJlZ0V4cCBhZnRlciA8MTIzNDU2Nzg5MD4uc2VhcmNoKC8o
MSkoMikoMykoNCkoNSkoNikoNykoOCkoOSkoMCkvKToKKyQmOiB7MTIzNDU2Nzg5MH0KKyQnOiB7
Pn0KKyQqOiB7dHJ1ZX0KKyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30KQEAgLTY4
LDE1ICs5OSwyNCBAQCAkNjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezwx
MjM0NTY3ODkwPn0KKyRgOiB7PH0KIGlucHV0OiB7PDEyMzQ1Njc4OTA+fQogbGFzdE1hdGNoOiB7
MTIzNDU2Nzg5MH0KIGxhc3RQYXJlbjogezB9CiBsZWZ0Q29udGV4dDogezx9CitsZW5ndGg6IHsy
fQogbXVsdGlsaW5lOiB7dHJ1ZX0KK25hbWU6IHtSZWdFeHB9Citwcm90b3R5cGU6IHsvKD86KS99
CiByaWdodENvbnRleHQ6IHs+fQogCiAtLS0tLS0tLS0tIFtDbGVhcmVkIFJlZ0V4cCB2YWx1ZXNd
IC0tLS0tLS0tLS0KIFByb3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIDwxMjM0NTY3ODkwPi5yZXBs
YWNlKC8oMSkoMikoMykoNCkoNSkoNikoNykoOCkoOSkoMCkvKToKKyQmOiB7MTIzNDU2Nzg5MH0K
KyQnOiB7Pn0KKyQqOiB7dHJ1ZX0KKyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30K
QEAgLTg2LDEwICsxMjYsMTUgQEAgJDY6IHs2fQogJDc6IHs3fQogJDg6IHs4fQogJDk6IHs5fQor
JF86IHs8MTIzNDU2Nzg5MD59CiskYDogezx9CiBpbnB1dDogezwxMjM0NTY3ODkwPn0KIGxhc3RN
YXRjaDogezEyMzQ1Njc4OTB9CiBsYXN0UGFyZW46IHswfQogbGVmdENvbnRleHQ6IHs8fQorbGVu
Z3RoOiB7Mn0KIG11bHRpbGluZToge3RydWV9CituYW1lOiB7UmVnRXhwfQorcHJvdG90eXBlOiB7
Lyg/OikvfQogcmlnaHRDb250ZXh0OiB7Pn0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL3JlZ2V4cC1jYWNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hp
bmcuaHRtbAppbmRleCAwNmFkYTcwMTEwMjBjZWIyOGJlZGZmZmQ0NmU4YWE4MTE1NjM1ODA0Li5i
OTg3MTQ1Mzg2ZTQ0YTI0Mzk0NWQwYTRhYjA2MGZlZmFhYjc0NDA3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vcmVnZXhwLWNhY2hpbmcuaHRtbApAQCAtMjAsMTAgKzIwLDcgQEAKIAogZnVuY3Rpb24gcHJp
bnRQcm9wZXJ0aWVzV2l0aFJlYWRPbmx5KG9iamVjdCkKIHsKLSAgICB2YXIgYXJyYXkgPSBuZXcg
QXJyYXk7Ci0gICAgZm9yICh2YXIgcHJvcGVydHkgaW4gb2JqZWN0KSB7Ci0gICAgICAgIGFycmF5
LnB1c2gocHJvcGVydHkpOwotICAgIH0KKyAgICB2YXIgYXJyYXkgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcyhvYmplY3QpOwogICAgIGFycmF5LnNvcnQoKTsKICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHZhciBwcm9wZXJ0eSA9IGFycmF5
W2ldOwpAQCAtMzMsMTAgKzMwLDcgQEAKIAogZnVuY3Rpb24gcHJpbnRQcm9wZXJ0aWVzKG9iamVj
dCkKIHsKLSAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk7Ci0gICAgZm9yICh2YXIgcHJvcGVydHkg
aW4gb2JqZWN0KSB7Ci0gICAgICAgIGFycmF5LnB1c2gocHJvcGVydHkpOwotICAgIH0KKyAgICB2
YXIgYXJyYXkgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpOwogICAgIGFycmF5
LnNvcnQoKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CiAg
ICAgICAgIHZhciBwcm9wZXJ0eSA9IGFycmF5W2ldOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcyBiL0xheW91dFRlc3RzL2pz
L3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKaW5kZXggYzY1MTIxMTMyODU2
NjczMGYyZmM3OWU2MWE0NmU0ZTYwNGE3NTdiZi4uZTM4YmY3NDIyNWM5MTE2YWVmYjJmZjAyMGJh
YzA4ZGU2ODkzYjU3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93
blByb3BlcnR5RGVzY3JpcHRvci5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzCkBAIC0yNSw3ICsyNSw5IEBAIGZ1bmN0aW9uIGRlc2Ny
aXB0b3JTaG91bGRCZShvYmplY3QsIHByb3BlcnR5LCBleHBlY3RlZCkgewogZGVzY3JpcHRvclNo
b3VsZEJlKCJSZWdFeHAucHJvdG90eXBlIiwgIidleGVjJyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51
bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IlJlZ0V4cC5wcm90b3R5
cGUuZXhlYyJ9KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuX19wcm90b19fLl9fcHJv
dG9fXyIsICInY3JlYXRlRWxlbWVudCciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRy
dWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6ImRvY3VtZW50LmNyZWF0ZUVsZW1lbnQifSk7
CiBkZXNjcmlwdG9yU2hvdWxkQmUoIk51bWJlciIsICInTkVHQVRJVkVfSU5GSU5JVFknIiwge3dy
aXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZh
bHVlOiJOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkifSk7Ci1kZXNjcmlwdG9yU2hvdWxkQmUoIlJl
Z0V4cCIsICInJF8nIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmln
dXJhYmxlOiB0cnVlLCB2YWx1ZToiUmVnRXhwLiRfIn0pOwordmFyIFJlZ0V4cCRfR2V0dGVyID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmdldDsKK3ZhciBS
ZWdFeHAkX1NldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAn
JF8nKS5zZXQ7CitkZXNjcmlwdG9yU2hvdWxkQmUoIlJlZ0V4cCIsICInJF8nIiwge2dldDogIlJl
Z0V4cCRfR2V0dGVyIiwgc2V0OiAiUmVnRXhwJF9TZXR0ZXIiLCBlbnVtZXJhYmxlOiBmYWxzZSwg
Y29uZmlndXJhYmxlOiB0cnVlLH0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJOb2RlIiwgIidET0NV
TUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQnIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJs
ZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6Ik5vZGUuRE9DVU1FTlRfUE9TSVRJ
T05fRElTQ09OTkVDVEVEIn0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJNYXRoIiwgIidzaW4nIiwg
e3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiB0cnVlLCB2
YWx1ZToiTWF0aC5zaW4ifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIlsxLDIsM10iLCAiMCIsIHt3
cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1
ZToiMSJ9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGF0aWMt
cHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9z
dGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDE5MWQyMWM0MjMxMDFkMjk0MDNiYjI1YTg3MTQxM2ExNTI5MDMzYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3ZSB3
aWxsIGNhbGwgYSBjdXN0b20gc2V0dGVyIHdoZW4gdGhlIHNldHRlciBpcyBpbiB0aGUgcHJvdG90
eXBlIGNoYWluIik7Ci0KLS8vIFRoZSBSZWdFeHAgT2JqZWN0IGlzIGEgY29udmVuaWVudCBjb25z
dHJ1Y3RvciB3aXRoIGEgY3VzdG9tIHNldHRlci4KLS8vIFRoaXMgd2lsbCBhbHNvIHRlc3QgdGhl
IHdlaXJkIGJlaGF2aW91ciBpbiB3aGljaCB0aGUgUmVnRXhwIGNvbnN0cnVjdG9yCi0vLyBzZXR0
ZXJzIGFyZSBleHBlY3RlZCB0byBhY3Qgb24gdGhlIGJhc2Ugb2JqZWN0IChlLmcuIHRoZSBjb25z
dHJ1Y3RvciBvYmplY3QpCi0vLyByYXRoZXIgdGhhbiB0aGUgdGhpcyB2YWx1ZS4KLXZhciB0ZXN0
T2JqZWN0ID0ge19fcHJvdG9fXzogUmVnRXhwIH0KLQotdGVzdE9iamVjdC5pbnB1dCA9ICJ0ZXN0
SW5wdXQiCi0KLXNob3VsZEJlKCJ0ZXN0T2JqZWN0LmlucHV0IiwgIid0ZXN0SW5wdXQnIikKLXNo
b3VsZEJlKCJSZWdFeHAuaW5wdXQiLCAiJ3Rlc3RJbnB1dCciKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzgzMTYxNWRhNTliYTcwNTRjZjhiYzE5ODQ3
MTZkZGRjMTkzMDQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgd2Ugd2lsbCBjYWxsIGEgY3VzdG9tIHNldHRlciB3aGVuIHRoZSBzZXR0ZXIgaXMgaW4gdGhl
IHByb3RvdHlwZSBjaGFpbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB0
ZXN0T2JqZWN0LmlucHV0IGlzICd0ZXN0SW5wdXQnCi1QQVNTIFJlZ0V4cC5pbnB1dCBpcyAndGVz
dElucHV0JwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNo
YWluLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzFhODFjMDM2MThmMzI4NjU0NDFl
ZmUzNTBlYTZhOTJmMTkwMzc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFrcmFDb3Jl
L3Rlc3QvTGliL2ZvcmluX2xpYl92My5iYXNlbGluZS1qc2MgYi9KU1Rlc3RzL0NoYWtyYUNvcmUv
dGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYwppbmRleCA4NTUyNGQzMWUyMDdmMDA0
N2JlNzY1ZjQwZGE0OGJiYjRiZGM0ODIyLi42MzIxMTNkNzdmNjA5ODQwNjIyNTIwNmM1MWU3YjYw
Y2NlY2U3NDQyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5f
bGliX3YzLmJhc2VsaW5lLWpzYworKysgYi9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9y
aW5fbGliX3YzLmJhc2VsaW5lLWpzYwpAQCAtNzgsMzggKzc4LDggQEAgZm9yLi5pbiBEYXRlICh3
aXRoIHByb3RvdHlwZS5ibGFoMikKICAgYmxhaDIgPSBEYXRlCiAKIGZvci4uaW4gUmVnRXhwCi0g
IGlucHV0ID0gCi0gIG11bHRpbGluZSA9IGZhbHNlCi0gIGxhc3RNYXRjaCA9IAotICBsYXN0UGFy
ZW4gPSAKLSAgbGVmdENvbnRleHQgPSAKLSAgcmlnaHRDb250ZXh0ID0gCi0gICQxID0gCi0gICQy
ID0gCi0gICQzID0gCi0gICQ0ID0gCi0gICQ1ID0gCi0gICQ2ID0gCi0gICQ3ID0gCi0gICQ4ID0g
Ci0gICQ5ID0gCiAgIGJsYWgyID0gRnVuY3Rpb24KIGZvci4uaW4gUmVnRXhwICh3aXRoIGJsYWgp
Ci0gIGlucHV0ID0gCi0gIG11bHRpbGluZSA9IGZhbHNlCi0gIGxhc3RNYXRjaCA9IAotICBsYXN0
UGFyZW4gPSAKLSAgbGVmdENvbnRleHQgPSAKLSAgcmlnaHRDb250ZXh0ID0gCi0gICQxID0gCi0g
ICQyID0gCi0gICQzID0gCi0gICQ0ID0gCi0gICQ1ID0gCi0gICQ2ID0gCi0gICQ3ID0gCi0gICQ4
ID0gCi0gICQ5ID0gCiAgIGJsYWggPSBiCiAgIGJsYWgyID0gRnVuY3Rpb24KIGZvci4uaW4gbmV3
IFJlZ0V4cApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTFiZTc0ZjFiOTdiOGEzMTJiM2I4ZTk1Zjc2NDNiMDk0YjFhN2EzLi40Y2VjNTJl
YzMzNzY1Zjg3M2QwOTAyNzQ5MjIyMWM4YmQ1YjgyM2UyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTAx
LTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10g
TGVnYWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29ycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDaGFrcmFDb3JlL3Rlc3QvTGliL2Zv
cmluX2xpYl92My5iYXNlbGluZS1qc2M6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2Fzc2ln
bi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2N1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1
dC1nZXQtYnktaWQuanM6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFy
a3MvY3VzdG9tLXZhbHVlLTIuanM6CisgICAgICAgICh0ZXN0MS5nZXRDdXN0b21WYWx1ZTIpOgor
ICAgICAgICAodGVzdDEpOgorICAgICAgICAodGVzdDEuZ2V0TXVsdGlsaW5lKTogRGVsZXRlZC4K
KyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzOgorICAgICAgICAodGVz
dDEuZ2V0Q3VzdG9tVmFsdWUyKToKKyAgICAgICAgKHRlc3QxKToKKyAgICAgICAgKHRlc3QxLmdl
dE11bHRpbGluZSk6IERlbGV0ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2dldC1jdXN0
b20tZ2V0dGVyLmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2N1c3RvbS12
YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qczoKKyAgICAgICAgKHRlc3QxLmdldEN1c3RvbVZhbHVl
Mik6CisgICAgICAgICh0ZXN0MSk6CisgICAgICAgICh0ZXN0MS5nZXRNdWx0aWxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIHN0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTIuanM6
CisgICAgICAgICh0ZXN0Mi5mb28pOgorICAgICAgICAodGVzdDIpOgorICAgICAgICAqIHN0cmVz
cy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTMuanM6CisgICAgICAgICh0ZXN0Ni5mb28p
OgorICAgICAgICAodGVzdDYpOgorICAgICAgICAqIHN0cmVzcy9vYmplY3QtYXNzaWduLWZhc3Qt
cGF0aC5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVmbGVjdC1zZXQuanM6CisgICAgICAgICogc3Ry
ZXNzL3JlZ2V4cC1zZXR0ZXItcmVhbG0uanM6IEFkZGVkLgorICAgICAgICAobGV0LnJlYWxtLmNy
ZWF0ZUdsb2JhbE9iamVjdCk6CisgICAgICAgIChkZXNjcmlwdG9yLmNhbGwpOgorICAgICAgICAq
IHN0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgKiB0
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIxLTAxLTA0ICBEbWl0cnkgQmV6aGV0c2tv
diAgPGRiZXpoZXRza292QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dBU00tUmVmZXJlbmNlc10g
Rml4IGRhdGEgc2VjdGlvbiBwYXJzaW5nIGFuZCBhZGQgbW9yZSB0ZXN0cyBmcm9tIHJlZi10eXBl
cwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0
ZXItcG9seW1vcnBoaWMuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9t
LXNldHRlci1wb2x5bW9ycGhpYy5qcwppbmRleCA1OTAxYzBkYjNjZmU1MDRiYWE0M2Y5MjA0YTI0
Mjc5N2MyZDMwMDdhLi4zOGYwY2FkMjIwYjA5OGUxMGNkMzZjNzQzNGRhYTNhOWQ3MDAwNmY4IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1w
b2x5bW9ycGhpYy5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9t
LXNldHRlci1wb2x5bW9ycGhpYy5qcwpAQCAtMSwyMCArMSwyMCBAQAogLy9AIHNraXAgaWYgJG1v
ZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3Mt
dGVzdC5weQogCi1vID0gUmVnRXhwOworbyA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0
dGVyKCk7CiBqID0gMDsKIGwgPSAyOwogeiA9IDA7CiBmdW5jdGlvbiB0ZXN0KG8sIHopIHsKICAg
ICB2YXIgayA9IGFyZ3VtZW50c1soKChqIDw8IDEgfCBsKSA+PiAxKSBeIDEpICYgKHogKj0gMSld
OwotICAgIGsuaW5wdXQgPSAwOworICAgIGsuY3VzdG9tVmFsdWUyID0gMDsKICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDI1MDAwOyBpKyspIHsKLSAgICAgICAgay5pbnB1dCA9ICJmb28iOworICAg
ICAgICBrLmN1c3RvbVZhbHVlMiA9ICJmb28iOwogICAgIH0KIAotICAgIHJldHVybiBrLmlucHV0
OworICAgIHJldHVybiBrLmN1c3RvbVZhbHVlMjsKIH0KLXZhciByZXN1bHQgPSB0ZXN0KHtfX3By
b3RvX186IHtiYXI6IndpYmJsZSIsIGlucHV0OiJmb28ifX0pOwotdmFyIHJlc3VsdCA9IHRlc3Qo
e2lucHV0OiJmb28ifSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90b19fOiB7YmFyOiJ3aWJi
bGUiLCBjdXN0b21WYWx1ZTI6ImZvbyJ9fSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7Y3VzdG9tVmFs
dWUyOiJmb28ifSk7CiB2YXIgcmVzdWx0ID0gdGVzdChvKQogZm9yICh2YXIgayA9IDA7IGsgPCA2
OyBrKyspIHsKICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzIGIvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanMKaW5kZXggZmFkZDRmOTdhNGFjN2RkYzhl
OTMxNTBhMWUyNjNhYTA1MTFjZmYyZC4uMzQwZmI4ZGEyMzljMTQ5YmE2YzA2OTcwOWUzZDY5OGM5
ZmQ3NzQ2ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3Rv
bS1zZXR0ZXIuanMKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1z
ZXR0ZXIuanMKQEAgLTEsMTQgKzEsMTMgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUg
V2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vIFJl
Z0V4cC5pbnB1dCBpcyBhIGhhbmR5IHNldHRlcgogCi12YXIgbyA9IFJlZ0V4cDsKK3ZhciBvID0g
JHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3Qobykgewog
ICAgIHZhciBrID0gMDsKLSAgICBvLmlucHV0ID0gImJhciI7CisgICAgby5jdXN0b21WYWx1ZTIg
PSAiYmFyIjsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDAwOyBpKyspCi0gICAgICAgIG8u
aW5wdXQgPSAiZm9vIjsKKyAgICAgICAgby5jdXN0b21WYWx1ZTIgPSAiZm9vIjsKIAotICAgIHJl
dHVybiBvLmlucHV0OworICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKIH0KIAogdmFyIHJlc3Vs
dCA9IHRlc3Qobyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20t
c2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvY3VzdG9tLXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qcwppbmRleCBhOGU1NzVl
YzYxZjIxYzYyZDE3N2M3N2U1ZTA0YzQxNmU3OGZmZDM5Li40ZGNhYTc0ODM3MDgwZThiZGNhMDNi
YjJjZWJiM2UxOGZlM2M3MWQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9j
dXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL2N1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanMKQEAg
LTUsMjEgKzUsMjAgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIH0KIG5vSW5saW5lKGFzc2VydCk7
CiAKLS8vIFJlZ0V4cC5pbnB1dCBpcyBhIGhhbmR5IGN1c3RvbSBnZXR0ZXIvc2V0dGVyLgotdmFy
IG8xID0gUmVnRXhwOwordmFyIG8xID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIo
KTsKIGZ1bmN0aW9uIHRlc3QobykgewotICAgIG8uaW5wdXQgPSAiYmFyIjsKLSAgICByZXR1cm4g
by5pbnB1dDsKKyAgICBvLmN1c3RvbVZhbHVlMiA9ICJiYXIiOworICAgIHJldHVybiBvLmN1c3Rv
bVZhbHVlMjsKIH0KIG5vSW5saW5lKHRlc3QpOwogCiB2YXIgbzIgPSB7Ci0gICAgaW5wdXQ6ICJo
ZWxsbyIKKyAgICBjdXN0b21WYWx1ZTI6ICJoZWxsbyIKIH0KIAogdmFyIG8zID0gewogICAgIHg6
IDIwLAotICAgIGlucHV0OiAiaGVsbG8iCisgICAgY3VzdG9tVmFsdWUyOiAiaGVsbG8iCiB9CiAK
IC8vIEZpcnN0IGNvbXBpbGUgYXMgR2V0QnlJZCBub2RlLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9t
aWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLTIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9jdXN0b20tdmFsdWUtMi5qcwppbmRleCBiZTQyODlmOTNiMzk2NzkwZDIwZDg0ODFhN2YwMmM2
NGFmN2RiMmYwLi4zYjViYjUyZmJjOTI1OTg5MGY2YzBjMDFkYmRlNzFhNjI3NTBiZDY2IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcworKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcwpAQCAtNCwyNCArNCwyNSBA
QCBmdW5jdGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2Nv
bnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9u
IHRlc3QxKCkgewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVy
biBvLm11bHRpbGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAg
ICByZXR1cm4gby5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGlu
ZSk7CisgICAgbm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAotICAgIFJlZ0V4cC5mb28gPSA0
MjsKKyAgICBWYWx1ZS5mb28gPSA0MjsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBvLl9fcHJv
dG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAgby5fX3By
b3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAogICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRNdWx0
aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihvKSA9
PT0gZmFsc2UpOwogICAgIH0KLSAgICBkZWxldGUgUmVnRXhwLmZvbzsKKyAgICBkZWxldGUgVmFs
dWUuZm9vOwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAg
IGFzc2VydChnZXRNdWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1
c3RvbVZhbHVlMihvKSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIHRlc3QxKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanMgYi9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanMKaW5kZXggMjJlMTNlYWEzOTFjNjc1YmIyMWQxNDMx
ODNkMGRlMjU2NjEwOTljOS4uMGRiNGQyNWQ3ZWE1YzI1OTE1MTcwNGQ3Y2EyNTY0ZWQ2MzNiYTgx
OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzCisr
KyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qcwpAQCAtNCwxOCArNCwx
OSBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAK
K2NvbnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0
aW9uIHRlc3QxKCkgewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJl
dHVybiBvLm11bHRpbGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAg
ICAgICByZXR1cm4gby5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRp
bGluZSk7CisgICAgbm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7
fTsKLSAgICBvLl9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFs
c2U7CisgICAgby5fX3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBm
YWxzZTsKIAogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAg
IGFzc2VydChnZXRNdWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1
c3RvbVZhbHVlMihvKSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanMgYi9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwppbmRleCBmMWJmZjUxZmE3MzI2ODU0YjAwZjcz
NWUwOGE1OTdiM2M1Y2Y3NjgyLi44YjkwOTY3NmZkYmM4NzRmNDk2NjA4NmEwNmY5NzE0ZDg0OTRl
NTQ1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRl
ci5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwpA
QCAtMSwxMyArMSwxMiBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJp
ZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy8gUmVnRXhwLmlucHV0
IGlzIGEgaGFuZHkgZ2V0dGVyCiAKLXZhciBvID0gUmVnRXhwOwotby5pbnB1dCA9ICJmb28iOwor
dmFyIG8gPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOworby5jdXN0b21WYWx1
ZTIgPSAiZm9vIjsKIAogZnVuY3Rpb24gdGVzdChvKSB7CiAgICAgdmFyIHJlc3VsdCA9IG51bGw7
CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMDAwMDsgaSsrKQotICAgICAgICByZXN1bHQgPSBv
LmlucHV0OworICAgICAgICByZXN1bHQgPSBvLmN1c3RvbVZhbHVlMjsKIAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRl
LXByb3BlcnR5LTEuanMgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3Bl
cnR5LTEuanMKaW5kZXggMGNjODA0YTA3MmI5OTU4ZDE4YTllYjkyMGVlMjgwMWNhM2QxYjFlYS4u
YmJiZGM4MzQzYzgzMzk4NTdiMTNlYjUyYzUwYzE3NGM4YWU2ZWM4MSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qcwpAQCAtMywyMSArMywy
MSBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAK
K2NvbnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0
aW9uIHRlc3QxKCkgewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJl
dHVybiBvLm11bHRpbGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAg
ICAgICByZXR1cm4gby5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRp
bGluZSk7CisgICAgbm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7
fTsKLSAgICBvLl9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFs
c2U7CisgICAgby5fX3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBm
YWxzZTsKIAogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyArK2kpIHsKLSAgICAgICAgYXNz
ZXJ0KGdldE11bHRpbGluZShvKSA9PT0gZmFsc2UpOworICAgICAgICBhc3NlcnQoZ2V0Q3VzdG9t
VmFsdWUyKG8pID09PSBmYWxzZSk7CiAgICAgfQotICAgIGRlbGV0ZSBSZWdFeHAuaW5wdXQ7Ci0g
ICAgZGVsZXRlIFJlZ0V4cC5tdWx0aWxpbmU7Ci0gICAgYXNzZXJ0KGdldE11bHRpbGluZShvKSA9
PT0gdW5kZWZpbmVkKTsKKyAgICBkZWxldGUgVmFsdWUuY3VzdG9tVmFsdWUyOworICAgIGFzc2Vy
dChnZXRDdXN0b21WYWx1ZTIobykgPT09IHVuZGVmaW5lZCk7CiB9CiB0ZXN0MSgpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzIGIv
SlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzCmluZGV4IDBh
NWY5ZTJlNzlhNTU3ZmQ3NGIyNjdiZWZkNTkwNjY5YTdmOTlmZjguLjVhNmU0Y2I0MmQ1NTU3YjUz
M2ZiYjgxNDAxZTdmYTEzNDU1YmNmZjIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3Rv
bS12YWx1ZS1kZWxldGUtcHJvcGVydHktMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20t
dmFsdWUtZGVsZXRlLXByb3BlcnR5LTIuanMKQEAgLTEsMTEgKzEsMTIgQEAKK2NvbnN0IFZhbHVl
ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QyKCkg
ewogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgewotICAgICAgICAgICAgbGV0IHggPSBvLm11bHRp
bGluZTsKLSAgICAgICAgICAgIG8uX19wcm90b19fID0gUmVnRXhwOworICAgICAgICAgICAgbGV0
IHggPSBvLmN1c3RvbVZhbHVlMjsKKyAgICAgICAgICAgIG8uX19wcm90b19fID0gVmFsdWU7CiAg
ICAgICAgIH0KLSAgICAgICAgZGVsZXRlIFJlZ0V4cC5pbnB1dDsKKyAgICAgICAgZGVsZXRlIFZh
bHVlLmN1c3RvbVZhbHVlOwogICAgIH0KIAogICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzIGIvSlNUZXN0cy9zdHJl
c3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzCmluZGV4IGMwNjZhMjgyMzA1N2Rm
MTNkMjRmYjlmZjk3MmQ1Nzc2NTcyNTU5YjUuLjg5NmUzMDU4YjlkZGFkYjRmMTM0YzllOTEwYTMw
ZjdmMjhjYmVjNDIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxl
dGUtcHJvcGVydHktMy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRl
LXByb3BlcnR5LTMuanMKQEAgLTEsMTEgKzEsMTIgQEAKIGZ1bmN0aW9uIHRlc3Q2KCkgeworICAg
IHZhciBjdXN0b20gPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwogICAgIGZ1
bmN0aW9uIGZvbygpIHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDg7IGkrKykgewotICAgICAgICAgICAgby5sYXN0TWF0Y2g7Ci0gICAgICAgICAg
ICBvLl9fcHJvdG9fXyA9IFJlZ0V4cDsKKyAgICAgICAgICAgIG8uY3VzdG9tVmFsdWUyOworICAg
ICAgICAgICAgby5fX3Byb3RvX18gPSBjdXN0b207CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRl
IFJlZ0V4cC5pbnB1dDsKKyAgICAgICAgZGVsZXRlIGN1c3RvbS5jdXN0b21WYWx1ZTI7CiAgICAg
fQogCiAgICAgZm9vKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWdu
LWZhc3QtcGF0aC5qcyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpz
CmluZGV4IGVjYjkwZDU2YmNkNTBmYzNmNTVjOTdjMTIyOWNiMzgzYjlhMjhlM2QuLjYwNTM1OGMy
ZTQ3NTc4MmEzZGJhMzY0YWRhMTBlMTUyYjQ3ZjBjZGEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29iamVj
dC1hc3NpZ24tZmFzdC1wYXRoLmpzCkBAIC0zMiw3ICszMiwxMSBAQCBmdW5jdGlvbiBjaGVja1By
b3BlcnR5KG9iamVjdCwgbmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMgPSB7IHdyaXRhYmxlOiB0cnVl
LCBlbnVtZQogCiB7CiAgICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIFJlZ0V4cCk7
Ci0gICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
cmVzdWx0KS5zb3J0KCkpLCBgWyIkMSIsIiQyIiwiJDMiLCIkNCIsIiQ1IiwiJDYiLCIkNyIsIiQ4
IiwiJDkiLCJpbnB1dCIsImxhc3RNYXRjaCIsImxhc3RQYXJlbiIsImxlZnRDb250ZXh0IiwibXVs
dGlsaW5lIiwicmlnaHRDb250ZXh0Il1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShP
YmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyZXN1bHQpLnNvcnQoKSksIGBbXWApOworfQorewor
ICAgIGxldCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdl
dHRlclNldHRlcigpKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcyhyZXN1bHQpLnNvcnQoKSksIGBbImN1c3RvbUFjY2Vzc29yIiwiY3VzdG9t
QWNjZXNzb3JHbG9iYWxPYmplY3QiLCJjdXN0b21GdW5jdGlvbiIsImN1c3RvbVZhbHVlIiwiY3Vz
dG9tVmFsdWUyIiwiY3VzdG9tVmFsdWVHbG9iYWxPYmplY3QiXWApOwogfQogewogICAgIGZ1bmN0
aW9uIEhlbGxvKCkgeyB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWZsZWN0LXNldC5q
cyBiL0pTVGVzdHMvc3RyZXNzL3JlZmxlY3Qtc2V0LmpzCmluZGV4IDY0MGJlZmZkYjMyNWMxNzgw
NGJlMThlMGViOTg0Y2ZiOGRjZTcxNjkuLmJjMDQ4MDg0ZmI0ZmZiMWExMTIyM2I4Mzg0Y2NhNzhh
ZjQzN2MxOTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZmxlY3Qtc2V0LmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3JlZmxlY3Qtc2V0LmpzCkBAIC0xMTE3LDEwICsxMTE3LDcgQEAgZnVu
Y3Rpb24gdGVzdDUoKSB7CiAgICAgcmVjZWl2ZXJUZXN0SW5kZXhlZCgvaGVsbG8vLCB7fSk7CiB9
KCkpOwogCi0oZnVuY3Rpb24gY3VzdG9tVmFsdWUoKSB7Ci0gICAgLy8gSW4gdGhpcyBjYXNlLCBS
ZWdFeHAubXVsdGlsaW5lIGJlaGF2ZXMgbGlrZSBhIHNldHRlciBiZWNhdXNlIGl0IGNvZXJjZSBi
b29sZWFuIHR5cGUuCi0gICAgLy8gQW55d2F5LCBpdCdzIE9LLCBiZWNhdXNlIFJlZ0V4cC5tdWx0
aWxpbmUgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgc3BlYy4KLQorKGZ1bmN0aW9uIHJlZ0V4cE11
bHRpbGluZSgpIHsKICAgICBmdW5jdGlvbiB0ZXN0MSgpIHsKICAgICAgICAgc2hvdWxkQmUoUmVm
bGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0NhcHB1Y2Npbm8nKSwgdHJ1ZSk7CiAgICAg
ICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCB0cnVlKTsKQEAg
LTExMjgsOCArMTEyNSw4IEBAIGZ1bmN0aW9uIHRlc3QxKCkgewogICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOwogCiAgICAgICAgIHZhciBy
ZWNlaXZlciA9IHt9OwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0
aWxpbmUnLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJl
KFJlZmxlY3QuZ2V0KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksICdDYXBwdWNjaW5vJyk7CisgICAg
ICAgIHNob3VsZFRocm93KCgpID0+IFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdD
YXBwdWNjaW5vJywgcmVjZWl2ZXIpLCBgVHlwZUVycm9yOiBSZWdFeHAubXVsdGlsaW5lIHNldHRl
cnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8YCk7CisgICAgICAgIHNob3Vs
ZEJlKFJlZmxlY3QuZ2V0KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAgICAg
ICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CiAg
ICAgfQogCkBAIC0xMTQxLDggKzExMzgsOCBAQCBmdW5jdGlvbiB0ZXN0MigpIHsKICAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKIAogICAg
ICAgICB2YXIgcmVjZWl2ZXIgPSB7fTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoUmVn
RXhwLCAnbXVsdGlsaW5lJywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZlciksIHRydWUpOwotICAgICAg
ICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ211bHRpbGluZScpLCAnQ2FwcHVjY2lu
bycpOworICAgICAgICBzaG91bGRUaHJvdygoKSA9PiBSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0
aWxpbmUnLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgYFR5cGVFcnJvcjogUmVnRXhwLm11bHRp
bGluZSBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfGApOworICAg
ICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ211bHRpbGluZScpLCB1bmRlZmlu
ZWQpOwogICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwg
ZmFsc2UpOwogICAgIH0KIApAQCAtMTE1MSwxMSArMTE0OCwxMSBAQCBmdW5jdGlvbiB0ZXN0Mygp
IHsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShSZWdFeHAsICdtdWx0
aWxpbmUnLCB7CiAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UKICAgICAgICAgfSksIHRydWUp
OwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFs
c2UpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwg
dW5kZWZpbmVkKTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGls
aW5lJywgJ0NhcHB1Y2Npbm8nKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRCZShSZWZsZWN0Lmdl
dChSZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0
LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKICAgICAgICAgc2hvdWxkQmUo
UmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgMCksIGZhbHNlKTsKLSAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKKyAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAK
ICAgICAgICAgdmFyIHJlY2VpdmVyID0ge307CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0
KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCBmYWxzZSk7CkBA
IC0xMjAxLDYgKzExOTgsNTUgQEAgZnVuY3Rpb24gdGVzdDMoKSB7CiAgICAgfSwgYFR5cGVFcnJv
cjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS5gKTsKIH0oKSk7CiAK
KyhmdW5jdGlvbiBjdXN0b21WYWx1ZSgpIHsKKyAgICBjb25zdCBWYWx1ZSA9ICR2bS5jcmVhdGVD
dXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CisgICAgZnVuY3Rpb24gdGVzdDEoKSB7CisgICAgICAg
IHNob3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8n
KSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFs
dWUyJyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVl
LCAnY3VzdG9tVmFsdWUyJywgMCksIHRydWUpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0Lmdl
dChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAwKTsKKworICAgICAgICB2YXIgcmVjZWl2ZXIgPSB7
fTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAn
Q2FwcHVjY2lubycsIHJlY2VpdmVyKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Qu
Z2V0KHJlY2VpdmVyLCAnY3VzdG9tVmFsdWUyJyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyksIDApOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHRlc3QyKCkgeworICAgICAgICAndXNlIHN0cmljdCc7CisgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8nKSwg
dHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUy
JyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAn
Y3VzdG9tVmFsdWUyJywgMCksIHRydWUpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChW
YWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCAwKTsKKworICAgICAgICB2YXIgcmVjZWl2ZXIgPSB7fTsK
KyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2Fw
cHVjY2lubycsIHJlY2VpdmVyKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0
KHJlY2VpdmVyLCAnY3VzdG9tVmFsdWUyJyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNob3Vs
ZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyksIDApOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHRlc3QzKCkgeworICAgICAgICAndXNlIHN0cmljdCc7CisgICAgICAgIHNob3Vs
ZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoVmFsdWUsICdjdXN0b21WYWx1ZTInLCB7CisgICAg
ICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAor
ICAgICAgICB9KSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAn
Y3VzdG9tVmFsdWUyJyksIHVuZGVmaW5lZCk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0
KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8nKSwgZmFsc2UpOworICAgICAgICBz
aG91bGRCZShSZWZsZWN0LmdldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicpLCB1bmRlZmluZWQpOwor
ICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsIDApLCBm
YWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUy
JyksIHVuZGVmaW5lZCk7CisKKyAgICAgICAgdmFyIHJlY2VpdmVyID0ge307CisgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgJ0NhcHB1Y2Npbm8nLCBy
ZWNlaXZlciksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIs
ICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKyAgICB9CisKKyAgICB0ZXN0MSgpOworICAg
IHRlc3QyKCk7CisgICAgdGVzdDMoKTsKK30oKSk7CisKIChmdW5jdGlvbiBmdW5jdGlvbkNhc2Uo
KSB7CiAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoKSB7IH07CiAgICAgc2hvdWxkQmUoUmVmbGVj
dC5nZXQoZnVuYywgJ2FyZ3VtZW50cycpLCBudWxsKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3JlZ2V4cC1zZXR0ZXItcmVhbG0uanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVy
LXJlYWxtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwODFiNzk4Njc3N2Y2Yjc5MDkxYmQwNjM3MzQ3OTA3YWNj
NDdhZDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVyLXJl
YWxtLmpzCkBAIC0wLDAgKzEsOSBAQAorbGV0IHJlYWxtID0gY3JlYXRlR2xvYmFsT2JqZWN0KCk7
Cit7CisgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHJlYWxtLlJlZ0V4cCwgIm11bHRpbGluZSIpOworICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwocmVh
bG0uUmVnRXhwLCA0Mik7Cit9Cit7CisgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHJlYWxtLlJlZ0V4cCwgImlucHV0Iik7CisgICAgZGVzY3JpcHRv
ci5zZXQuY2FsbChyZWFsbS5SZWdFeHAsIDQyKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3Rh
dGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZjZTRjYzczNzNkNzI3
NjA1NWEyNGQ1ZDE4ZTExMDIwMTBkOGYwOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmpzCkBAIC0wLDAgKzEsMTQgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCit2YXIgdGFyZ2V0ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsK
K3ZhciB0ZXN0T2JqZWN0ID0geyBfX3Byb3RvX186IHRhcmdldCB9Cit2YXIgcmVzdWx0ID0gewor
ICAgIHJlc3VsdDogdW5kZWZpbmVkCit9OworCit0ZXN0T2JqZWN0LmN1c3RvbVZhbHVlID0gcmVz
dWx0OworCitzaG91bGRCZShyZXN1bHQucmVzdWx0LCB0YXJnZXQpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmlu
ZGV4IDlhNGM1ZTczMTMyMDhmNjA0NGNlZDFiNzFjMzIzNjMxYTI0YjU0NDYuLjkyOTllN2E1Y2Qw
ZDI4YjQyNzY1ZGNiOGEzNDMyOWJkNWZlMGRlYWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTE3LDcg
KzE3LDYgQEAgc2tpcDoKICAgICAtIEF0b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2Jl
aGluZAotICAgIC0gbGVnYWN5LXJlZ2V4cAogCiAgICAgLSBjbGFzcy1tZXRob2RzLXByaXZhdGUK
ICAgICAtIGNsYXNzLXN0YXRpYy1tZXRob2RzLXByaXZhdGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCA3MGI2MDc2YzA4NjgxZmYxZjlmMTZkNzU3ZDMwODJjNDU2ODgwNjk5Li45MDRk
YjY4NDBiMWViZjFiYWQxY2VhMGEzZjg1ZWVkYmU4YjljMDJhIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC01LDYgKzUsMTIgQEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9u
L2NyZWF0ZWR5bmZuLWh0bWwtY2xvc2UtY29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9i
dWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpz
OgogICBkZWZhdWx0OiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3Rl
ZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3Ry
aWN0IG1vZGU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEg
cGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5l
eEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWlu
c3RhbmNlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5j
b21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29t
cGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBh
IFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCcKK3Rlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1z
dWJjbGFzcy1pbnN0YW5jZS5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNz
X3JlZ2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dz
IFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9k
aXJlY3QvZnVuYy1ibG9jay1kZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3Qg
Y3JlYXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tp
cC1lYXJseS1lcnItZm9yLWluLmpzOgpAQCAtNjgxLDYgKzY4Nyw5IEBAIHRlc3QvYnVpbHQtaW5z
L0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50
LmpzOgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1l
dGhvZC1vYmplY3QuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5h
dGl2ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICov
IHsgLyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBk
ICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZl
RnVuY3Rpb24gU3ludGF4OiAiYXN5bmMgZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAv
KiBkICovIH0iIChhc3luYyBmIC8qIGEgKi8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8g
fSknCit0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4t
ZnVuY3Rpb24tb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0
byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNv
ZGVdXG59IiAoJVJlZ0V4cCUuJCopJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29u
Zm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25h
dGl2ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3By
b3RvdHlwZS90b1N0cmluZy9mdW5jdGlvbi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRl
ci1saXN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVG
dW5jdGlvbiBTeW50YXg6ICJmdW5jdGlvbiBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8g
MCAvKiBmICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsg
Ki8gfSAvKiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAv
KiBiICovICggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8g
eyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0g
Ki8geyAvKiBuICovIH0pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMg
dG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8g
PSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGog
Ki8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAv
KiBhICovIGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8g
LCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwg
Ki8gKSAvKiBtICovIHsgLyogbiAqLyB9KScKQEAgLTc2Niw5ICs3NzUsNiBAQCB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUt
ZnVuY3Rpb24tYXJndQogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqtudWxswrssIMKrW29iamVjdCBBcmd1bWVudHNdwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFs
dWUtZnVuY3Rpb24tY2FsbGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtudWxswrssIMKrZnVuY3Rpb24gZygpIHsnCi10ZXN0L2J1aWx0LWlucy9P
YmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhw
LWRvbGxhcjEuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQt
aW5zL09iamVjdC9rZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434156</attachid>
            <date>2021-07-23 19:36:46 -0700</date>
            <delta_ts>2021-07-26 01:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210723193646.patch</filename>
            <type>text/plain</type>
            <size>55849</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YThhYzExYTFiYWQ5NmNkMDJmMTdmZGFlYzUwYjMxMGU3ZGUwYzQ2Li45ZDE5Nzk0NjhhOTcyYmU0
MzI1Zjc3NGQ5N2NhMWQ2NjQ1ZGU1YWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNy0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PiBhbmQgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAg
W0pTQ10gTGVnYWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIGEgcGFydCBvZiBbMV0uIFdlIGRlZmluZSBkZXRhaWxlZCBiZWhhdmlvciBvZiBsZWdhY3kg
UmVnRXhwIGNvbnN0cnVjdG9yIGFjY2Vzc29ycyAoZS5nLiBSZWdFeHAuJDEpLgorICAgICAgICBB
bmQgdGhpcyBwYXRjaCBhbGlnbnMgSlNDJ3MgaW1wbGVtZW50YXRpb24gdG8gdGhhdC4gVGhpcyBj
aGFuZ2UgbWFrZXMgdGhlc2UgQ3VzdG9tVmFsdWUgZmllbGRzIHRvIGFjY2Vzc29ycy4KKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLAorCisgICAgICAgICAgICAxLiBXZSB1c2UgQWNjZXNzb3IgYXR0
cmlidXRlcyB0byBtYWtlIGdldHRlciAvIHNldHRlciBmb3IgdGhlc2UgZmllbGRzLiBUaGlzIHBh
dGNoIGFkZHMgc2V0dGVyIHN1cHBvcnQgZm9yIEFjY2Vzc29yIExVVCBmaWVsZC4KKyAgICAgICAg
ICAgIDIuIFdlIHVwZGF0ZSBlbnVtZXJhYmxlIGV0Yy4gb2YgdGhlc2UgZmllbGRzLgorICAgICAg
ICAgICAgMy4gV2UgdXBkYXRlIHRlc3RzIHRoYXQgYXJlIHVzaW5nIFJlZ0V4cCB0byB0ZXN0IGN1
c3RvbSB2YWx1ZXMuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9w
b3NhbC1yZWdleHAtbGVnYWN5LWZlYXR1cmVzCisKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3ND
YXNlLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKwogMjAyMS0wNy0yMyAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgW1dlYklETF0gUHJv
cGVybHkgdmFsaWRhdGUgYW5kIG1lcmdlIGRlc2NyaXB0b3JzIGluIFtSZXBsYWNlYWJsZV0gc2V0
dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2Fz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5k
ZXggYmI2YzYxYjI3MGZhM2UwMzc5NjA1ZjQyZjUxZDg5NGM4ZTFmOTdkZS4uZmE4YjZiMjJlM2E0
ZTJkYzk1MGM3YmIyNDY5N2U2OTgyODBjMzViNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtMTQ3NywxNCArMTQ3Nyw5IEBAIHZvaWQgQWNj
ZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAg
Y2FzZSBDdXN0b21BY2Nlc3NvclNldHRlcjogewogICAgICAgICBHUFJSZWcgdmFsdWVSZWdzUGF5
bG9hZEdQUiA9IHZhbHVlUmVncy5wYXlsb2FkR1BSKCk7CiAKLSAgICAgICAgaWYgKGlzVmFsaWRP
ZmZzZXQobV9vZmZzZXQpKSB7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIGN1cnJTdHJ1Y3R1cmU7
Ci0gICAgICAgICAgICBpZiAoIWhhc0FsdGVybmF0ZUJhc2UoKSkKLSAgICAgICAgICAgICAgICBj
dXJyU3RydWN0dXJlID0gc3RydWN0dXJlKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgY3VyclN0cnVjdHVyZSA9IGFsdGVybmF0ZUJhc2UoKS0+c3RydWN0dXJlKHZtKTsKKyAg
ICAgICAgU3RydWN0dXJlKiBjdXJyU3RydWN0dXJlID0gaGFzQWx0ZXJuYXRlQmFzZSgpID8gYWx0
ZXJuYXRlQmFzZSgpLT5zdHJ1Y3R1cmUodm0pIDogc3RydWN0dXJlKCk7CisgICAgICAgIGlmIChp
c1ZhbGlkT2Zmc2V0KG1fb2Zmc2V0KSkKICAgICAgICAgICAgIGN1cnJTdHJ1Y3R1cmUtPnN0YXJ0
V2F0Y2hpbmdQcm9wZXJ0eUZvclJlcGxhY2VtZW50cyh2bSwgb2Zmc2V0KCkpOwotICAgICAgICB9
CiAKICAgICAgICAgYm9vbCBkb2VzUHJvcGVydHlTdG9yYWdlTG9hZHMgPSBtX3R5cGUgPT0gTG9h
ZCAKICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBHZXRHZXR0ZXIKQEAgLTE3NDksNyArMTc0NCwx
MCBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUm
IHN0YXRlKQogICAgICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBDdXN0b21WYWx1ZUdldHRlciB8
fCBtX3R5cGUgPT0gQ3VzdG9tQWNjZXNzb3JHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbVZhbHVl
U2V0dGVyIHx8IG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvclNldHRlcik7CiAgICAgICAgICAgICBB
U1NFUlQoIWRvZXNQcm9wZXJ0eVN0b3JhZ2VMb2Fkcyk7IC8vIE9yIHdlIG5lZWQgYW4gZXh0cmEg
cmVnaXN0ZXIuIFdlIHJlbHkgb24gcHJvcGVydHlPd25lckdQUiBiZWluZyBjb3JyZWN0IGhlcmUu
CiAKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBoYXNBbHRlcm5h
dGVCYXNlKCkgPyBhbHRlcm5hdGVCYXNlKCktPmdsb2JhbE9iamVjdCh2bSkgOiBzdHJ1Y3R1cmUo
KS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBrZWVw
IGdsb2JhbE9iamVjdCBhbGl2ZSBzaW5jZQorICAgICAgICAgICAgLy8gMS4gaWYgaXQgaXMgQ3Vz
dG9tVmFsdWUsIHRoZSBvd25lciBDb2RlQmxvY2sgKGV2ZW4gaWYgSlNHbG9iYWxPYmplY3QqIGlz
IG9uZSBvZiBDb2RlQmxvY2sgdGhhdCBpcyBpbmxpbmVkIGFuZCBoZWxkIGJ5IERGRyBDb2RlQmxv
Y2spIG11c3Qga2VlcCBpdCBhbGl2ZS4KKyAgICAgICAgICAgIC8vIDIuIGlmIGl0IGlzIEN1c3Rv
bUFjY2Vzc29yLCBzdHJ1Y3R1cmUgc2hvdWxkIGhvbGQgaXQuCisgICAgICAgICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY3VyclN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCk7CiAK
ICAgICAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSByb29tIGZvciB0aGUgQyBjYWxsIHNvIGFueSBv
ZiBvdXIgc3RhY2sgc3BpbGxhZ2UgaXNuJ3Qgb3ZlcndyaXR0ZW4uIEl0J3MKICAgICAgICAgICAg
IC8vIGhhcmQgdG8gdHJhY2sgaWYgc29tZW9uZSBkaWQgc3BpbGxhZ2Ugb3Igbm90LCBzbyB3ZSBq
dXN0IGFzc3VtZSB0aGF0IHdlIGFsd2F5cyBuZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODJkM2U3NDQxY2RhMzI1
ODlmYzcxZGI1NGQ5ZDI0NWQzOGRkY2VkMS4uMmI2OGExZmE0ZjhiNGVlZGUyMWRmOWZhNmIwN2I4
YjQ0MTU2YjJhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMzUsMTUgKzM1LDcgQEAgc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOwogc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4pOwogc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCk7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dCk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjEpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyMyk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcpOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KTsKLXN0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcik7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0KTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lKTsKIApAQCAtNTcsMjcgKzQ5LDI3IEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAKIC8q
IFNvdXJjZSBmb3IgUmVnRXhwQ29uc3RydWN0b3IubHV0LmgKIEBiZWdpbiByZWdFeHBDb25zdHJ1
Y3RvclRhYmxlCi0gICAgaW5wdXQgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAg
ICAgICAgTm9uZQotICAgICRfICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAg
ICAgICAgIERvbnRFbnVtCi0gICAgbXVsdGlsaW5lICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lICAgICAgTm9uZQotICAgICQqICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11
bHRpbGluZSAgICAgIERvbnRFbnVtCi0gICAgbGFzdE1hdGNoICAgICAgIHJlZ0V4cENvbnN0cnVj
dG9yTGFzdE1hdGNoICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQmICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9u
dEVudW0KLSAgICBsYXN0UGFyZW4gICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAg
ICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVj
dG9yTGFzdFBhcmVuICAgICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bQotICAgIGxlZnRD
b250ZXh0ICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLSAgICAkYCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAg
ICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4
cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQnICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCAgIERvbnREZWxldGV8UmVh
ZE9ubHl8RG9udEVudW0KLSAgICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIxICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDIgICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyMiAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQzICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMgICAgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLSAgICAkNCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0ICAgICAg
ICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNSAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ2ICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
ICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3ICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ5ICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgICBpbnB1dCAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAgICBDdXN0b21BY2Nlc3NvcnxE
b250RW51bQorICAgICRfICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAg
ICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVtCisgICAgbXVsdGlsaW5lICAgICAgIHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lICAgICAgQ3VzdG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICAkKiAg
ICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nlc3Nv
cnxEb250RW51bQorICAgIGxhc3RNYXRjaCAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRj
aCAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJCYgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9u
bHl8RG9udEVudW0KKyAgICBsYXN0UGFyZW4gICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFy
ZW4gICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQrICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgbGVmdENvbnRleHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkYCAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQorICAgIHJpZ2h0Q29udGV4dCAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dCAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJCcgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVh
ZE9ubHl8RG9udEVudW0KKyAgICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQyICAgICAg
ICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJl
YWRPbmx5fERvbnRFbnVtCisgICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNCAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxS
ZWFkT25seXxEb250RW51bQorICAgICQ1ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDYgICAg
ICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8
UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ4ICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29y
fFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KIEBlbmQKICov
CiAKQEAgLTEwMCwxMTQgKzkyLDk5IEBAIHZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgUmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5cGUsCiAgICAgcHV0
RGlyZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5zcGVjaWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9sLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNj
ZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTxpbnQgTj4KLWlubGluZSBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2Jq
ZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLiROIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAg
Y29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICB1bnNpZ25lZCBOID0gcHJvcGVydHlOYW1l
LnVpZCgpLT5hdCgxKSAtICcwJzsKKyAgICBBU1NFUlQoTiA+PSAxICYmIE4gPD0gOSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5n
ZXRCYWNrcmVmKGdsb2JhbE9iamVjdCwgTikpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkK
LXsKLSAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDE+KGdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17
Ci0gICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwyPihnbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewot
ICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDQ+KGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw1PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJl
dHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIHByb3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDc+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyOCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAgcmV0dXJu
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw4PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
cHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw5PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKLX0KLQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKLXsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdF
eHAuaW5wdXQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3wiX3Mp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxE
YXRhKCkuaW5wdXQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYg
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3Ry
dWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgIlJlZ0V4cC5tdWx0aWxpbmUgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGds
b2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhw
Q29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxE
YXRhKCkuZ2V0QmFja3JlZihnbG9iYWxPYmplY3QsIDApKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwor
ICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4
cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJSZWdFeHAubGFzdE1hdGNoIGdldHRlcnMgcmVxdWlyZSBSZWdFeHAgY29u
c3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVm
KGdsb2JhbE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFs
T2JqZWN0KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQ
YXJlbiBnZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7Cisg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0
LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0TGFzdFBhcmVuKGdsb2JhbE9iamVjdCkpKTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nh
c3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2Jh
bE9iamVjdCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBHbG9iYWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2Jq
ZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxlZnRDb250ZXh0IGdldHRlcnMgcmVxdWly
ZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3Ry
dWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCku
Z2V0UmlnaHRDb250ZXh0KGdsb2JhbE9iamVjdCkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAg
aWYgKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29u
c3RydWN0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgIlJlZ0V4cC5yaWdodENvbnRleHQgZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25z
dHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29u
dGV4dChnbG9iYWxPYmplY3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRS
ZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNE
eW5hbWljQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSkpIHsKLSAgICAgICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50
b1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwotICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGds
b2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3Ry
aW5nKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkgeworICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmlucHV0IHNldHRlcnMg
cmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogc3RyaW5nID0gSlNW
YWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGdsb2Jh
bE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5n
KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldFJl
Z0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0g
anNEeW5hbWljQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSkpIHsKLSAgICAgICAgYm9vbCBtdWx0aWxpbmUgPSBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAg
ICAgIGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxp
bmUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKSB7CisgICAgICAgIHRo
cm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubXVsdGlsaW5lIHNldHRl
cnMgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBtdWx0aWxpbmUg
PSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAg
IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUp
OworICAgIHJldHVybiB0cnVlOwogfQogCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1
Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggZGViMjI1Nzlm
YzhjZDZhMGI5OWRjZjBiMTk4YzM4OWY0OGNjMzQ2MC4uOWY4OGU0MjBlNWZiYjE1N2RkYjAzYjlm
MjIzZWE5Yjc4ZDUzNTllMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcApAQCAtMTYwMCwxMSArMTYwMCwxMyBAQCBjbGFzcyBKU1Rlc3RDdXN0b21HZXR0ZXJT
ZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGN1c3RvbUdldEFjY2Vzc29yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGN1c3RvbUdldFZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGN1c3RvbUdldFZhbHVlMik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihj
dXN0b21HZXRBY2Nlc3Nvckdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihjdXN0b21HZXRWYWx1ZUdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihjdXN0b21TZXRBY2Nlc3Nvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihjdXN0b21TZXRBY2Nlc3Nvckdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZTIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoY3VzdG9tU2V0VmFsdWVHbG9iYWxPYmplY3QpOwogc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIpOwogCkBAIC0xNjIxLDYgKzE2MjMs
MTggQEAgSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEoKICAgICByZXR1cm4gc2xvdFZhbHVlOwogfQog
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2Rl
KHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPihnbG9iYWxPYmpl
Y3QtPnZtKCkpKTsKKworICAgIGF1dG8qIHRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21HZXR0
ZXJTZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKSk7CisgICAgSlNWYWx1ZSB2YWx1
ZSA9IHRhcmdldC0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFs
dWUyIikpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUgPyB2YWx1ZSA6IGpzVW5k
ZWZpbmVkKCkpOworfQorCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNz
b3JHbG9iYWxPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2Jh
bE9iamVjdCk7CkBAIC0xNjk5LDYgKzE3MTMsMTggQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KGN1c3RvbVNldFZhbHVlR2xvYmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGN1c3RvbVNl
dFZhbHVlMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNs
b3RWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorewor
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RW
YWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPih2bSkpOworICAgIGF1dG8q
IHRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIqPihKU1ZhbHVlOjpkZWNv
ZGUoc2xvdFZhbHVlKSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGFyZ2V0KTsKKyAgICB0
YXJnZXQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInZhbHVlMiIp
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihjdXN0b21GdW5jdGlvblNldHRlciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3Nl
cnRTY29wZTsKQEAgLTE3MjMsNiArMTc0OSw4IEBAIHZvaWQgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0
dGVyOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nv
cih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbVZhbHVlIiksCiAgICAgICAg
IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBjdXN0b21HZXRWYWx1ZSwgY3VzdG9tU2V0
VmFsdWUpLCAwKTsKKyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImN1c3RvbVZhbHVlMiIpLAorICAgICAgICBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgY3VzdG9tR2V0VmFsdWUyLCBjdXN0b21TZXRWYWx1ZTIpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbVZhbHVlKSk7CiAgICAgcHV0
RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0
b21BY2Nlc3NvciIpLAogICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgY3Vz
dG9tR2V0QWNjZXNzb3IsIGN1c3RvbVNldEFjY2Vzc29yKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpOwogICAgIHB1dERpcmVjdEN1c3Rv
bUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tVmFsdWVHbG9i
YWxPYmplY3QiKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjNmQ0ZWQyNWM3MTk0M2Y4N2Y1NDkyNTI4MmZjMmFkZjFkNzE4
MTMxLi41MTQ3MDU1NjU4ZTEwY2ZlMGI1MGY3ZWEwNzkxMWUxNDcyMzY0OWRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDctMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4gYW5kIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IFtKU0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvZG9tL2dldE93blBy
b3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3JlZ2V4cC1j
YWNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRt
bDoKKyAgICAgICAgKiBqcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzOgor
ICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5q
czoKKyAgICAgICAgKiBqcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICoganMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbDoKKwog
MjAyMS0wNy0yMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAg
ICAgICAgW1dlYklETF0gUHJvcGVybHkgdmFsaWRhdGUgYW5kIG1lcmdlIGRlc2NyaXB0b3JzIGlu
IFtSZXBsYWNlYWJsZV0gc2V0dGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDk5Y2I5MzM3MTg5N2U0
ZTQ1NGUyMzU2OTQ2ODdkYmQyMWIzOWQ5ODkuLjg2OTdlNzYxZDE1ZTdkMDY1ZWEwYWNlYTI0OTZi
Zjg4ZDAxNmM3ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CkBAIC0zOSw5ICszOSwxMCBAQCBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTnVtYmVyLCAnTkVHQVRJVkVfSU5GSU5JVFkn
KS5oYXNPd25Qcm9wZXJ0eQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE51
bWJlciwgJ05FR0FUSVZFX0lORklOSVRZJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTnVtYmVyLCAnTkVHQVRJVkVf
SU5GSU5JVFknKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoTnVtYmVyLCAnTkVHQVRJVkVfSU5GSU5JVFknKS5jb25maWd1cmFibGUgaXMg
ZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycp
LnZhbHVlIGlzIFJlZ0V4cC4kXwotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KFJlZ0V4cCwgJyRfJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdF
eHAsICckXycpLmdldCBpcyBSZWdFeHAkX0dldHRlcgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuc2V0IGlzIFJlZ0V4cCRfU2V0dGVyCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5oYXNPd25Qcm9wZXJ0
eSgndmFsdWUnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KFJlZ0V4cCwgJyRfJykuaGFzT3duUHJvcGVydHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmVudW1lcmFibGUg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICck
XycpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoTm9kZSwgJ0RPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCcpLnZhbHVlIGlzIE5v
ZGUuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vcmVnZXhwLWNhY2hpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dAppbmRleCA4NTEzYzhlMmNlNWRhNGJhYWE1OWI1
ZTQxOTRjYmJiOWU0MWM5MWIxLi5jNTFjOTA5ZTM1ODRhZWE3N2FiMWE0MWJlMjZiOWMzODYyMTgx
NzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hpbmctZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy1leHBlY3RlZC50
eHQKQEAgLTEsNiArMSwxMCBAQAogVGhpcyB0ZXN0IGNoZWNrcyBvdXIgaW1wbGVtZW50YXRpb24g
b2YgdGhlIHNwZWNpYWwgUmVnRXhwIG1lbWJlciB2YXJpYWJsZXMuCiAKIFByb3BlcnRpZXMgb2Yg
UmVnRXhwIGF0IHN0YXJ0dXA6CiskJjoge30gKHJlYWQtb25seSkKKyQnOiB7fSAocmVhZC1vbmx5
KQorJCo6IHtmYWxzZX0gKHJlYWQtd3JpdGUpCiskKzoge30gKHJlYWQtb25seSkKICQxOiB7fSAo
cmVhZC1vbmx5KQogJDI6IHt9IChyZWFkLW9ubHkpCiAkMzoge30gKHJlYWQtb25seSkKQEAgLTEw
LDE0ICsxNCwyMyBAQCAkNjoge30gKHJlYWQtb25seSkKICQ3OiB7fSAocmVhZC1vbmx5KQogJDg6
IHt9IChyZWFkLW9ubHkpCiAkOToge30gKHJlYWQtb25seSkKKyRfOiB7fSAocmVhZC13cml0ZSkK
KyRgOiB7fSAocmVhZC1vbmx5KQogaW5wdXQ6IHt9IChyZWFkLXdyaXRlKQogbGFzdE1hdGNoOiB7
fSAocmVhZC1vbmx5KQogbGFzdFBhcmVuOiB7fSAocmVhZC1vbmx5KQogbGVmdENvbnRleHQ6IHt9
IChyZWFkLW9ubHkpCitsZW5ndGg6IHsyfSAocmVhZC1vbmx5KQogbXVsdGlsaW5lOiB7ZmFsc2V9
IChyZWFkLXdyaXRlKQorbmFtZToge1JlZ0V4cH0gKHJlYWQtb25seSkKK3Byb3RvdHlwZTogey8o
PzopL30gKHJlYWQtb25seSkKIHJpZ2h0Q29udGV4dDoge30gKHJlYWQtb25seSkKIAogUHJvcGVy
dGllcyBvZiBSZWdFeHAgYWZ0ZXIgLygxKSgyKSgzKSg0KSg1KSg2KSg3KSg4KSg5KSgwKS8uZXhl
Yyg8MTIzNDU2Nzg5MD4pOgorJCY6IHsxMjM0NTY3ODkwfQorJCc6IHs+fQorJCo6IHtmYWxzZX0K
KyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30KQEAgLTI3LDExICs0MCwxNiBAQCAk
NjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezwxMjM0NTY3ODkwPn0KKyRg
OiB7PH0KIGlucHV0OiB7PDEyMzQ1Njc4OTA+fQogbGFzdE1hdGNoOiB7MTIzNDU2Nzg5MH0KIGxh
c3RQYXJlbjogezB9CiBsZWZ0Q29udGV4dDogezx9CitsZW5ndGg6IHsyfQogbXVsdGlsaW5lOiB7
ZmFsc2V9CituYW1lOiB7UmVnRXhwfQorcHJvdG90eXBlOiB7Lyg/OikvfQogcmlnaHRDb250ZXh0
OiB7Pn0KIAogUmVnRXhwLiQwIGRvZXMgbm90IGV4aXN0CkBAIC00MSw2ICs1OSwxMCBAQCBSZWdF
eHAubXVsdGlsaW5lIGNvZXJjZXMgdmFsdWVzIHRvIGJvb2xlYW5zCiBSZWdFeHAuaW5wdXQgY29l
cmNlcyB2YWx1ZXMgdG8gc3RyaW5ncwogCiBQcm9wZXJ0aWVzIG9mIFJlZ0V4cCBhZnRlciAvKDEp
KDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDApLy5leGVjKFhYWCk6CiskJjogezEyMzQ1Njc4OTB9
CiskJzogez59CiskKjoge3RydWV9CiskKzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9
CkBAIC01MCwxNSArNzIsMjQgQEAgJDY6IHs2fQogJDc6IHs3fQogJDg6IHs4fQogJDk6IHs5fQor
JF86IHswfQorJGA6IHs8fQogaW5wdXQ6IHswfQogbGFzdE1hdGNoOiB7MTIzNDU2Nzg5MH0KIGxh
c3RQYXJlbjogezB9CiBsZWZ0Q29udGV4dDogezx9CitsZW5ndGg6IHsyfQogbXVsdGlsaW5lOiB7
dHJ1ZX0KK25hbWU6IHtSZWdFeHB9Citwcm90b3R5cGU6IHsvKD86KS99CiByaWdodENvbnRleHQ6
IHs+fQogCiAtLS0tLS0tLS0tIFtDbGVhcmVkIFJlZ0V4cCB2YWx1ZXNdIC0tLS0tLS0tLS0KIFBy
b3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIDwxMjM0NTY3ODkwPi5zZWFyY2goLygxKSgyKSgzKSg0
KSg1KSg2KSg3KSg4KSg5KSgwKS8pOgorJCY6IHsxMjM0NTY3ODkwfQorJCc6IHs+fQorJCo6IHt0
cnVlfQorJCs6IHswfQogJDE6IHsxfQogJDI6IHsyfQogJDM6IHszfQpAQCAtNjgsMTUgKzk5LDI0
IEBAICQ2OiB7Nn0KICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+
fQorJGA6IHs8fQogaW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkw
fQogbGFzdFBhcmVuOiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxp
bmU6IHt0cnVlfQorbmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29u
dGV4dDogez59CiAKIC0tLS0tLS0tLS0gW0NsZWFyZWQgUmVnRXhwIHZhbHVlc10gLS0tLS0tLS0t
LQogUHJvcGVydGllcyBvZiBSZWdFeHAgYWZ0ZXIgPDEyMzQ1Njc4OTA+LnJlcGxhY2UoLygxKSgy
KSgzKSg0KSg1KSg2KSg3KSg4KSg5KSgwKS8pOgorJCY6IHsxMjM0NTY3ODkwfQorJCc6IHs+fQor
JCo6IHt0cnVlfQorJCs6IHswfQogJDE6IHsxfQogJDI6IHsyfQogJDM6IHszfQpAQCAtODYsMTAg
KzEyNiwxNSBAQCAkNjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezwxMjM0
NTY3ODkwPn0KKyRgOiB7PH0KIGlucHV0OiB7PDEyMzQ1Njc4OTA+fQogbGFzdE1hdGNoOiB7MTIz
NDU2Nzg5MH0KIGxhc3RQYXJlbjogezB9CiBsZWZ0Q29udGV4dDogezx9CitsZW5ndGg6IHsyfQog
bXVsdGlsaW5lOiB7dHJ1ZX0KK25hbWU6IHtSZWdFeHB9Citwcm90b3R5cGU6IHsvKD86KS99CiBy
aWdodENvbnRleHQ6IHs+fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhw
LWNhY2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy5odG1sCmlu
ZGV4IDA2YWRhNzAxMTAyMGNlYjI4YmVkZmZmZDQ2ZThhYTgxMTU2MzU4MDQuLmI5ODcxNDUzODZl
NDRhMjQzOTQ1ZDBhNGFiMDYwZmVmYWFiNzQ0MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pz
L2RvbS9yZWdleHAtY2FjaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAt
Y2FjaGluZy5odG1sCkBAIC0yMCwxMCArMjAsNyBAQAogCiBmdW5jdGlvbiBwcmludFByb3BlcnRp
ZXNXaXRoUmVhZE9ubHkob2JqZWN0KQogewotICAgIHZhciBhcnJheSA9IG5ldyBBcnJheTsKLSAg
ICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBvYmplY3QpIHsKLSAgICAgICAgYXJyYXkucHVzaChwcm9w
ZXJ0eSk7Ci0gICAgfQorICAgIHZhciBhcnJheSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCk7CiAgICAgYXJyYXkuc29ydCgpOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJy
YXkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgdmFyIHByb3BlcnR5ID0gYXJyYXlbaV07CkBAIC0z
MywxMCArMzAsNyBAQAogCiBmdW5jdGlvbiBwcmludFByb3BlcnRpZXMob2JqZWN0KQogewotICAg
IHZhciBhcnJheSA9IG5ldyBBcnJheTsKLSAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBvYmplY3Qp
IHsKLSAgICAgICAgYXJyYXkucHVzaChwcm9wZXJ0eSk7Ci0gICAgfQorICAgIHZhciBhcnJheSA9
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7CiAgICAgYXJyYXkuc29ydCgpOwog
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgdmFy
IHByb3BlcnR5ID0gYXJyYXlbaV07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJj
ZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2Vz
L2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwppbmRleCBjNjUxMjExMzI4NTY2NzMwZjJmYzc5
ZTYxYTQ2ZTRlNjA0YTc1N2JmLi5lMzhiZjc0MjI1YzkxMTZhZWZiMmZmMDIwYmFjMDhkZTY4OTNi
NTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IuanMKQEAgLTI1LDcgKzI1LDkgQEAgZnVuY3Rpb24gZGVzY3JpcHRvclNob3Vs
ZEJlKG9iamVjdCwgcHJvcGVydHksIGV4cGVjdGVkKSB7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIlJl
Z0V4cC5wcm90b3R5cGUiLCAiJ2V4ZWMnIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZToiUmVnRXhwLnByb3RvdHlwZS5leGVjIn0p
OwogZGVzY3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5fX3Byb3RvX18uX19wcm90b19fIiwgIidj
cmVhdGVFbGVtZW50JyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmln
dXJhYmxlOiB0cnVlLCB2YWx1ZToiZG9jdW1lbnQuY3JlYXRlRWxlbWVudCJ9KTsKIGRlc2NyaXB0
b3JTaG91bGRCZSgiTnVtYmVyIiwgIidORUdBVElWRV9JTkZJTklUWSciLCB7d3JpdGFibGU6IGZh
bHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6Ik51bWJl
ci5ORUdBVElWRV9JTkZJTklUWSJ9KTsKLWRlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhwIiwgIick
XyciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRy
dWUsIHZhbHVlOiJSZWdFeHAuJF8ifSk7Cit2YXIgUmVnRXhwJF9HZXR0ZXIgPSBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZ2V0OwordmFyIFJlZ0V4cCRfU2V0
dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLnNldDsK
K2Rlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhwIiwgIickXyciLCB7Z2V0OiAiUmVnRXhwJF9HZXR0
ZXIiLCBzZXQ6ICJSZWdFeHAkX1NldHRlciIsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFi
bGU6IHRydWUsfSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIk5vZGUiLCAiJ0RPQ1VNRU5UX1BPU0lU
SU9OX0RJU0NPTk5FQ1RFRCciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBj
b25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05O
RUNURUQifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIk1hdGgiLCAiJ3NpbiciLCB7d3JpdGFibGU6
IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiJNYXRo
LnNpbiJ9KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiWzEsMiwzXSIsICIwIiwge3dyaXRhYmxlOiB0
cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiIxIn0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQtaW4tcHJv
dG90eXBlLWNoYWluLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQt
aW4tcHJvdG90eXBlLWNoYWluLmpzCmluZGV4IDQxOTFkMjFjNDIzMTAxZDI5NDAzYmIyNWE4NzE0
MTNhMTUyOTAzM2EuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXByb3Rv
dHlwZS1jaGFpbi5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1
dC1pbi1wcm90b3R5cGUtY2hhaW4uanMKQEAgLTEsMTIgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBjYWxsIGEgY3VzdG9tIHNldHRlciB3aGVuIHRo
ZSBzZXR0ZXIgaXMgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiIpOwotCi0vLyBUaGUgUmVnRXhwIE9i
amVjdCBpcyBhIGNvbnZlbmllbnQgY29uc3RydWN0b3Igd2l0aCBhIGN1c3RvbSBzZXR0ZXIuCi0v
LyBUaGlzIHdpbGwgYWxzbyB0ZXN0IHRoZSB3ZWlyZCBiZWhhdmlvdXIgaW4gd2hpY2ggdGhlIFJl
Z0V4cCBjb25zdHJ1Y3RvcgotLy8gc2V0dGVycyBhcmUgZXhwZWN0ZWQgdG8gYWN0IG9uIHRoZSBi
YXNlIG9iamVjdCAoZS5nLiB0aGUgY29uc3RydWN0b3Igb2JqZWN0KQotLy8gcmF0aGVyIHRoYW4g
dGhlIHRoaXMgdmFsdWUuCi12YXIgdGVzdE9iamVjdCA9IHtfX3Byb3RvX186IFJlZ0V4cCB9Ci0K
LXRlc3RPYmplY3QuaW5wdXQgPSAidGVzdElucHV0IgotCi1zaG91bGRCZSgidGVzdE9iamVjdC5p
bnB1dCIsICIndGVzdElucHV0JyIpCi1zaG91bGRCZSgiUmVnRXhwLmlucHV0IiwgIid0ZXN0SW5w
dXQnIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBl
LWNoYWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90
eXBlLWNoYWluLWV4cGVjdGVkLnR4dAppbmRleCAxYzgzMTYxNWRhNTliYTcwNTRjZjhiYzE5ODQ3
MTZkZGRjMTkzMDQwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUt
Y2hhaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDExICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgd2Ugd2lsbCBjYWxsIGEgY3VzdG9tIHNldHRlciB3aGVuIHRoZSBzZXR0ZXIgaXMgaW4gdGhl
IHByb3RvdHlwZSBjaGFpbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB0
ZXN0T2JqZWN0LmlucHV0IGlzICd0ZXN0SW5wdXQnCi1QQVNTIFJlZ0V4cC5pbnB1dCBpcyAndGVz
dElucHV0JwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNo
YWluLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5o
dG1sCmluZGV4IGNjMWE4MWMwMzYxOGYzMjg2NTQ0MWVmZTM1MGVhNmE5MmYxOTAzNzQuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbApAQCAtMSwxMCArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RhdGljLXB1
dC1pbi1wcm90b3R5cGUtY2hhaW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvTGliL2ZvcmluX2xpYl92My5iYXNlbGluZS1q
c2MgYi9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpz
YwppbmRleCA4NTUyNGQzMWUyMDdmMDA0N2JlNzY1ZjQwZGE0OGJiYjRiZGM0ODIyLi42MzIxMTNk
NzdmNjA5ODQwNjIyNTIwNmM1MWU3YjYwY2NlY2U3NDQyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYworKysgYi9KU1Rlc3Rz
L0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYwpAQCAtNzgsMzgg
Kzc4LDggQEAgZm9yLi5pbiBEYXRlICh3aXRoIHByb3RvdHlwZS5ibGFoMikKICAgYmxhaDIgPSBE
YXRlCiAKIGZvci4uaW4gUmVnRXhwCi0gIGlucHV0ID0gCi0gIG11bHRpbGluZSA9IGZhbHNlCi0g
IGxhc3RNYXRjaCA9IAotICBsYXN0UGFyZW4gPSAKLSAgbGVmdENvbnRleHQgPSAKLSAgcmlnaHRD
b250ZXh0ID0gCi0gICQxID0gCi0gICQyID0gCi0gICQzID0gCi0gICQ0ID0gCi0gICQ1ID0gCi0g
ICQ2ID0gCi0gICQ3ID0gCi0gICQ4ID0gCi0gICQ5ID0gCiAgIGJsYWgyID0gRnVuY3Rpb24KIGZv
ci4uaW4gUmVnRXhwICh3aXRoIGJsYWgpCi0gIGlucHV0ID0gCi0gIG11bHRpbGluZSA9IGZhbHNl
Ci0gIGxhc3RNYXRjaCA9IAotICBsYXN0UGFyZW4gPSAKLSAgbGVmdENvbnRleHQgPSAKLSAgcmln
aHRDb250ZXh0ID0gCi0gICQxID0gCi0gICQyID0gCi0gICQzID0gCi0gICQ0ID0gCi0gICQ1ID0g
Ci0gICQ2ID0gCi0gICQ3ID0gCi0gICQ4ID0gCi0gICQ5ID0gCiAgIGJsYWggPSBiCiAgIGJsYWgy
ID0gRnVuY3Rpb24KIGZvci4uaW4gbmV3IFJlZ0V4cApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZDU2NGRmNTZhZGM1MTg4YjI2ZTg5MWQ5
YWQ5ZTJkZDJkN2E2Mjc4Li40ZTMxYzc2OTcwODMxMDIwMTA1NDUxNjIxOWE1MjQ4ZDczNWI5ZTdi
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUwIEBACisyMDIxLTA3LTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+IGFuZCBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBbSlNDXSBMZWdhY3kgUmVnRXhwIGZpZWxkcyBzaG91bGQgYmUgYWNjZXNzb3JzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENoYWtyYUNvcmUv
dGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYzoKKyAgICAgICAgKiBtaWNyb2JlbmNo
bWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMuanM6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanM6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvY3VzdG9tLXNldHRlci1n
ZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qczoKKyAgICAgICAgKHRlc3QxLmdldEN1c3Rv
bVZhbHVlMik6CisgICAgICAgICh0ZXN0MSk6CisgICAgICAgICh0ZXN0MS5nZXRNdWx0aWxpbmUp
OiBEZWxldGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanM6Cisg
ICAgICAgICh0ZXN0MS5nZXRDdXN0b21WYWx1ZTIpOgorICAgICAgICAodGVzdDEpOgorICAgICAg
ICAodGVzdDEuZ2V0TXVsdGlsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFy
a3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanM6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJl
c3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzOgorICAgICAgICAodGVzdDEuZ2V0
Q3VzdG9tVmFsdWUyKToKKyAgICAgICAgKHRlc3QxKToKKyAgICAgICAgKHRlc3QxLmdldE11bHRp
bGluZSk6IERlbGV0ZWQuCisgICAgICAgICogc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJv
cGVydHktMi5qczoKKyAgICAgICAgKHRlc3QyLmZvbyk6CisgICAgICAgICh0ZXN0Mik6CisgICAg
ICAgICogc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMy5qczoKKyAgICAgICAg
KHRlc3Q2LmZvbyk6CisgICAgICAgICh0ZXN0Nik6CisgICAgICAgICogc3RyZXNzL29iamVjdC1h
c3NpZ24tZmFzdC1wYXRoLmpzOgorICAgICAgICAqIHN0cmVzcy9yZWZsZWN0LXNldC5qczoKKyAg
ICAgICAgKiBzdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11bmlx
dWUuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKGRlc2Mub2YuT2JqZWN0
LmVudHJpZXMuT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpOgorICAgICAgICAqIHN0
cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpzOiBBZGRlZC4KKyAgICAgICAgKGxldC5yZWFsbS5j
cmVhdGVHbG9iYWxPYmplY3QpOgorICAgICAgICAoZGVzY3JpcHRvci5jYWxsKToKKyAgICAgICAg
KiBzdHJlc3Mvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICog
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKwogMjAyMS0wNy0yMyAgQWxleGV5IFNodmF5a2Eg
IDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQ2FsbCBjdXN0b20gYWNj
ZXNzb3JzIC8gdmFsdWVzIHdpdGggdGhlaXIgaG9sZGVyJ3MgZ2xvYmFsIG9iamVjdApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1v
cnBoaWMuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1w
b2x5bW9ycGhpYy5qcwppbmRleCA1OTAxYzBkYjNjZmU1MDRiYWE0M2Y5MjA0YTI0Mjc5N2MyZDMw
MDdhLi4zOGYwY2FkMjIwYjA5OGUxMGNkMzZjNzQzNGRhYTNhOWQ3MDAwNmY4IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhp
Yy5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1w
b2x5bW9ycGhpYy5qcwpAQCAtMSwyMCArMSwyMCBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJB
cHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQog
Ci1vID0gUmVnRXhwOworbyA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBq
ID0gMDsKIGwgPSAyOwogeiA9IDA7CiBmdW5jdGlvbiB0ZXN0KG8sIHopIHsKICAgICB2YXIgayA9
IGFyZ3VtZW50c1soKChqIDw8IDEgfCBsKSA+PiAxKSBeIDEpICYgKHogKj0gMSldOwotICAgIGsu
aW5wdXQgPSAwOworICAgIGsuY3VzdG9tVmFsdWUyID0gMDsKICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDI1MDAwOyBpKyspIHsKLSAgICAgICAgay5pbnB1dCA9ICJmb28iOworICAgICAgICBrLmN1
c3RvbVZhbHVlMiA9ICJmb28iOwogICAgIH0KIAotICAgIHJldHVybiBrLmlucHV0OworICAgIHJl
dHVybiBrLmN1c3RvbVZhbHVlMjsKIH0KLXZhciByZXN1bHQgPSB0ZXN0KHtfX3Byb3RvX186IHti
YXI6IndpYmJsZSIsIGlucHV0OiJmb28ifX0pOwotdmFyIHJlc3VsdCA9IHRlc3Qoe2lucHV0OiJm
b28ifSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90b19fOiB7YmFyOiJ3aWJibGUiLCBjdXN0
b21WYWx1ZTI6ImZvbyJ9fSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7Y3VzdG9tVmFsdWUyOiJmb28i
fSk7CiB2YXIgcmVzdWx0ID0gdGVzdChvKQogZm9yICh2YXIgayA9IDA7IGsgPCA2OyBrKyspIHsK
ICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
YXNzaWduLWN1c3RvbS1zZXR0ZXIuanMKaW5kZXggZmFkZDRmOTdhNGFjN2RkYzhlOTMxNTBhMWUy
NjNhYTA1MTFjZmYyZC4uMzQwZmI4ZGEyMzljMTQ5YmE2YzA2OTcwOWUzZDY5OGM5ZmQ3NzQ2ZCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIu
anMKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanMK
QEAgLTEsMTQgKzEsMTMgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2Vy
aWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vIFJlZ0V4cC5pbnB1
dCBpcyBhIGhhbmR5IHNldHRlcgogCi12YXIgbyA9IFJlZ0V4cDsKK3ZhciBvID0gJHZtLmNyZWF0
ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QobykgewogICAgIHZhciBr
ID0gMDsKLSAgICBvLmlucHV0ID0gImJhciI7CisgICAgby5jdXN0b21WYWx1ZTIgPSAiYmFyIjsK
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDAwOyBpKyspCi0gICAgICAgIG8uaW5wdXQgPSAi
Zm9vIjsKKyAgICAgICAgby5jdXN0b21WYWx1ZTIgPSAiZm9vIjsKIAotICAgIHJldHVybiBvLmlu
cHV0OworICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKIH0KIAogdmFyIHJlc3VsdCA9IHRlc3Qo
byk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tc2V0dGVyLWdl
dHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9t
LXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qcwppbmRleCBhOGU1NzVlYzYxZjIxYzYy
ZDE3N2M3N2U1ZTA0YzQxNmU3OGZmZDM5Li40ZGNhYTc0ODM3MDgwZThiZGNhMDNiYjJjZWJiM2Ux
OGZlM2M3MWQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tc2V0
dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2N1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanMKQEAgLTUsMjEgKzUs
MjAgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIH0KIG5vSW5saW5lKGFzc2VydCk7CiAKLS8vIFJl
Z0V4cC5pbnB1dCBpcyBhIGhhbmR5IGN1c3RvbSBnZXR0ZXIvc2V0dGVyLgotdmFyIG8xID0gUmVn
RXhwOwordmFyIG8xID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0
aW9uIHRlc3QobykgewotICAgIG8uaW5wdXQgPSAiYmFyIjsKLSAgICByZXR1cm4gby5pbnB1dDsK
KyAgICBvLmN1c3RvbVZhbHVlMiA9ICJiYXIiOworICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsK
IH0KIG5vSW5saW5lKHRlc3QpOwogCiB2YXIgbzIgPSB7Ci0gICAgaW5wdXQ6ICJoZWxsbyIKKyAg
ICBjdXN0b21WYWx1ZTI6ICJoZWxsbyIKIH0KIAogdmFyIG8zID0gewogICAgIHg6IDIwLAotICAg
IGlucHV0OiAiaGVsbG8iCisgICAgY3VzdG9tVmFsdWUyOiAiaGVsbG8iCiB9CiAKIC8vIEZpcnN0
IGNvbXBpbGUgYXMgR2V0QnlJZCBub2RlLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvY3VzdG9tLXZhbHVlLTIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20t
dmFsdWUtMi5qcwppbmRleCBiZTQyODlmOTNiMzk2NzkwZDIwZDg0ODFhN2YwMmM2NGFmN2RiMmYw
Li4zYjViYjUyZmJjOTI1OTg5MGY2YzBjMDFkYmRlNzFhNjI3NTBiZDY2IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcworKysgYi9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcwpAQCAtNCwyNCArNCwyNSBAQCBmdW5jdGlv
biBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZhbHVl
ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QxKCkg
ewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11bHRp
bGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1cm4g
by5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7CisgICAg
bm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAotICAgIFJlZ0V4cC5mb28gPSA0MjsKKyAgICBW
YWx1ZS5mb28gPSA0MjsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBvLl9fcHJvdG9fXyA9IFJl
Z0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAgby5fX3Byb3RvX18gPSBW
YWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAogICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRNdWx0aWxpbmUobykg
PT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihvKSA9PT0gZmFsc2Up
OwogICAgIH0KLSAgICBkZWxldGUgUmVnRXhwLmZvbzsKKyAgICBkZWxldGUgVmFsdWUuZm9vOwog
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChn
ZXRNdWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVl
MihvKSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIHRlc3QxKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9jdXN0b20tdmFsdWUuanMKaW5kZXggMjJlMTNlYWEzOTFjNjc1YmIyMWQxNDMxODNkMGRlMjU2
NjEwOTljOS4uMGRiNGQyNWQ3ZWE1YzI1OTE1MTcwNGQ3Y2EyNTY0ZWQ2MzNiYTgxOCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzCisrKyBiL0pTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qcwpAQCAtNCwxOCArNCwxOSBAQCBmdW5j
dGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZh
bHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3Qx
KCkgewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11
bHRpbGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1
cm4gby5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7Cisg
ICAgbm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBv
Ll9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAg
by5fX3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAog
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChn
ZXRNdWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVl
MihvKSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9n
ZXQtY3VzdG9tLWdldHRlci5qcwppbmRleCBmMWJmZjUxZmE3MzI2ODU0YjAwZjczNWUwOGE1OTdi
M2M1Y2Y3NjgyLi44YjkwOTY3NmZkYmM4NzRmNDk2NjA4NmEwNmY5NzE0ZDg0OTRlNTQ1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcworKysg
Yi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwpAQCAtMSwxMyAr
MSwxMiBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBh
ZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy8gUmVnRXhwLmlucHV0IGlzIGEgaGFu
ZHkgZ2V0dGVyCiAKLXZhciBvID0gUmVnRXhwOwotby5pbnB1dCA9ICJmb28iOwordmFyIG8gPSAk
dm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOworby5jdXN0b21WYWx1ZTIgPSAiZm9v
IjsKIAogZnVuY3Rpb24gdGVzdChvKSB7CiAgICAgdmFyIHJlc3VsdCA9IG51bGw7CiAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAzMDAwMDsgaSsrKQotICAgICAgICByZXN1bHQgPSBvLmlucHV0Owor
ICAgICAgICByZXN1bHQgPSBvLmN1c3RvbVZhbHVlMjsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5
LTEuanMgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEuanMK
aW5kZXggMGNjODA0YTA3MmI5OTU4ZDE4YTllYjkyMGVlMjgwMWNhM2QxYjFlYS4uYmJiZGM4MzQz
YzgzMzk4NTdiMTNlYjUyYzUwYzE3NGM4YWU2ZWM4MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qcwpAQCAtMywyMSArMywyMSBAQCBmdW5j
dGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZh
bHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3Qx
KCkgewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11
bHRpbGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1
cm4gby5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7Cisg
ICAgbm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBv
Ll9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAg
by5fX3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAog
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyArK2kpIHsKLSAgICAgICAgYXNzZXJ0KGdldE11
bHRpbGluZShvKSA9PT0gZmFsc2UpOworICAgICAgICBhc3NlcnQoZ2V0Q3VzdG9tVmFsdWUyKG8p
ID09PSBmYWxzZSk7CiAgICAgfQotICAgIGRlbGV0ZSBSZWdFeHAuaW5wdXQ7Ci0gICAgZGVsZXRl
IFJlZ0V4cC5tdWx0aWxpbmU7Ci0gICAgYXNzZXJ0KGdldE11bHRpbGluZShvKSA9PT0gdW5kZWZp
bmVkKTsKKyAgICBkZWxldGUgVmFsdWUuY3VzdG9tVmFsdWUyOworICAgIGFzc2VydChnZXRDdXN0
b21WYWx1ZTIobykgPT09IHVuZGVmaW5lZCk7CiB9CiB0ZXN0MSgpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzIGIvSlNUZXN0cy9z
dHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzCmluZGV4IDBhNWY5ZTJlNzlh
NTU3ZmQ3NGIyNjdiZWZkNTkwNjY5YTdmOTlmZjguLjVhNmU0Y2I0MmQ1NTU3YjUzM2ZiYjgxNDAx
ZTdmYTEzNDU1YmNmZjIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1k
ZWxldGUtcHJvcGVydHktMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVs
ZXRlLXByb3BlcnR5LTIuanMKQEAgLTEsMTEgKzEsMTIgQEAKK2NvbnN0IFZhbHVlID0gJHZtLmNy
ZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgIGZ1
bmN0aW9uIGZvbygpIHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDg7IGkrKykgewotICAgICAgICAgICAgbGV0IHggPSBvLm11bHRpbGluZTsKLSAg
ICAgICAgICAgIG8uX19wcm90b19fID0gUmVnRXhwOworICAgICAgICAgICAgbGV0IHggPSBvLmN1
c3RvbVZhbHVlMjsKKyAgICAgICAgICAgIG8uX19wcm90b19fID0gVmFsdWU7CiAgICAgICAgIH0K
LSAgICAgICAgZGVsZXRlIFJlZ0V4cC5pbnB1dDsKKyAgICAgICAgZGVsZXRlIFZhbHVlLmN1c3Rv
bVZhbHVlOwogICAgIH0KIAogICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
Y3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzIGIvSlNUZXN0cy9zdHJlc3MvY3VzdG9t
LXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzCmluZGV4IGMwNjZhMjgyMzA1N2RmMTNkMjRmYjlm
Zjk3MmQ1Nzc2NTcyNTU5YjUuLjg5NmUzMDU4YjlkZGFkYjRmMTM0YzllOTEwYTMwZjdmMjhjYmVj
NDIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVy
dHktMy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5
LTMuanMKQEAgLTEsMTEgKzEsMTIgQEAKIGZ1bmN0aW9uIHRlc3Q2KCkgeworICAgIHZhciBjdXN0
b20gPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwogICAgIGZ1bmN0aW9uIGZv
bygpIHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDg7IGkrKykgewotICAgICAgICAgICAgby5sYXN0TWF0Y2g7Ci0gICAgICAgICAgICBvLl9fcHJv
dG9fXyA9IFJlZ0V4cDsKKyAgICAgICAgICAgIG8uY3VzdG9tVmFsdWUyOworICAgICAgICAgICAg
by5fX3Byb3RvX18gPSBjdXN0b207CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlIFJlZ0V4cC5p
bnB1dDsKKyAgICAgICAgZGVsZXRlIGN1c3RvbS5jdXN0b21WYWx1ZTI7CiAgICAgfQogCiAgICAg
Zm9vKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0
aC5qcyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCmluZGV4IDU4
ZDQxMWM5NTE3MDU1MzkwM2RmY2UyZGI2YWY2ZmEyMzg2MThiZWMuLjc4MjMwMDc2N2I4YWY4MDM5
M2EyZDI1ZGY1ZDEwNTFmMzRkYzZkNmYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29iamVj
dC1hc3NpZ24tZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24t
ZmFzdC1wYXRoLmpzCkBAIC0zMiw3ICszMiwxMSBAQCBmdW5jdGlvbiBjaGVja1Byb3BlcnR5KG9i
amVjdCwgbmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMgPSB7IHdyaXRhYmxlOiB0cnVlLCBlbnVtZQog
CiB7CiAgICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIFJlZ0V4cCk7Ci0gICAgc2hv
dWxkQmUoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocmVzdWx0KS5z
b3J0KCkpLCBgWyIkMSIsIiQyIiwiJDMiLCIkNCIsIiQ1IiwiJDYiLCIkNyIsIiQ4IiwiJDkiLCJp
bnB1dCIsImxhc3RNYXRjaCIsImxhc3RQYXJlbiIsImxlZnRDb250ZXh0IiwibXVsdGlsaW5lIiwi
cmlnaHRDb250ZXh0Il1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0
T3duUHJvcGVydHlOYW1lcyhyZXN1bHQpLnNvcnQoKSksIGBbXWApOworfQoreworICAgIGxldCBy
ZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRl
cigpKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJvcGVydHlO
YW1lcyhyZXN1bHQpLnNvcnQoKSksIGBbImN1c3RvbUFjY2Vzc29yIiwiY3VzdG9tQWNjZXNzb3JH
bG9iYWxPYmplY3QiLCJjdXN0b21BY2Nlc3NvclJlYWRPbmx5IiwiY3VzdG9tRnVuY3Rpb24iLCJj
dXN0b21WYWx1ZSIsImN1c3RvbVZhbHVlMiIsImN1c3RvbVZhbHVlR2xvYmFsT2JqZWN0IiwiY3Vz
dG9tVmFsdWVOb1NldHRlciJdYCk7CiB9CiB7CiAgICAgZnVuY3Rpb24gSGVsbG8oKSB7IH0KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZmxlY3Qtc2V0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
cmVmbGVjdC1zZXQuanMKaW5kZXggNjQwYmVmZmRiMzI1YzE3ODA0YmUxOGUwZWI5ODRjZmI4ZGNl
NzE2OS4uYmMwNDgwODRmYjRmZmIxYTExMjIzYjgzODRjY2E3OGFmNDM3YzE5MiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvcmVmbGVjdC1zZXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVm
bGVjdC1zZXQuanMKQEAgLTExMTcsMTAgKzExMTcsNyBAQCBmdW5jdGlvbiB0ZXN0NSgpIHsKICAg
ICByZWNlaXZlclRlc3RJbmRleGVkKC9oZWxsby8sIHt9KTsKIH0oKSk7CiAKLShmdW5jdGlvbiBj
dXN0b21WYWx1ZSgpIHsKLSAgICAvLyBJbiB0aGlzIGNhc2UsIFJlZ0V4cC5tdWx0aWxpbmUgYmVo
YXZlcyBsaWtlIGEgc2V0dGVyIGJlY2F1c2UgaXQgY29lcmNlIGJvb2xlYW4gdHlwZS4KLSAgICAv
LyBBbnl3YXksIGl0J3MgT0ssIGJlY2F1c2UgUmVnRXhwLm11bHRpbGluZSBpcyBub3Qgc3BlY2lm
aWVkIGluIHRoZSBzcGVjLgotCisoZnVuY3Rpb24gcmVnRXhwTXVsdGlsaW5lKCkgewogICAgIGZ1
bmN0aW9uIHRlc3QxKCkgewogICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdt
dWx0aWxpbmUnLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVj
dC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIHRydWUpOwpAQCAtMTEyOCw4ICsxMTI1LDggQEAg
ZnVuY3Rpb24gdGVzdDEoKSB7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwg
J211bHRpbGluZScpLCBmYWxzZSk7CiAKICAgICAgICAgdmFyIHJlY2VpdmVyID0ge307Ci0gICAg
ICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5v
JywgcmVjZWl2ZXIpLCB0cnVlKTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2
ZXIsICdtdWx0aWxpbmUnKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkVGhyb3coKCkg
PT4gUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZl
ciksIGBUeXBlRXJyb3I6IFJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBj
b25zdHJ1Y3RvciBhcyB8dGhpc3xgKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVj
ZWl2ZXIsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVj
dC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKICAgICB9CiAKQEAgLTExNDEsOCAr
MTEzOCw4IEBAIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgICAgICBzaG91bGRCZShSZWZsZWN0Lmdl
dChSZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOwogCiAgICAgICAgIHZhciByZWNlaXZlciA9
IHt9OwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAn
Q2FwcHVjY2lubycsIHJlY2VpdmVyKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3Qu
Z2V0KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNob3Vs
ZFRocm93KCgpID0+IFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5v
JywgcmVjZWl2ZXIpLCBgVHlwZUVycm9yOiBSZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWly
ZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8YCk7CisgICAgICAgIHNob3VsZEJlKFJlZmxl
Y3QuZ2V0KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAgICAgICAgIHNob3Vs
ZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CiAgICAgfQogCkBA
IC0xMTUxLDExICsxMTQ4LDExIEBAIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgICAgICBzaG91bGRC
ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cCwgJ211bHRpbGluZScsIHsKICAgICAgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZQogICAgICAgICB9KSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJl
KFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CisgICAgICAgIHNob3Vs
ZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCB1bmRlZmluZWQpOwogICAgICAg
ICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2FwcHVjY2lubycp
LCBmYWxzZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGlu
ZScpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRp
bGluZScpLCB1bmRlZmluZWQpOwogICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAs
ICdtdWx0aWxpbmUnLCAwKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChS
ZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0Lmdl
dChSZWdFeHAsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKIAogICAgICAgICB2YXIgcmVjZWl2
ZXIgPSB7fTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5l
JywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZlciksIGZhbHNlKTsKQEAgLTEyMDEsNiArMTE5OCw1NSBA
QCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICB9LCBgVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNz
aWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwogfSgpKTsKIAorKGZ1bmN0aW9uIGN1c3RvbVZh
bHVlKCkgeworICAgIGNvbnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0
ZXIoKTsKKyAgICBmdW5jdGlvbiB0ZXN0MSgpIHsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5z
ZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8n
KTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAw
KSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFs
dWUyJyksIDApOworCisgICAgICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRC
ZShSZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2
ZXIpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0
b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInKSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDIo
KSB7CisgICAgICAgICd1c2Ugc3RyaWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsK
KyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwg
dHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUy
JyksIDApOworCisgICAgICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIp
LCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0b21W
YWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFs
dWUsICdjdXN0b21WYWx1ZTInKSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDMoKSB7
CisgICAgICAgICd1c2Ugc3RyaWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQ
cm9wZXJ0eShWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsIHsKKyAgICAgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIH0pLCB0cnVlKTsK
KyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5k
ZWZpbmVkKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1
ZTInLCAnQ2FwcHVjY2lubycpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0
KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyksIHVuZGVmaW5lZCk7CisgICAgICAgIHNob3VsZEJlKFJl
ZmxlY3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgMCksIGZhbHNlKTsKKyAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKwor
ICAgICAgICB2YXIgcmVjZWl2ZXIgPSB7fTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgZmFsc2UpOwor
ICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ2N1c3RvbVZhbHVlMicpLCB1
bmRlZmluZWQpOworICAgIH0KKworICAgIHRlc3QxKCk7CisgICAgdGVzdDIoKTsKKyAgICB0ZXN0
MygpOworfSgpKTsKKwogKGZ1bmN0aW9uIGZ1bmN0aW9uQ2FzZSgpIHsKICAgICB2YXIgZnVuYyA9
IGZ1bmN0aW9uICgpIHsgfTsKICAgICBzaG91bGRCZShSZWZsZWN0LmdldChmdW5jLCAnYXJndW1l
bnRzJyksIG51bGwpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVj
dG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11bmlxdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAt
Y29uc3RydWN0b3ItZG9sbGFyLWdldHRlcnMtYXJlLXVuaXF1ZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjY2
NTRhYWQ1NWU1MmIxYWMzNDhmNjNmOTVhNmFhMDE2YmNiMDE0Ci0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11bmlx
dWUuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gYXNzZXJ0KHgpIHsKKyAgICBpZiAoIXgp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiEiKTsKK30KKworY29uc3Qg
c2VlbkdldHRlcnMgPSBuZXcgV2Vha1NldCgpOworCitmb3IgKGNvbnN0IFtrZXksIGRlc2NdIG9m
IE9iamVjdC5lbnRyaWVzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKFJlZ0V4cCkp
KSB7CisgICAgaWYgKCEvXlwkXGQkLy50ZXN0KGtleSkpCisgICAgICAgIGNvbnRpbnVlOworCisg
ICAgYXNzZXJ0KHR5cGVvZiBkZXNjLmdldCA9PT0gImZ1bmN0aW9uIik7CisgICAgYXNzZXJ0KCFz
ZWVuR2V0dGVycy5oYXMoZGVzYy5nZXQpKTsKKworICAgIHNlZW5HZXR0ZXJzLmFkZChkZXNjLmdl
dCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpz
IGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDgx
Yjc5ODY3NzdmNmI3OTA5MWJkMDYzNzM0NzkwN2FjYzQ3YWQ3Ci0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpAQCAtMCwwICsxLDkgQEAKK2xl
dCByZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOworeworICAgIGxldCBkZXNjcmlwdG9yID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdFeHAsICJtdWx0aWxpbmUi
KTsKKyAgICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOworfQoreworICAg
IGxldCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5S
ZWdFeHAsICJpbnB1dCIpOworICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwocmVhbG0uUmVnRXhwLCA0
Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlw
ZS1jaGFpbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWlu
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU2Y2U0Y2M3MzczZDcyNzYwNTVhMjRkNWQxOGUxMTAyMDEwZDhmMDgK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlw
ZS1jaGFpbi5qcwpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwordmFyIHRhcmdldCA9ICR2bS5j
cmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7Cit2YXIgdGVzdE9iamVjdCA9IHsgX19wcm90
b19fOiB0YXJnZXQgfQordmFyIHJlc3VsdCA9IHsKKyAgICByZXN1bHQ6IHVuZGVmaW5lZAorfTsK
KwordGVzdE9iamVjdC5jdXN0b21WYWx1ZSA9IHJlc3VsdDsKKworc2hvdWxkQmUocmVzdWx0LnJl
c3VsdCwgdGFyZ2V0KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBi
L0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCBhMzFjZGZlOWRlNjc2MmE1ZDE1ZWU5
NDUwZTcwMWM0YzdmZDBkMWIyLi4zZWViYTc5YWNmMTY0MTYzYzg2NjJmYTkzOGU4ODIwMDdmOWI0
MjE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yMiw3ICsyMiw2IEBAIHNraXA6CiAgICAgLSBBdG9t
aWNzLndhaXRBc3luYwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NDkzMQogICAgIC0gcmVnZXhwLWxvb2tiZWhpbmQKLSAgICAtIGxlZ2FjeS1yZWdleHAK
ICAgICAtIGNsZWFudXBTb21lCiAgICAgLSBJbnRsLkxvY2FsZS1pbmZvCiAgICAgLSByZXNpemFi
bGUtYXJyYXlidWZmZXIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA4MmY4OWJhOTc4
YWY1YTllMDk5OTliMzA3MDNkODBiN2E1MmI1YmRhLi4yOGY0ZTAwYWQxMzdmNjNlMTZiZTEyODhi
YjI0YjUyNGRjMDY5MjAxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC01LDYgKzUs
MTIgQEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9uL2NyZWF0ZWR5bmZuLWh0bWwtY2xv
c2UtY29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9idWlsdC1pbnMvRnVuY3Rpb24vY3Jl
YXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpzOgogICBkZWZhdWx0OiAiU3ludGF4
RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJu
IG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3RyaWN0IG1vZGU6ICJTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3Ig
YSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4cC9w
cm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWluc3RhbmNlLmpzOgorICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJSZWFs
bV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZS5jYWxsKG90aGVyUmVhbG1f
cmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYW5uZXhCL2J1aWx0
LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1zdWJjbGFzcy1pbnN0YW5jZS5qczoK
KyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3JlZ2V4cC5jb21waWxlKClgIHRo
cm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBh
IFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1kZWNs
LWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3JlYXRlZCBwcmlvciB0byBldmFs
dWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9ldmFsLWNvZGUv
ZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1lYXJseS1lcnItZm9yLWluLmpz
OgpAQCAtNjY5LDYgKzY3NSw5IEBAIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90
b1N0cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50LmpzOgogdGVzdC9idWlsdC1pbnMv
RnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1ldGhvZC1vYmplY3QuanM6CiAgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDog
ImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICovIHsgLyogZCAqLyB9IiAoYXN5bmMg
ZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICovIH0pJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiYXN5
bmMgZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICovIH0iIChhc3luYyBmIC8q
IGEgKi8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8gfSknCit0ZXN0L2J1aWx0LWlucy9G
dW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4tZnVuY3Rpb24tb2JqZWN0LmpzOgor
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50
YXg6ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IiAoJVJlZ0V4cCUuJCop
JworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rp
b24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIgKCVSZWdF
eHAlLiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9mdW5j
dGlvbi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRlci1saXN0LmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5j
dGlvbiBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAvKiBmICovICwgLyogZyAqLyB7
IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8gfSAvKiBsICovICkgLyogbSAq
LyB7IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAvKiBiICovICggLyogYyAqLyBhIC8q
IGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9
IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0pJwogICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3lu
dGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAs
IC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAq
LyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAvKiBhICovIGYgLyogYiAqLyAoIC8q
IGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBi
IC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAq
LyB9KScKQEAgLTc2Niw5ICs3NzUsNiBAQCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxz
L0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtZnVuY3Rpb24tYXJndQogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtudWxswrssIMKrW29iamVj
dCBBcmd1bWVudHNdwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJu
YWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtZnVuY3Rpb24tY2FsbGVyLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtudWxswrss
IMKrZnVuY3Rpb24gZygpIHsnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmlu
ZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhwLWRvbGxhcjEuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUg
dHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9rZXlzL29yZGVy
LWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhd
IGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434194</attachid>
            <date>2021-07-26 01:03:42 -0700</date>
            <delta_ts>2021-07-29 17:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220233-20210726010341.patch</filename>
            <type>text/plain</type>
            <size>55754</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YjM5ZGVjZTUzNjk4YmE3MDU5Yjc5OWQ1MDU1ODMxODY5NzQ3ZDY3Li40ZTJjOGM5MDg5NGU5ZTk2
NmJhMTBiYWZkM2M0MzU0YjhlZTNiNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PiBhbmQgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAg
W0pTQ10gTGVnYWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIGEgcGFydCBvZiBMZWdhY3kgUmVnRXhwIGZlYXR1cmVzIHByb3Bvc2FsWzFdLCByZXBsYWNp
bmcKKyAgICAgICAgY3VzdG9tIHZhbHVlcyB3aXRoIGN1c3RvbSBhY2Nlc3NvcnMgdGhhdCByZXF1
aXJlIHx0aGlzfCB2YWx1ZSB0byBiZSBSZWdFeHAKKyAgICAgICAgY29uc3RydWN0b3Igb2YgdGhl
IHNhbWUgcmVhbG0uCisKKyAgICAgICAgQXBhcnQgZnJvbSBmaXhpbmcgcHJvcGVydHkgZGVzY3Jp
cHRvcnMsIHRoaXMgY2hhbmdlIGJyaW5ncyBsZWdhY3kgUmVnRXhwQ29uc3RydWN0b3IKKyAgICAg
ICAgZmllbGRzIGluIGNvbXBsaWFuY2Ugd2l0aCBpbnZhcmlhbnRzIG9mIGludGVybmFsIG1ldGhv
ZHNbMl0gKGRlc2NyaWJlZCBpbiAjMTUxMzQ4KSwKKyAgICAgICAgYWxpZ25pbmcgSlNDIHdpdGgg
VjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAgICBJdCBkb2Vzbid0LCBob3dldmVyLCBpbXBs
ZW1lbnQgW1tMZWdhY3lGZWF0dXJlc0VuYWJsZWRdXSBhbmQgUmVnRXhwLnByb3RvdHlwZS5jb21w
aWxlCisgICAgICAgIGNoYW5nZXMuCisKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKwogMjAyMS0wNy0yNSAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUGFydGx5IGltcGxlbWVudCBG
dW5jdGlvbi5wcm90b3R5cGUue2NhbGxlcixhcmd1bWVudHN9IHJlZmxlY3Rpb24gcHJvcG9zYWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCBi
YjZjNjFiMjcwZmEzZTAzNzk2MDVmNDJmNTFkODk0YzhlMWY5N2RlLi5mYThiNmIyMmUzYTRlMmRj
OTUwYzdiYjI0Njk3ZTY5ODI4MGMzNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC0xNDc3LDE0ICsxNDc3LDkgQEAgdm9pZCBBY2Nlc3ND
YXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICBjYXNl
IEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAgICAgIEdQUlJlZyB2YWx1ZVJlZ3NQYXlsb2Fk
R1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsKIAotICAgICAgICBpZiAoaXNWYWxpZE9mZnNl
dChtX29mZnNldCkpIHsKLSAgICAgICAgICAgIFN0cnVjdHVyZSogY3VyclN0cnVjdHVyZTsKLSAg
ICAgICAgICAgIGlmICghaGFzQWx0ZXJuYXRlQmFzZSgpKQotICAgICAgICAgICAgICAgIGN1cnJT
dHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBjdXJyU3RydWN0dXJlID0gYWx0ZXJuYXRlQmFzZSgpLT5zdHJ1Y3R1cmUodm0pOworICAgICAg
ICBTdHJ1Y3R1cmUqIGN1cnJTdHJ1Y3R1cmUgPSBoYXNBbHRlcm5hdGVCYXNlKCkgPyBhbHRlcm5h
dGVCYXNlKCktPnN0cnVjdHVyZSh2bSkgOiBzdHJ1Y3R1cmUoKTsKKyAgICAgICAgaWYgKGlzVmFs
aWRPZmZzZXQobV9vZmZzZXQpKQogICAgICAgICAgICAgY3VyclN0cnVjdHVyZS0+c3RhcnRXYXRj
aGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRzKHZtLCBvZmZzZXQoKSk7Ci0gICAgICAgIH0KIAog
ICAgICAgICBib29sIGRvZXNQcm9wZXJ0eVN0b3JhZ2VMb2FkcyA9IG1fdHlwZSA9PSBMb2FkIAog
ICAgICAgICAgICAgfHwgbV90eXBlID09IEdldEdldHRlcgpAQCAtMTc0OSw3ICsxNzQ0LDEwIEBA
IHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUpCiAgICAgICAgICAgICBBU1NFUlQobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVyIHx8IG1f
dHlwZSA9PSBDdXN0b21BY2Nlc3NvckdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9tVmFsdWVTZXR0
ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29yU2V0dGVyKTsKICAgICAgICAgICAgIEFTU0VS
VCghZG9lc1Byb3BlcnR5U3RvcmFnZUxvYWRzKTsgLy8gT3Igd2UgbmVlZCBhbiBleHRyYSByZWdp
c3Rlci4gV2UgcmVseSBvbiBwcm9wZXJ0eU93bmVyR1BSIGJlaW5nIGNvcnJlY3QgaGVyZS4KIAot
ICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGhhc0FsdGVybmF0ZUJh
c2UoKSA/IGFsdGVybmF0ZUJhc2UoKS0+Z2xvYmFsT2JqZWN0KHZtKSA6IHN0cnVjdHVyZSgpLT5n
bG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGtlZXAgZ2xv
YmFsT2JqZWN0IGFsaXZlIHNpbmNlCisgICAgICAgICAgICAvLyAxLiBpZiBpdCBpcyBDdXN0b21W
YWx1ZSwgdGhlIG93bmVyIENvZGVCbG9jayAoZXZlbiBpZiBKU0dsb2JhbE9iamVjdCogaXMgb25l
IG9mIENvZGVCbG9jayB0aGF0IGlzIGlubGluZWQgYW5kIGhlbGQgYnkgREZHIENvZGVCbG9jaykg
bXVzdCBrZWVwIGl0IGFsaXZlLgorICAgICAgICAgICAgLy8gMi4gaWYgaXQgaXMgQ3VzdG9tQWNj
ZXNzb3IsIHN0cnVjdHVyZSBzaG91bGQgaG9sZCBpdC4KKyAgICAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBjdXJyU3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKTsKIAogICAg
ICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHJvb20gZm9yIHRoZSBDIGNhbGwgc28gYW55IG9mIG91
ciBzdGFjayBzcGlsbGFnZSBpc24ndCBvdmVyd3JpdHRlbi4gSXQncwogICAgICAgICAgICAgLy8g
aGFyZCB0byB0cmFjayBpZiBzb21lb25lIGRpZCBzcGlsbGFnZSBvciBub3QsIHNvIHdlIGp1c3Qg
YXNzdW1lIHRoYXQgd2UgYWx3YXlzIG5lZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA4MmQzZTc0NDFjZGEzMjU4OWZj
NzFkYjU0ZDlkMjQ1ZDM4ZGRjZWQxLi5iN2U4Nzg2ZDAxYTE5MmJhY2U3MWEyN2ViZjhjYTBmYzc3
NTM5YWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCkBAIC0zNSwxNSArMzUsNyBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCk7CiBzdGF0aWMgSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik7CiBzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250
ZXh0KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjIpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIzKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNCk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgpOwotc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKTsKIHN0YXRpYyBKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOwogc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUp
OwogCkBAIC01NywyNyArNDksMjcgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIAogLyogU291
cmNlIGZvciBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaAogQGJlZ2luIHJlZ0V4cENvbnN0cnVjdG9y
VGFibGUKLSAgICBpbnB1dCAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJbnB1dCAgICAgICAg
ICBOb25lCi0gICAgJF8gICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAg
ICAgRG9udEVudW0KLSAgICBtdWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUgICAgICBOb25lCi0gICAgJCogICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lICAgICAgRG9udEVudW0KLSAgICBsYXN0TWF0Y2ggICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2ggICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJCYgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51
bQotICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkKyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCi0gICAgbGVmdENvbnRl
eHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERv
bnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICByaWdodENvbnRleHQgICAgcmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJCcgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25s
eXxEb250RW51bQotICAgICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAg
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgIGlucHV0ICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRF
bnVtCisgICAgJF8gICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAg
Q3VzdG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICBtdWx0aWxpbmUgICAgICAgcmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nlc3NvcnxEb250RW51bQorICAgICQqICAgICAg
ICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIEN1c3RvbUFjY2Vzc29yfERv
bnRFbnVtCisgICAgbGFzdE1hdGNoICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAg
ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkJiAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2ggICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxE
b250RW51bQorICAgIGxhc3RQYXJlbiAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbiAg
ICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJCsgICAgICAgICAgICAg
IHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8
RG9udEVudW0KKyAgICBsZWZ0Q29udGV4dCAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4
dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICRgICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5
fERvbnRFbnVtCisgICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250
ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkJyAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25s
eXxEb250RW51bQorICAgICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhciAg
ICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDIgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9u
bHl8RG9udEVudW0KKyAgICAkMyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIg
ICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ0ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
ICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNiAgICAgICAg
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQorICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
ciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDggICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVh
ZE9ubHl8RG9udEVudW0KKyAgICAkOSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQogQGVuZAogKi8KIApA
QCAtMTAwLDExNCArOTIsOTkgQEAgdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFByb3RvdHlwZSwKICAgICBwdXREaXJl
Y3ROb25JbmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nv
ciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7CiB9CiAKLXRlbXBsYXRlPGludCBOPgotaW5saW5lIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3Qt
PnJlZ0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAuJE4gZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25z
dHJ1Y3RvciBhcyB8dGhpc3wiX3MpOworICAgIHVuc2lnbmVkIE4gPSBwcm9wZXJ0eU5hbWUudWlk
KCktPmF0KDEpIC0gJzAnOworICAgIEFTU0VSVChOID49IDEgJiYgTiA8PSA5KTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJh
Y2tyZWYoZ2xvYmFsT2JqZWN0LCBOKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewot
ICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8MT4oZ2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyMywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwzPihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJl
dHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8ND4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIHByb3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAgcmV0dXJu
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw2PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
cHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJldHVybiBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nz4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHBy
b3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9w
ZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyOSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOwotfQotCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQotewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBq
c0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmds
b2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5p
bnB1dCBnZXR0ZXIgcmVxdWlyZXMgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5pbnB1dCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3Rv
cigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiUmVnRXhwLm11bHRpbGluZSBnZXR0ZXIgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMg
fHRoaXN8Il9zKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihnbG9iYWxP
YmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5tdWx0aWxpbmUoKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0
cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgp
LmdldEJhY2tyZWYoZ2xvYmFsT2JqZWN0LCAwKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBp
ZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25z
dHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiUmVnRXhwLmxhc3RNYXRjaCBnZXR0ZXIgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0
b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2Jh
bE9iamVjdCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3Ry
dWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShn
bG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0
KSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQYXJlbiBn
ZXR0ZXIgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4
cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdF
eHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0
KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJl
Z0V4cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsICJSZWdFeHAubGVmdENvbnRleHQgZ2V0dGVyIHJlcXVpcmUgUmVnRXhw
IGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0TGVm
dENvbnRleHQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0
Q29udGV4dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9y
KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJSZWdFeHAucmlnaHRDb250ZXh0IGdldHRlciByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBh
cyB8dGhpc3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChnbG9i
YWxPYmplY3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25z
dHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWljQ2Fz
dDxSZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpIHsK
LSAgICAgICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhn
bG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwot
ICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2JhbE9iamVj
dC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9
IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkgeworICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmlucHV0IHNldHRlcnMgcmVxdWlyZSBS
ZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGdsb2JhbE9iamVjdC0+
cmVnRXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0
cnVjdG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWlj
Q2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkp
IHsKLSAgICAgICAgYm9vbCBtdWx0aWxpbmUgPSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvQm9v
bGVhbihnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2Jh
bE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0g
Z2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKSB7CisgICAgICAgIHRocm93VHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWly
ZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBtdWx0aWxpbmUgPSBKU1ZhbHVl
OjpkZWNvZGUodmFsdWUpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGdsb2JhbE9i
amVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUpOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1Y3R1cmUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggZGViMjI1NzlmYzhjZDZhMGI5
OWRjZjBiMTk4YzM4OWY0OGNjMzQ2MC4uOWY4OGU0MjBlNWZiYjE1N2RkYjAzYjlmMjIzZWE5Yjc4
ZDUzNTllMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFy
Vk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApA
QCAtMTYwMCwxMSArMTYwMCwxMyBAQCBjbGFzcyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGN1c3RvbUdldEFjY2Vzc29yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGN1c3RvbUdldFZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGN1c3Rv
bUdldFZhbHVlMik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRB
Y2Nlc3Nvckdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihj
dXN0b21HZXRWYWx1ZUdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihjdXN0b21TZXRBY2Nlc3Nvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihjdXN0b21TZXRBY2Nlc3Nvckdsb2JhbE9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihjdXN0b21TZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihjdXN0b21TZXRWYWx1ZTIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
Y3VzdG9tU2V0VmFsdWVHbG9iYWxPYmplY3QpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIpOwogCkBAIC0xNjIxLDYgKzE2MjMsMTggQEAgSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGN1c3RvbUdldFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEoKICAgICByZXR1cm4gc2xvdFZhbHVlOwogfQogCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUpKQoreworICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1
ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkp
KTsKKworICAgIGF1dG8qIHRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIq
PihKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IHRhcmdl
dC0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUyIikpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUgPyB2YWx1ZSA6IGpzVW5kZWZpbmVkKCkp
OworfQorCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3JHbG9iYWxP
YmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdCk7
CkBAIC0xNjk5LDYgKzE3MTMsMTggQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGN1c3RvbVNl
dFZhbHVlR2xvYmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGN1c3RvbVNldFZhbHVlMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBQcm9wZXJ0eU5hbWUpKQoreworICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5o
ZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPih2bSkpOworICAgIGF1dG8qIHRhcmdldCA9
IGpzQ2FzdDxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdFZh
bHVlKSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGFyZ2V0KTsKKyAgICB0YXJnZXQtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInZhbHVlMiIpLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIEpTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihjdXN0b21GdW5jdGlvblNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
QEAgLTE3MjMsNiArMTc0OSw4IEBAIHZvaWQgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiAKICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbVZhbHVlIiksCiAgICAgICAgIEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCBjdXN0b21HZXRWYWx1ZSwgY3VzdG9tU2V0VmFsdWUpLCAw
KTsKKyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImN1c3RvbVZhbHVlMiIpLAorICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0
ZSh2bSwgY3VzdG9tR2V0VmFsdWUyLCBjdXN0b21TZXRWYWx1ZTIpLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbVZhbHVlKSk7CiAgICAgcHV0RGlyZWN0Q3Vz
dG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0b21BY2Nlc3Nv
ciIpLAogICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgY3VzdG9tR2V0QWNj
ZXNzb3IsIGN1c3RvbVNldEFjY2Vzc29yKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpOwogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29y
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tVmFsdWVHbG9iYWxPYmplY3Qi
KSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmMzg5YzQwYzY0N2FjZGZiZjhlYTM4MzMwY2UxMjVhMGRmMWIwOTdhLi5lNTk4
M2JhNTRlNjI3ZDBiZmI1ZjAxOTdiY2ZhMjM1ODliZTZlM2UxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMDctMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4gYW5kIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIExl
Z2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvZG9tL2dldE93blByb3BlcnR5RGVz
Y3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRtbDoKKyAgICAg
ICAgKiBqcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzOgorICAgICAgICAq
IGpzL3NjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qczoKKyAgICAg
ICAgKiBqcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICoganMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbDoKKwogMjAyMS0wNy0y
NSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUGFy
dGx5IGltcGxlbWVudCBGdW5jdGlvbi5wcm90b3R5cGUue2NhbGxlcixhcmd1bWVudHN9IHJlZmxl
Y3Rpb24gcHJvcG9zYWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blBy
b3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggOTljYjkzMzcxODk3ZTRlNDU0ZTIz
NTY5NDY4N2RiZDIxYjM5ZDk4OS4uODY5N2U3NjFkMTVlN2QwNjVlYTBhY2VhMjQ5NmJmODhkMDE2
YzdkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3Jp
cHRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5
RGVzY3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTM5LDkgKzM5LDEwIEBAIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmhhc093
blByb3BlcnR5CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTnVtYmVyLCAn
TkVHQVRJVkVfSU5GSU5JVFknKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklU
WScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykudmFsdWUg
aXMgUmVnRXhwLiRfCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LCAnJF8nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRf
JykuZ2V0IGlzIFJlZ0V4cCRfR2V0dGVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoUmVnRXhwLCAnJF8nKS5zZXQgaXMgUmVnRXhwJF9TZXR0ZXIKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCd2YWx1
ZScpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LCAnJF8nKS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZW51bWVyYWJsZSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihO
b2RlLCAnRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJykudmFsdWUgaXMgTm9kZS5ET0NV
TUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9yZWdleHAtY2FjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhw
LWNhY2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDg1MTNjOGUyY2U1ZGE0YmFhYTU5YjVlNDE5NGNi
YmI5ZTQxYzkxYjEuLmM1MWM5MDllMzU4NGFlYTc3YWIxYTQxYmUyNmI5YzM4NjIxODE3NDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDEwIEBACiBUaGlzIHRlc3QgY2hlY2tzIG91ciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
c3BlY2lhbCBSZWdFeHAgbWVtYmVyIHZhcmlhYmxlcy4KIAogUHJvcGVydGllcyBvZiBSZWdFeHAg
YXQgc3RhcnR1cDoKKyQmOiB7fSAocmVhZC1vbmx5KQorJCc6IHt9IChyZWFkLW9ubHkpCiskKjog
e2ZhbHNlfSAocmVhZC13cml0ZSkKKyQrOiB7fSAocmVhZC1vbmx5KQogJDE6IHt9IChyZWFkLW9u
bHkpCiAkMjoge30gKHJlYWQtb25seSkKICQzOiB7fSAocmVhZC1vbmx5KQpAQCAtMTAsMTQgKzE0
LDIzIEBAICQ2OiB7fSAocmVhZC1vbmx5KQogJDc6IHt9IChyZWFkLW9ubHkpCiAkODoge30gKHJl
YWQtb25seSkKICQ5OiB7fSAocmVhZC1vbmx5KQorJF86IHt9IChyZWFkLXdyaXRlKQorJGA6IHt9
IChyZWFkLW9ubHkpCiBpbnB1dDoge30gKHJlYWQtd3JpdGUpCiBsYXN0TWF0Y2g6IHt9IChyZWFk
LW9ubHkpCiBsYXN0UGFyZW46IHt9IChyZWFkLW9ubHkpCiBsZWZ0Q29udGV4dDoge30gKHJlYWQt
b25seSkKK2xlbmd0aDogezJ9IChyZWFkLW9ubHkpCiBtdWx0aWxpbmU6IHtmYWxzZX0gKHJlYWQt
d3JpdGUpCituYW1lOiB7UmVnRXhwfSAocmVhZC1vbmx5KQorcHJvdG90eXBlOiB7Lyg/OikvfSAo
cmVhZC1vbmx5KQogcmlnaHRDb250ZXh0OiB7fSAocmVhZC1vbmx5KQogCiBQcm9wZXJ0aWVzIG9m
IFJlZ0V4cCBhZnRlciAvKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDApLy5leGVjKDwxMjM0
NTY3ODkwPik6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge2ZhbHNlfQorJCs6IHsw
fQogJDE6IHsxfQogJDI6IHsyfQogJDM6IHszfQpAQCAtMjcsMTEgKzQwLDE2IEBAICQ2OiB7Nn0K
ICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+fQorJGA6IHs8fQog
aW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVu
OiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHtmYWxzZX0K
K25hbWU6IHtSZWdFeHB9Citwcm90b3R5cGU6IHsvKD86KS99CiByaWdodENvbnRleHQ6IHs+fQog
CiBSZWdFeHAuJDAgZG9lcyBub3QgZXhpc3QKQEAgLTQxLDYgKzU5LDEwIEBAIFJlZ0V4cC5tdWx0
aWxpbmUgY29lcmNlcyB2YWx1ZXMgdG8gYm9vbGVhbnMKIFJlZ0V4cC5pbnB1dCBjb2VyY2VzIHZh
bHVlcyB0byBzdHJpbmdzCiAKIFByb3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIC8oMSkoMikoMyko
NCkoNSkoNikoNykoOCkoOSkoMCkvLmV4ZWMoWFhYKToKKyQmOiB7MTIzNDU2Nzg5MH0KKyQnOiB7
Pn0KKyQqOiB7dHJ1ZX0KKyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30KQEAgLTUw
LDE1ICs3MiwyNCBAQCAkNjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezB9
CiskYDogezx9CiBpbnB1dDogezB9CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVu
OiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHt0cnVlfQor
bmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29udGV4dDogez59CiAK
IC0tLS0tLS0tLS0gW0NsZWFyZWQgUmVnRXhwIHZhbHVlc10gLS0tLS0tLS0tLQogUHJvcGVydGll
cyBvZiBSZWdFeHAgYWZ0ZXIgPDEyMzQ1Njc4OTA+LnNlYXJjaCgvKDEpKDIpKDMpKDQpKDUpKDYp
KDcpKDgpKDkpKDApLyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3RydWV9Cisk
KzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC02OCwxNSArOTksMjQgQEAgJDY6
IHs2fQogJDc6IHs3fQogJDg6IHs4fQogJDk6IHs5fQorJF86IHs8MTIzNDU2Nzg5MD59CiskYDog
ezx9CiBpbnB1dDogezwxMjM0NTY3ODkwPn0KIGxhc3RNYXRjaDogezEyMzQ1Njc4OTB9CiBsYXN0
UGFyZW46IHswfQogbGVmdENvbnRleHQ6IHs8fQorbGVuZ3RoOiB7Mn0KIG11bHRpbGluZToge3Ry
dWV9CituYW1lOiB7UmVnRXhwfQorcHJvdG90eXBlOiB7Lyg/OikvfQogcmlnaHRDb250ZXh0OiB7
Pn0KIAogLS0tLS0tLS0tLSBbQ2xlYXJlZCBSZWdFeHAgdmFsdWVzXSAtLS0tLS0tLS0tCiBQcm9w
ZXJ0aWVzIG9mIFJlZ0V4cCBhZnRlciA8MTIzNDU2Nzg5MD4ucmVwbGFjZSgvKDEpKDIpKDMpKDQp
KDUpKDYpKDcpKDgpKDkpKDApLyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3Ry
dWV9CiskKzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC04NiwxMCArMTI2LDE1
IEBAICQ2OiB7Nn0KICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+
fQorJGA6IHs8fQogaW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkw
fQogbGFzdFBhcmVuOiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxp
bmU6IHt0cnVlfQorbmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29u
dGV4dDogez59CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLmh0bWwKaW5kZXggMDZh
ZGE3MDExMDIwY2ViMjhiZWRmZmZkNDZlOGFhODExNTYzNTgwNC4uYjk4NzE0NTM4NmU0NGEyNDM5
NDVkMGE0YWIwNjBmZWZhYWI3NDQwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3Jl
Z2V4cC1jYWNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5n
Lmh0bWwKQEAgLTIwLDEwICsyMCw3IEBACiAKIGZ1bmN0aW9uIHByaW50UHJvcGVydGllc1dpdGhS
ZWFkT25seShvYmplY3QpCiB7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5OwotICAgIGZvciAo
dmFyIHByb3BlcnR5IGluIG9iamVjdCkgewotICAgICAgICBhcnJheS5wdXNoKHByb3BlcnR5KTsK
LSAgICB9CisgICAgdmFyIGFycmF5ID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0
KTsKICAgICBhcnJheS5zb3J0KCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5n
dGg7IGkrKykgewogICAgICAgICB2YXIgcHJvcGVydHkgPSBhcnJheVtpXTsKQEAgLTMzLDEwICsz
MCw3IEBACiAKIGZ1bmN0aW9uIHByaW50UHJvcGVydGllcyhvYmplY3QpCiB7Ci0gICAgdmFyIGFy
cmF5ID0gbmV3IEFycmF5OwotICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkgewotICAg
ICAgICBhcnJheS5wdXNoKHByb3BlcnR5KTsKLSAgICB9CisgICAgdmFyIGFycmF5ID0gT2JqZWN0
LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsKICAgICBhcnJheS5zb3J0KCk7CiAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewogICAgICAgICB2YXIgcHJvcGVy
dHkgPSBhcnJheVtpXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IuanMgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmpzCmluZGV4IGM2NTEyMTEzMjg1NjY3MzBmMmZjNzllNjFhNDZl
NGU2MDRhNzU3YmYuLmUzOGJmNzQyMjVjOTExNmFlZmIyZmYwMjBiYWMwOGRlNjg5M2I1NzcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3Jp
cHRvci5qcwpAQCAtMjUsNyArMjUsOSBAQCBmdW5jdGlvbiBkZXNjcmlwdG9yU2hvdWxkQmUob2Jq
ZWN0LCBwcm9wZXJ0eSwgZXhwZWN0ZWQpIHsKIGRlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhwLnBy
b3RvdHlwZSIsICInZXhlYyciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBj
b25maWd1cmFibGU6IHRydWUsIHZhbHVlOiJSZWdFeHAucHJvdG90eXBlLmV4ZWMifSk7CiBkZXNj
cmlwdG9yU2hvdWxkQmUoImRvY3VtZW50Ll9fcHJvdG9fXy5fX3Byb3RvX18iLCAiJ2NyZWF0ZUVs
ZW1lbnQnIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6
IHRydWUsIHZhbHVlOiJkb2N1bWVudC5jcmVhdGVFbGVtZW50In0pOwogZGVzY3JpcHRvclNob3Vs
ZEJlKCJOdW1iZXIiLCAiJ05FR0FUSVZFX0lORklOSVRZJyIsIHt3cml0YWJsZTogZmFsc2UsIGVu
dW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiTnVtYmVyLk5FR0FU
SVZFX0lORklOSVRZIn0pOwotZGVzY3JpcHRvclNob3VsZEJlKCJSZWdFeHAiLCAiJyRfJyIsIHt3
cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFs
dWU6IlJlZ0V4cC4kXyJ9KTsKK3ZhciBSZWdFeHAkX0dldHRlciA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCAnJF8nKS5nZXQ7Cit2YXIgUmVnRXhwJF9TZXR0ZXIgPSBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuc2V0OworZGVzY3Jp
cHRvclNob3VsZEJlKCJSZWdFeHAiLCAiJyRfJyIsIHtnZXQ6ICJSZWdFeHAkX0dldHRlciIsIHNl
dDogIlJlZ0V4cCRfU2V0dGVyIiwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSx9KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiTm9kZSIsICInRE9DVU1FTlRfUE9TSVRJT05fRElT
Q09OTkVDVEVEJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHZhbHVlOiJOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCJ9
KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiTWF0aCIsICInc2luJyIsIHt3cml0YWJsZTogdHJ1ZSwg
ZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6Ik1hdGguc2luIn0p
OwogZGVzY3JpcHRvclNob3VsZEJlKCJbMSwyLDNdIiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVu
dW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IjEifSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUt
Y2hhaW4uanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90
b3R5cGUtY2hhaW4uanMKaW5kZXggNDE5MWQyMWM0MjMxMDFkMjk0MDNiYjI1YTg3MTQxM2ExNTI5
MDMzYS4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNo
YWluLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXBy
b3RvdHlwZS1jaGFpbi5qcwpAQCAtMSwxMiArMCwwIEBACi1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZXMgdGhhdCB3ZSB3aWxsIGNhbGwgYSBjdXN0b20gc2V0dGVyIHdoZW4gdGhlIHNldHRl
ciBpcyBpbiB0aGUgcHJvdG90eXBlIGNoYWluIik7Ci0KLS8vIFRoZSBSZWdFeHAgT2JqZWN0IGlz
IGEgY29udmVuaWVudCBjb25zdHJ1Y3RvciB3aXRoIGEgY3VzdG9tIHNldHRlci4KLS8vIFRoaXMg
d2lsbCBhbHNvIHRlc3QgdGhlIHdlaXJkIGJlaGF2aW91ciBpbiB3aGljaCB0aGUgUmVnRXhwIGNv
bnN0cnVjdG9yCi0vLyBzZXR0ZXJzIGFyZSBleHBlY3RlZCB0byBhY3Qgb24gdGhlIGJhc2Ugb2Jq
ZWN0IChlLmcuIHRoZSBjb25zdHJ1Y3RvciBvYmplY3QpCi0vLyByYXRoZXIgdGhhbiB0aGUgdGhp
cyB2YWx1ZS4KLXZhciB0ZXN0T2JqZWN0ID0ge19fcHJvdG9fXzogUmVnRXhwIH0KLQotdGVzdE9i
amVjdC5pbnB1dCA9ICJ0ZXN0SW5wdXQiCi0KLXNob3VsZEJlKCJ0ZXN0T2JqZWN0LmlucHV0Iiwg
Iid0ZXN0SW5wdXQnIikKLXNob3VsZEJlKCJSZWdFeHAuaW5wdXQiLCAiJ3Rlc3RJbnB1dCciKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hh
aW4tZXhwZWN0ZWQudHh0CmluZGV4IDFjODMxNjE1ZGE1OWJhNzA1NGNmOGJjMTk4NDcxNmRkZGMx
OTMwNDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi1l
eHBlY3RlZC50eHQKQEAgLTEsMTEgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3ZSB3
aWxsIGNhbGwgYSBjdXN0b20gc2V0dGVyIHdoZW4gdGhlIHNldHRlciBpcyBpbiB0aGUgcHJvdG90
eXBlIGNoYWluCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRlc3RPYmpl
Y3QuaW5wdXQgaXMgJ3Rlc3RJbnB1dCcKLVBBU1MgUmVnRXhwLmlucHV0IGlzICd0ZXN0SW5wdXQn
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRt
bCBiL0xheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmh0bWwKaW5k
ZXggY2MxYTgxYzAzNjE4ZjMyODY1NDQxZWZlMzUwZWE2YTkyZjE5MDM3NC4uZTY5ZGUyOWJiMmQx
ZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMv
c3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9qcy9z
dGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5odG1sCkBAIC0xLDEwICswLDAgQEAKLTwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdGF0aWMtcHV0LWluLXBy
b3RvdHlwZS1jaGFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYyBiL0pT
VGVzdHMvQ2hha3JhQ29yZS90ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjCmluZGV4
IDg1NTI0ZDMxZTIwN2YwMDQ3YmU3NjVmNDBkYTQ4YmJiNGJkYzQ4MjIuLjYzMjExM2Q3N2Y2MDk4
NDA2MjI1MjA2YzUxZTdiNjBjY2VjZTc0NDIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hha3JhQ29y
ZS90ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjCisrKyBiL0pTVGVzdHMvQ2hha3Jh
Q29yZS90ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjCkBAIC03OCwzOCArNzgsOCBA
QCBmb3IuLmluIERhdGUgKHdpdGggcHJvdG90eXBlLmJsYWgyKQogICBibGFoMiA9IERhdGUKIAog
Zm9yLi5pbiBSZWdFeHAKLSAgaW5wdXQgPSAKLSAgbXVsdGlsaW5lID0gZmFsc2UKLSAgbGFzdE1h
dGNoID0gCi0gIGxhc3RQYXJlbiA9IAotICBsZWZ0Q29udGV4dCA9IAotICByaWdodENvbnRleHQg
PSAKLSAgJDEgPSAKLSAgJDIgPSAKLSAgJDMgPSAKLSAgJDQgPSAKLSAgJDUgPSAKLSAgJDYgPSAK
LSAgJDcgPSAKLSAgJDggPSAKLSAgJDkgPSAKICAgYmxhaDIgPSBGdW5jdGlvbgogZm9yLi5pbiBS
ZWdFeHAgKHdpdGggYmxhaCkKLSAgaW5wdXQgPSAKLSAgbXVsdGlsaW5lID0gZmFsc2UKLSAgbGFz
dE1hdGNoID0gCi0gIGxhc3RQYXJlbiA9IAotICBsZWZ0Q29udGV4dCA9IAotICByaWdodENvbnRl
eHQgPSAKLSAgJDEgPSAKLSAgJDIgPSAKLSAgJDMgPSAKLSAgJDQgPSAKLSAgJDUgPSAKLSAgJDYg
PSAKLSAgJDcgPSAKLSAgJDggPSAKLSAgJDkgPSAKICAgYmxhaCA9IGIKICAgYmxhaDIgPSBGdW5j
dGlvbgogZm9yLi5pbiBuZXcgUmVnRXhwCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRhYWNmOTdmOTU4Yzg1ZGM5ZjUyZDRjMmUyZTI4ZTMy
N2I4ODgxZWQuLjA4Y2ZhNmFiNjVjODExZDUwYmE5MjVjNmM2NDVlMzRjNjE4YTZkOTUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTAgQEAKKzIwMjEtMDctMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4g
YW5kIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFtK
U0NdIExlZ2FjeSBSZWdFeHAgZmllbGRzIHNob3VsZCBiZSBhY2Nlc3NvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIzMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3JhQ29yZS90ZXN0L0xp
Yi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9h
c3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYy5qczoKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci5qczoKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9jdXN0b20tc2V0dGVyLWdldHRlci1h
cy1wdXQtZ2V0LWJ5LWlkLmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogbWljcm9iZW5j
aG1hcmtzL2N1c3RvbS12YWx1ZS0yLmpzOgorICAgICAgICAodGVzdDEuZ2V0Q3VzdG9tVmFsdWUy
KToKKyAgICAgICAgKHRlc3QxKToKKyAgICAgICAgKHRlc3QxLmdldE11bHRpbGluZSk6IERlbGV0
ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qczoKKyAgICAgICAg
KHRlc3QxLmdldEN1c3RvbVZhbHVlMik6CisgICAgICAgICh0ZXN0MSk6CisgICAgICAgICh0ZXN0
MS5nZXRNdWx0aWxpbmUpOiBEZWxldGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9nZXQt
Y3VzdG9tLWdldHRlci5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9jdXN0
b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEuanM6CisgICAgICAgICh0ZXN0MS5nZXRDdXN0b21W
YWx1ZTIpOgorICAgICAgICAodGVzdDEpOgorICAgICAgICAodGVzdDEuZ2V0TXVsdGlsaW5lKTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0y
LmpzOgorICAgICAgICAodGVzdDIuZm9vKToKKyAgICAgICAgKHRlc3QyKToKKyAgICAgICAgKiBz
dHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzOgorICAgICAgICAodGVzdDYu
Zm9vKToKKyAgICAgICAgKHRlc3Q2KToKKyAgICAgICAgKiBzdHJlc3Mvb2JqZWN0LWFzc2lnbi1m
YXN0LXBhdGguanM6CisgICAgICAgICogc3RyZXNzL3JlZmxlY3Qtc2V0LmpzOgorICAgICAgICAq
IHN0cmVzcy9yZWdleHAtY29uc3RydWN0b3ItZG9sbGFyLWdldHRlcnMtYXJlLXVuaXF1ZS5qczog
QWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAoZGVzYy5vZi5PYmplY3QuZW50cmll
cy5PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyk6CisgICAgICAgICogc3RyZXNzL3Jl
Z2V4cC1zZXR0ZXItcmVhbG0uanM6IEFkZGVkLgorICAgICAgICAobGV0LnJlYWxtLmNyZWF0ZUds
b2JhbE9iamVjdCk6CisgICAgICAgIChkZXNjcmlwdG9yLmNhbGwpOgorICAgICAgICAqIHN0cmVz
cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgKiB0ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIxLTA3LTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBQYXJ0bHkgaW1wbGVtZW50IEZ1bmN0aW9uLnBy
b3RvdHlwZS57Y2FsbGVyLGFyZ3VtZW50c30gcmVmbGVjdGlvbiBwcm9wb3NhbApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBo
aWMuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5
bW9ycGhpYy5qcwppbmRleCA1OTAxYzBkYjNjZmU1MDRiYWE0M2Y5MjA0YTI0Mjc5N2MyZDMwMDdh
Li4zOGYwY2FkMjIwYjA5OGUxMGNkMzZjNzQzNGRhYTNhOWQ3MDAwNmY4IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYy5q
cworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5
bW9ycGhpYy5qcwpAQCAtMSwyMCArMSwyMCBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBs
ZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQogCi1v
ID0gUmVnRXhwOworbyA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBqID0g
MDsKIGwgPSAyOwogeiA9IDA7CiBmdW5jdGlvbiB0ZXN0KG8sIHopIHsKICAgICB2YXIgayA9IGFy
Z3VtZW50c1soKChqIDw8IDEgfCBsKSA+PiAxKSBeIDEpICYgKHogKj0gMSldOwotICAgIGsuaW5w
dXQgPSAwOworICAgIGsuY3VzdG9tVmFsdWUyID0gMDsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDI1MDAwOyBpKyspIHsKLSAgICAgICAgay5pbnB1dCA9ICJmb28iOworICAgICAgICBrLmN1c3Rv
bVZhbHVlMiA9ICJmb28iOwogICAgIH0KIAotICAgIHJldHVybiBrLmlucHV0OworICAgIHJldHVy
biBrLmN1c3RvbVZhbHVlMjsKIH0KLXZhciByZXN1bHQgPSB0ZXN0KHtfX3Byb3RvX186IHtiYXI6
IndpYmJsZSIsIGlucHV0OiJmb28ifX0pOwotdmFyIHJlc3VsdCA9IHRlc3Qoe2lucHV0OiJmb28i
fSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90b19fOiB7YmFyOiJ3aWJibGUiLCBjdXN0b21W
YWx1ZTI6ImZvbyJ9fSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7Y3VzdG9tVmFsdWUyOiJmb28ifSk7
CiB2YXIgcmVzdWx0ID0gdGVzdChvKQogZm9yICh2YXIgayA9IDA7IGsgPCA2OyBrKyspIHsKICAg
ICB2YXIgc3RhcnQgPSBuZXcgRGF0ZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNz
aWduLWN1c3RvbS1zZXR0ZXIuanMKaW5kZXggZmFkZDRmOTdhNGFjN2RkYzhlOTMxNTBhMWUyNjNh
YTA1MTFjZmYyZC4uMzQwZmI4ZGEyMzljMTQ5YmE2YzA2OTcwOWUzZDY5OGM5ZmQ3NzQ2ZCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanMK
KysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanMKQEAg
LTEsMTQgKzEsMTMgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVz
IDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vIFJlZ0V4cC5pbnB1dCBp
cyBhIGhhbmR5IHNldHRlcgogCi12YXIgbyA9IFJlZ0V4cDsKK3ZhciBvID0gJHZtLmNyZWF0ZUN1
c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QobykgewogICAgIHZhciBrID0g
MDsKLSAgICBvLmlucHV0ID0gImJhciI7CisgICAgby5jdXN0b21WYWx1ZTIgPSAiYmFyIjsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDAwOyBpKyspCi0gICAgICAgIG8uaW5wdXQgPSAiZm9v
IjsKKyAgICAgICAgby5jdXN0b21WYWx1ZTIgPSAiZm9vIjsKIAotICAgIHJldHVybiBvLmlucHV0
OworICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKIH0KIAogdmFyIHJlc3VsdCA9IHRlc3Qobyk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tc2V0dGVyLWdldHRl
ci1hcy1wdXQtZ2V0LWJ5LWlkLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXNl
dHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qcwppbmRleCBhOGU1NzVlYzYxZjIxYzYyZDE3
N2M3N2U1ZTA0YzQxNmU3OGZmZDM5Li40ZGNhYTc0ODM3MDgwZThiZGNhMDNiYjJjZWJiM2UxOGZl
M2M3MWQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tc2V0dGVy
LWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkLmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2N1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanMKQEAgLTUsMjEgKzUsMjAg
QEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIH0KIG5vSW5saW5lKGFzc2VydCk7CiAKLS8vIFJlZ0V4
cC5pbnB1dCBpcyBhIGhhbmR5IGN1c3RvbSBnZXR0ZXIvc2V0dGVyLgotdmFyIG8xID0gUmVnRXhw
OwordmFyIG8xID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9u
IHRlc3QobykgewotICAgIG8uaW5wdXQgPSAiYmFyIjsKLSAgICByZXR1cm4gby5pbnB1dDsKKyAg
ICBvLmN1c3RvbVZhbHVlMiA9ICJiYXIiOworICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKIH0K
IG5vSW5saW5lKHRlc3QpOwogCiB2YXIgbzIgPSB7Ci0gICAgaW5wdXQ6ICJoZWxsbyIKKyAgICBj
dXN0b21WYWx1ZTI6ICJoZWxsbyIKIH0KIAogdmFyIG8zID0gewogICAgIHg6IDIwLAotICAgIGlu
cHV0OiAiaGVsbG8iCisgICAgY3VzdG9tVmFsdWUyOiAiaGVsbG8iCiB9CiAKIC8vIEZpcnN0IGNv
bXBpbGUgYXMgR2V0QnlJZCBub2RlLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvY3VzdG9tLXZhbHVlLTIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFs
dWUtMi5qcwppbmRleCBiZTQyODlmOTNiMzk2NzkwZDIwZDg0ODFhN2YwMmM2NGFmN2RiMmYwLi4z
YjViYjUyZmJjOTI1OTg5MGY2YzBjMDFkYmRlNzFhNjI3NTBiZDY2IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcworKysgYi9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9jdXN0b20tdmFsdWUtMi5qcwpAQCAtNCwyNCArNCwyNSBAQCBmdW5jdGlvbiBh
c3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZhbHVlID0g
JHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QxKCkgewot
ICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11bHRpbGlu
ZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1cm4gby5j
dXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7CisgICAgbm9J
bmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAotICAgIFJlZ0V4cC5mb28gPSA0MjsKKyAgICBWYWx1
ZS5mb28gPSA0MjsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBvLl9fcHJvdG9fXyA9IFJlZ0V4
cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAgby5fX3Byb3RvX18gPSBWYWx1
ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAogICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRNdWx0aWxpbmUobykgPT09
IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihvKSA9PT0gZmFsc2UpOwog
ICAgIH0KLSAgICBkZWxldGUgUmVnRXhwLmZvbzsKKyAgICBkZWxldGUgVmFsdWUuZm9vOwogICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRN
dWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihv
KSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIHRlc3QxKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9jdXN0b20tdmFsdWUuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9j
dXN0b20tdmFsdWUuanMKaW5kZXggMjJlMTNlYWEzOTFjNjc1YmIyMWQxNDMxODNkMGRlMjU2NjEw
OTljOS4uMGRiNGQyNWQ3ZWE1YzI1OTE1MTcwNGQ3Y2EyNTY0ZWQ2MzNiYTgxOCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzCisrKyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qcwpAQCAtNCwxOCArNCwxOSBAQCBmdW5jdGlv
biBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZhbHVl
ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QxKCkg
ewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11bHRp
bGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1cm4g
by5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7CisgICAg
bm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBvLl9f
cHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAgby5f
X3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAogICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgNTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydChnZXRN
dWx0aWxpbmUobykgPT09IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihv
KSA9PT0gZmFsc2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQt
Y3VzdG9tLWdldHRlci5qcwppbmRleCBmMWJmZjUxZmE3MzI2ODU0YjAwZjczNWUwOGE1OTdiM2M1
Y2Y3NjgyLi44YjkwOTY3NmZkYmM4NzRmNDk2NjA4NmEwNmY5NzE0ZDg0OTRlNTQ1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcworKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwpAQCAtMSwxMyArMSwx
MiBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRl
ZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy8gUmVnRXhwLmlucHV0IGlzIGEgaGFuZHkg
Z2V0dGVyCiAKLXZhciBvID0gUmVnRXhwOwotby5pbnB1dCA9ICJmb28iOwordmFyIG8gPSAkdm0u
Y3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOworby5jdXN0b21WYWx1ZTIgPSAiZm9vIjsK
IAogZnVuY3Rpb24gdGVzdChvKSB7CiAgICAgdmFyIHJlc3VsdCA9IG51bGw7CiAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAzMDAwMDsgaSsrKQotICAgICAgICByZXN1bHQgPSBvLmlucHV0OworICAg
ICAgICByZXN1bHQgPSBvLmN1c3RvbVZhbHVlMjsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEu
anMgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTEuanMKaW5k
ZXggMGNjODA0YTA3MmI5OTU4ZDE4YTllYjkyMGVlMjgwMWNhM2QxYjFlYS4uYmJiZGM4MzQzYzgz
Mzk4NTdiMTNlYjUyYzUwYzE3NGM4YWU2ZWM4MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
Y3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2N1
c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qcwpAQCAtMywyMSArMywyMSBAQCBmdW5jdGlv
biBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3I7CiB9CiAKK2NvbnN0IFZhbHVl
ID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QxKCkg
ewotICAgIGZ1bmN0aW9uIGdldE11bHRpbGluZShvKSB7Ci0gICAgICAgIHJldHVybiBvLm11bHRp
bGluZTsKKyAgICBmdW5jdGlvbiBnZXRDdXN0b21WYWx1ZTIobykgeworICAgICAgICByZXR1cm4g
by5jdXN0b21WYWx1ZTI7CiAgICAgfQotICAgIG5vSW5saW5lKGdldE11bHRpbGluZSk7CisgICAg
bm9JbmxpbmUoZ2V0Q3VzdG9tVmFsdWUyKTsKIAogICAgIGNvbnN0IG8gPSB7fTsKLSAgICBvLl9f
cHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBSZWdFeHAubXVsdGlsaW5lID0gZmFsc2U7CisgICAgby5f
X3Byb3RvX18gPSBWYWx1ZTsKKyAgICBWYWx1ZS5jdXN0b21WYWx1ZTIgPSBmYWxzZTsKIAogICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyArK2kpIHsKLSAgICAgICAgYXNzZXJ0KGdldE11bHRp
bGluZShvKSA9PT0gZmFsc2UpOworICAgICAgICBhc3NlcnQoZ2V0Q3VzdG9tVmFsdWUyKG8pID09
PSBmYWxzZSk7CiAgICAgfQotICAgIGRlbGV0ZSBSZWdFeHAuaW5wdXQ7Ci0gICAgZGVsZXRlIFJl
Z0V4cC5tdWx0aWxpbmU7Ci0gICAgYXNzZXJ0KGdldE11bHRpbGluZShvKSA9PT0gdW5kZWZpbmVk
KTsKKyAgICBkZWxldGUgVmFsdWUuY3VzdG9tVmFsdWUyOworICAgIGFzc2VydChnZXRDdXN0b21W
YWx1ZTIobykgPT09IHVuZGVmaW5lZCk7CiB9CiB0ZXN0MSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzIGIvSlNUZXN0cy9zdHJl
c3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0yLmpzCmluZGV4IDBhNWY5ZTJlNzlhNTU3
ZmQ3NGIyNjdiZWZkNTkwNjY5YTdmOTlmZjguLjVhNmU0Y2I0MmQ1NTU3YjUzM2ZiYjgxNDAxZTdm
YTEzNDU1YmNmZjIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxl
dGUtcHJvcGVydHktMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRl
LXByb3BlcnR5LTIuanMKQEAgLTEsMTEgKzEsMTIgQEAKK2NvbnN0IFZhbHVlID0gJHZtLmNyZWF0
ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgIGZ1bmN0
aW9uIGZvbygpIHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDg7IGkrKykgewotICAgICAgICAgICAgbGV0IHggPSBvLm11bHRpbGluZTsKLSAgICAg
ICAgICAgIG8uX19wcm90b19fID0gUmVnRXhwOworICAgICAgICAgICAgbGV0IHggPSBvLmN1c3Rv
bVZhbHVlMjsKKyAgICAgICAgICAgIG8uX19wcm90b19fID0gVmFsdWU7CiAgICAgICAgIH0KLSAg
ICAgICAgZGVsZXRlIFJlZ0V4cC5pbnB1dDsKKyAgICAgICAgZGVsZXRlIFZhbHVlLmN1c3RvbVZh
bHVlOwogICAgIH0KIAogICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY3Vz
dG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzIGIvSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZh
bHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpzCmluZGV4IGMwNjZhMjgyMzA1N2RmMTNkMjRmYjlmZjk3
MmQ1Nzc2NTcyNTU5YjUuLjg5NmUzMDU4YjlkZGFkYjRmMTM0YzllOTEwYTMwZjdmMjhjYmVjNDIg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHkt
My5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTMu
anMKQEAgLTEsMTEgKzEsMTIgQEAKIGZ1bmN0aW9uIHRlc3Q2KCkgeworICAgIHZhciBjdXN0b20g
PSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwogICAgIGZ1bmN0aW9uIGZvbygp
IHsKICAgICAgICAgY29uc3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7
IGkrKykgewotICAgICAgICAgICAgby5sYXN0TWF0Y2g7Ci0gICAgICAgICAgICBvLl9fcHJvdG9f
XyA9IFJlZ0V4cDsKKyAgICAgICAgICAgIG8uY3VzdG9tVmFsdWUyOworICAgICAgICAgICAgby5f
X3Byb3RvX18gPSBjdXN0b207CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlIFJlZ0V4cC5pbnB1
dDsKKyAgICAgICAgZGVsZXRlIGN1c3RvbS5jdXN0b21WYWx1ZTI7CiAgICAgfQogCiAgICAgZm9v
KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5q
cyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCmluZGV4IDk2NjBi
ZmRlNWU3NmFhNGQxOTU3OTRlOGJjMDIxNDNiZDk2MzY0MjkuLjliMzM1MTZjYmRhZjE1MGFmNDZl
ZjcxNmNlMjIwYjAwZGJlYmMyNzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29iamVjdC1h
c3NpZ24tZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFz
dC1wYXRoLmpzCkBAIC0zMiw3ICszMiwxMSBAQCBmdW5jdGlvbiBjaGVja1Byb3BlcnR5KG9iamVj
dCwgbmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMgPSB7IHdyaXRhYmxlOiB0cnVlLCBlbnVtZQogCiB7
CiAgICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIFJlZ0V4cCk7Ci0gICAgc2hvdWxk
QmUoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocmVzdWx0KS5zb3J0
KCkpLCBgWyIkMSIsIiQyIiwiJDMiLCIkNCIsIiQ1IiwiJDYiLCIkNyIsIiQ4IiwiJDkiLCJpbnB1
dCIsImxhc3RNYXRjaCIsImxhc3RQYXJlbiIsImxlZnRDb250ZXh0IiwibXVsdGlsaW5lIiwicmln
aHRDb250ZXh0Il1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcyhyZXN1bHQpLnNvcnQoKSksIGBbXWApOworfQoreworICAgIGxldCByZXN1
bHQgPSBPYmplY3QuYXNzaWduKHt9LCAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigp
KTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l
cyhyZXN1bHQpLnNvcnQoKSksIGBbImN1c3RvbUFjY2Vzc29yIiwiY3VzdG9tQWNjZXNzb3JHbG9i
YWxPYmplY3QiLCJjdXN0b21BY2Nlc3NvclJlYWRPbmx5IiwiY3VzdG9tRnVuY3Rpb24iLCJjdXN0
b21WYWx1ZSIsImN1c3RvbVZhbHVlMiIsImN1c3RvbVZhbHVlR2xvYmFsT2JqZWN0IiwiY3VzdG9t
VmFsdWVOb1NldHRlciJdYCk7CiB9CiB7CiAgICAgZnVuY3Rpb24gSGVsbG8oKSB7IH0KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZmxlY3Qtc2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVm
bGVjdC1zZXQuanMKaW5kZXggNGE0MTFiNTdhNDllYzY5YjNjNjNkZGY5OWZiNDAwNmVhMzAzZGE0
ZC4uMDdmNGMzNjE5YjFkODNjOTJlNzQxODdlODdmY2ZjMmM2OTYwZmQwZiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvcmVmbGVjdC1zZXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVmbGVj
dC1zZXQuanMKQEAgLTExMTcsMTAgKzExMTcsNyBAQCBmdW5jdGlvbiB0ZXN0NSgpIHsKICAgICBy
ZWNlaXZlclRlc3RJbmRleGVkKC9oZWxsby8sIHt9KTsKIH0oKSk7CiAKLShmdW5jdGlvbiBjdXN0
b21WYWx1ZSgpIHsKLSAgICAvLyBJbiB0aGlzIGNhc2UsIFJlZ0V4cC5tdWx0aWxpbmUgYmVoYXZl
cyBsaWtlIGEgc2V0dGVyIGJlY2F1c2UgaXQgY29lcmNlIGJvb2xlYW4gdHlwZS4KLSAgICAvLyBB
bnl3YXksIGl0J3MgT0ssIGJlY2F1c2UgUmVnRXhwLm11bHRpbGluZSBpcyBub3Qgc3BlY2lmaWVk
IGluIHRoZSBzcGVjLgotCisoZnVuY3Rpb24gcmVnRXhwTXVsdGlsaW5lKCkgewogICAgIGZ1bmN0
aW9uIHRlc3QxKCkgewogICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0
aWxpbmUnLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5n
ZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIHRydWUpOwpAQCAtMTEyOCw4ICsxMTI1LDggQEAgZnVu
Y3Rpb24gdGVzdDEoKSB7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211
bHRpbGluZScpLCBmYWxzZSk7CiAKICAgICAgICAgdmFyIHJlY2VpdmVyID0ge307Ci0gICAgICAg
IHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJywg
cmVjZWl2ZXIpLCB0cnVlKTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIs
ICdtdWx0aWxpbmUnKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkVGhyb3coKCkgPT4g
UmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZlciks
IGBUeXBlRXJyb3I6IFJlZ0V4cC5tdWx0aWxpbmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25z
dHJ1Y3RvciBhcyB8dGhpc3xgKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2
ZXIsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5n
ZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKICAgICB9CiAKQEAgLTExNDEsOCArMTEz
OCw4IEBAIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChS
ZWdFeHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOwogCiAgICAgICAgIHZhciByZWNlaXZlciA9IHt9
OwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2Fw
cHVjY2lubycsIHJlY2VpdmVyKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0
KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksICdDYXBwdWNjaW5vJyk7CisgICAgICAgIHNob3VsZFRo
cm93KCgpID0+IFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJywg
cmVjZWl2ZXIpLCBgVHlwZUVycm9yOiBSZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWlyZSBS
ZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8YCk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Qu
Z2V0KHJlY2VpdmVyLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAgICAgICAgIHNob3VsZEJl
KFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CiAgICAgfQogCkBAIC0x
MTUxLDExICsxMTQ4LDExIEBAIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cCwgJ211bHRpbGluZScsIHsKICAgICAgICAgICAg
IHdyaXRhYmxlOiBmYWxzZQogICAgICAgICB9KSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKFJl
ZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJl
KFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCB1bmRlZmluZWQpOwogICAgICAgICBz
aG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2FwcHVjY2lubycpLCBm
YWxzZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScp
LCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGlu
ZScpLCB1bmRlZmluZWQpOwogICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdt
dWx0aWxpbmUnLCAwKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdF
eHAsICdtdWx0aWxpbmUnKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChS
ZWdFeHAsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVkKTsKIAogICAgICAgICB2YXIgcmVjZWl2ZXIg
PSB7fTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywg
J0NhcHB1Y2Npbm8nLCByZWNlaXZlciksIGZhbHNlKTsKQEAgLTEyMDEsNiArMTE5OCw1NSBAQCBm
dW5jdGlvbiB0ZXN0MygpIHsKICAgICB9LCBgVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWdu
IHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwogfSgpKTsKIAorKGZ1bmN0aW9uIGN1c3RvbVZhbHVl
KCkgeworICAgIGNvbnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIo
KTsKKyAgICBmdW5jdGlvbiB0ZXN0MSgpIHsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsK
KyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwg
dHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUy
JyksIDApOworCisgICAgICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIp
LCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0b21W
YWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFs
dWUsICdjdXN0b21WYWx1ZTInKSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDIoKSB7
CisgICAgICAgICd1c2Ugc3RyaWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFs
dWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxk
QmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAg
ICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwgdHJ1
ZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyks
IDApOworCisgICAgICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShSZWZs
ZWN0LnNldChWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCB0
cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0b21WYWx1
ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUs
ICdjdXN0b21WYWx1ZTInKSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDMoKSB7Cisg
ICAgICAgICd1c2Ugc3RyaWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9w
ZXJ0eShWYWx1ZSwgJ2N1c3RvbVZhbHVlMicsIHsKKyAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIH0pLCB0cnVlKTsKKyAg
ICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZp
bmVkKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTIn
LCAnQ2FwcHVjY2lubycpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZh
bHVlLCAnY3VzdG9tVmFsdWUyJyksIHVuZGVmaW5lZCk7CisgICAgICAgIHNob3VsZEJlKFJlZmxl
Y3Quc2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJywgMCksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxk
QmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKworICAg
ICAgICB2YXIgcmVjZWl2ZXIgPSB7fTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFs
dWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgZmFsc2UpOworICAg
ICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ2N1c3RvbVZhbHVlMicpLCB1bmRl
ZmluZWQpOworICAgIH0KKworICAgIHRlc3QxKCk7CisgICAgdGVzdDIoKTsKKyAgICB0ZXN0Mygp
OworfSgpKTsKKwogKGZ1bmN0aW9uIGZ1bmN0aW9uQ2FzZSgpIHsKICAgICB2YXIgZnVuYyA9IGZ1
bmN0aW9uICgpIHsgfTsKICAgICBzaG91bGRCZShSZWZsZWN0LmdldChmdW5jLCAnYXJndW1lbnRz
JyksIG51bGwpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9y
LWRvbGxhci1nZXR0ZXJzLWFyZS11bmlxdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtY29u
c3RydWN0b3ItZG9sbGFyLWdldHRlcnMtYXJlLXVuaXF1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjY2NTRh
YWQ1NWU1MmIxYWMzNDhmNjNmOTVhNmFhMDE2YmNiMDE0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11bmlxdWUu
anMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gYXNzZXJ0KHgpIHsKKyAgICBpZiAoIXgpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiEiKTsKK30KKworY29uc3Qgc2Vl
bkdldHRlcnMgPSBuZXcgV2Vha1NldCgpOworCitmb3IgKGNvbnN0IFtrZXksIGRlc2NdIG9mIE9i
amVjdC5lbnRyaWVzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKFJlZ0V4cCkpKSB7
CisgICAgaWYgKCEvXlwkXGQkLy50ZXN0KGtleSkpCisgICAgICAgIGNvbnRpbnVlOworCisgICAg
YXNzZXJ0KHR5cGVvZiBkZXNjLmdldCA9PT0gImZ1bmN0aW9uIik7CisgICAgYXNzZXJ0KCFzZWVu
R2V0dGVycy5oYXMoZGVzYy5nZXQpKTsKKworICAgIHNlZW5HZXR0ZXJzLmFkZChkZXNjLmdldCk7
Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpzIGIv
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDgxYjc5
ODY3NzdmNmI3OTA5MWJkMDYzNzM0NzkwN2FjYzQ3YWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwpAQCAtMCwwICsxLDkgQEAKK2xldCBy
ZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVjdCgpOworeworICAgIGxldCBkZXNjcmlwdG9yID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdFeHAsICJtdWx0aWxpbmUiKTsK
KyAgICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlYWxtLlJlZ0V4cCwgNDIpOworfQoreworICAgIGxl
dCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdF
eHAsICJpbnB1dCIpOworICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwocmVhbG0uUmVnRXhwLCA0Mik7
Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1j
aGFpbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU2Y2U0Y2M3MzczZDcyNzYwNTVhMjRkNWQxOGUxMTAyMDEwZDhmMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1j
aGFpbi5qcwpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwordmFyIHRhcmdldCA9ICR2bS5jcmVh
dGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7Cit2YXIgdGVzdE9iamVjdCA9IHsgX19wcm90b19f
OiB0YXJnZXQgfQordmFyIHJlc3VsdCA9IHsKKyAgICByZXN1bHQ6IHVuZGVmaW5lZAorfTsKKwor
dGVzdE9iamVjdC5jdXN0b21WYWx1ZSA9IHJlc3VsdDsKKworc2hvdWxkQmUocmVzdWx0LnJlc3Vs
dCwgdGFyZ2V0KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pT
VGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCA2MGNkMDcwZWY4N2I2OTJlMjVmYzE5ZTRh
NzhlOTFmMzkxNDMwZWQ1Li5jZWEwZmJlZDhlMDRkZWQyNWU3NWQxOWI2YzlkNmZmOTVkNTdhMTUx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yMiw3ICsyMiw2IEBAIHNraXA6CiAgICAgLSBBdG9taWNz
LndhaXRBc3luYwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NDkzMQogICAgIC0gcmVnZXhwLWxvb2tiZWhpbmQKLSAgICAtIGxlZ2FjeS1yZWdleHAKICAg
ICAtIGNsZWFudXBTb21lCiAgICAgLSBJbnRsLkxvY2FsZS1pbmZvCiAgICAgLSByZXNpemFibGUt
YXJyYXlidWZmZXIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCBmNWY5NzYyMmRmOTRh
NDIwOTk0ZDNkZTcwMTAzYTJlMjU3MzA3MGZlLi42OTc0ZmIyNmFhMThiM2Q5MTdlYmQ2YTk2NDI0
ODg2ODcyODQ1YTk2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC01LDYgKzUsMTIg
QEAgdGVzdC9hbm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9uL2NyZWF0ZWR5bmZuLWh0bWwtY2xvc2Ut
Y29tbWVudC1wYXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9idWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRl
ZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpzOgogICBkZWZhdWx0OiAiU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9y
IGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3RyaWN0IG1vZGU6ICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAn
KScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90
b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWluc3RhbmNlLmpzOgorICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJSZWFsbV9y
ZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZS5jYWxsKG90aGVyUmVhbG1fcmVn
ZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYW5uZXhCL2J1aWx0LWlu
cy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1zdWJjbGFzcy1pbnN0YW5jZS5qczoKKyAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3JlZ2V4cC5jb21waWxlKClgIHRocm93
cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBg
c3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
IHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1kZWNsLWV2
YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3JlYXRlZCBwcmlvciB0byBldmFsdWF0
aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGly
ZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1lYXJseS1lcnItZm9yLWluLmpzOgpA
QCAtNjY5LDYgKzY3NSw5IEBAIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0
cmluZy9hc3luYy1tZXRob2QtY2xhc3Mtc3RhdGVtZW50LmpzOgogdGVzdC9idWlsdC1pbnMvRnVu
Y3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2FzeW5jLW1ldGhvZC1vYmplY3QuanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImFz
eW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICovIHsgLyogZCAqLyB9IiAoYXN5bmMgZiAv
KiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICovIH0pJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiYXN5bmMg
ZnVuY3Rpb24gZiggLyogYiAqLyApIC8qIGMgKi8geyAvKiBkICovIH0iIChhc3luYyBmIC8qIGEg
Ki8gKCAvKiBiICovICkgLyogYyAqLyB7IC8qIGQgKi8gfSknCit0ZXN0L2J1aWx0LWlucy9GdW5j
dGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvYnVpbHQtaW4tZnVuY3Rpb24tb2JqZWN0LmpzOgorICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6
ICJmdW5jdGlvbiAkKigpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IiAoJVJlZ0V4cCUuJCopJwor
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24g
U3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIgKCVSZWdFeHAl
LiQqKScKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9mdW5jdGlv
bi1kZWNsYXJhdGlvbi1ub24tc2ltcGxlLXBhcmFtZXRlci1saXN0LmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBDb25mb3JtcyB0byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJmdW5jdGlv
biBmKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAvKiBmICovICwgLyogZyAqLyB7IC8q
IGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8gfSAvKiBsICovICkgLyogbSAqLyB7
IC8qIG4gKi8gfSIgKGZ1bmN0aW9uIC8qIGEgKi8gZiAvKiBiICovICggLyogYyAqLyBhIC8qIGQg
Ki8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8q
IGogKi8gMCAvKiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0pJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4
OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBlICovIDAgLyogZiAqLyAsIC8q
IGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAvKiBrICovIH0gLyogbCAqLyAp
IC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAvKiBhICovIGYgLyogYiAqLyAoIC8qIGMg
Ki8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBiIC8q
IGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAqLyB9
KScKQEAgLTc2Miw5ICs3NzEsNiBAQCB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUv
dG9TdHJpbmcvdW5pY29kZS5qczoKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9lbnRyaWVzL29yZGVy
LWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4g
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBb
bmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvT2Jq
ZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLXJlZ2V4cC1k
b2xsYXIxLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqvCuywgwqt4wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlu
cy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xlbmd0aCwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434595</attachid>
            <date>2021-07-29 17:37:54 -0700</date>
            <delta_ts>2021-07-29 18:36:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220233-20210730033752.patch</filename>
            <type>text/plain</type>
            <size>53352</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODA0NTkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI4IEBACisyMDIxLTA3LTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+IGFuZCBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBbSlNDXSBMZWdhY3kgUmVnRXhwIGZpZWxkcyBzaG91bGQgYmUgYWNjZXNzb3JzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBUYWRldSBaYWdhbGxvLgorCisgICAgICAgICogQ2hha3JhQ29yZS90
ZXN0L0xpYi9mb3Jpbl9saWJfdjMuYmFzZWxpbmUtanNjOgorICAgICAgICAqIG1pY3JvYmVuY2ht
YXJrcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYy5qczoKKyAgICAgICAgKiBtaWNy
b2JlbmNobWFya3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanM6CisgICAgICAgICogbWljcm9iZW5j
aG1hcmtzL2N1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanM6CisgICAgICAg
ICogbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS0yLmpzOgorICAgICAgICAqIG1pY3JvYmVu
Y2htYXJrcy9jdXN0b20tdmFsdWUuanM6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2dldC1j
dXN0b20tZ2V0dGVyLmpzOgorICAgICAgICAqIHN0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXBy
b3BlcnR5LTEuanM6CisgICAgICAgICogc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVy
dHktMi5qczoKKyAgICAgICAgKiBzdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0z
LmpzOgorICAgICAgICAqIHN0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qczoKKyAgICAg
ICAgKiBzdHJlc3MvcmVmbGVjdC1zZXQuanM6CisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1jb25z
dHJ1Y3Rvci1kb2xsYXItZ2V0dGVycy1hcmUtdW5pcXVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBz
dHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL3N0
YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYy
L2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIw
MjEtMDctMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBZYXJyIHNob3VsZCBwZXJmb3JtIEJveWVyTW9vcmUgc2VhcmNoCkluZGV4OiBKU1Rlc3Rz
L0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpzYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9MaWIvZm9yaW5fbGliX3YzLmJhc2VsaW5lLWpz
YwkocmV2aXNpb24gMjgwNDU5KQorKysgSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvTGliL2Zvcmlu
X2xpYl92My5iYXNlbGluZS1qc2MJKHdvcmtpbmcgY29weSkKQEAgLTc4LDM4ICs3OCw4IEBAIGZv
ci4uaW4gRGF0ZSAod2l0aCBwcm90b3R5cGUuYmxhaDIpCiAgIGJsYWgyID0gRGF0ZQogCiBmb3Iu
LmluIFJlZ0V4cAotICBpbnB1dCA9IAotICBtdWx0aWxpbmUgPSBmYWxzZQotICBsYXN0TWF0Y2gg
PSAKLSAgbGFzdFBhcmVuID0gCi0gIGxlZnRDb250ZXh0ID0gCi0gIHJpZ2h0Q29udGV4dCA9IAot
ICAkMSA9IAotICAkMiA9IAotICAkMyA9IAotICAkNCA9IAotICAkNSA9IAotICAkNiA9IAotICAk
NyA9IAotICAkOCA9IAotICAkOSA9IAogICBibGFoMiA9IEZ1bmN0aW9uCiBmb3IuLmluIFJlZ0V4
cCAod2l0aCBibGFoKQotICBpbnB1dCA9IAotICBtdWx0aWxpbmUgPSBmYWxzZQotICBsYXN0TWF0
Y2ggPSAKLSAgbGFzdFBhcmVuID0gCi0gIGxlZnRDb250ZXh0ID0gCi0gIHJpZ2h0Q29udGV4dCA9
IAotICAkMSA9IAotICAkMiA9IAotICAkMyA9IAotICAkNCA9IAotICAkNSA9IAotICAkNiA9IAot
ICAkNyA9IAotICAkOCA9IAotICAkOSA9IAogICBibGFoID0gYgogICBibGFoMiA9IEZ1bmN0aW9u
CiBmb3IuLmluIG5ldyBSZWdFeHAKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fzc2ln
bi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmpzCShyZXZpc2lv
biAyODA0NTkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRl
ci1wb2x5bW9ycGhpYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyMCArMSwyMCBAQAogLy9AIHNr
aXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpz
Yy1zdHJlc3MtdGVzdC5weQogCi1vID0gUmVnRXhwOworbyA9ICR2bS5jcmVhdGVDdXN0b21UZXN0
R2V0dGVyU2V0dGVyKCk7CiBqID0gMDsKIGwgPSAyOwogeiA9IDA7CiBmdW5jdGlvbiB0ZXN0KG8s
IHopIHsKICAgICB2YXIgayA9IGFyZ3VtZW50c1soKChqIDw8IDEgfCBsKSA+PiAxKSBeIDEpICYg
KHogKj0gMSldOwotICAgIGsuaW5wdXQgPSAwOworICAgIGsuY3VzdG9tVmFsdWUyID0gMDsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDI1MDAwOyBpKyspIHsKLSAgICAgICAgay5pbnB1dCA9ICJm
b28iOworICAgICAgICBrLmN1c3RvbVZhbHVlMiA9ICJmb28iOwogICAgIH0KIAotICAgIHJldHVy
biBrLmlucHV0OworICAgIHJldHVybiBrLmN1c3RvbVZhbHVlMjsKIH0KLXZhciByZXN1bHQgPSB0
ZXN0KHtfX3Byb3RvX186IHtiYXI6IndpYmJsZSIsIGlucHV0OiJmb28ifX0pOwotdmFyIHJlc3Vs
dCA9IHRlc3Qoe2lucHV0OiJmb28ifSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90b19fOiB7
YmFyOiJ3aWJibGUiLCBjdXN0b21WYWx1ZTI6ImZvbyJ9fSk7Cit2YXIgcmVzdWx0ID0gdGVzdCh7
Y3VzdG9tVmFsdWUyOiJmb28ifSk7CiB2YXIgcmVzdWx0ID0gdGVzdChvKQogZm9yICh2YXIgayA9
IDA7IGsgPCA2OyBrKyspIHsKICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZTsKSW5kZXg6IEpTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzCShyZXZpc2lv
biAyODA0NTkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hc3NpZ24tY3VzdG9tLXNldHRl
ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSwxMyBAQAogLy9AIHNraXAgaWYgJG1vZGVs
ID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVz
dC5weQotLy8gUmVnRXhwLmlucHV0IGlzIGEgaGFuZHkgc2V0dGVyCiAKLXZhciBvID0gUmVnRXhw
OwordmFyIG8gPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwogZnVuY3Rpb24g
dGVzdChvKSB7CiAgICAgdmFyIGsgPSAwOwotICAgIG8uaW5wdXQgPSAiYmFyIjsKKyAgICBvLmN1
c3RvbVZhbHVlMiA9ICJiYXIiOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzAwMDA7IGkrKykK
LSAgICAgICAgby5pbnB1dCA9ICJmb28iOworICAgICAgICBvLmN1c3RvbVZhbHVlMiA9ICJmb28i
OwogCi0gICAgcmV0dXJuIG8uaW5wdXQ7CisgICAgcmV0dXJuIG8uY3VzdG9tVmFsdWUyOwogfQog
CiB2YXIgcmVzdWx0ID0gdGVzdChvKTsKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2N1
c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1p
ZC5qcwkocmV2aXNpb24gMjgwNDU5KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9t
LXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNSwy
MSArNSwyMCBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogfQogbm9JbmxpbmUoYXNzZXJ0KTsKIAot
Ly8gUmVnRXhwLmlucHV0IGlzIGEgaGFuZHkgY3VzdG9tIGdldHRlci9zZXR0ZXIuCi12YXIgbzEg
PSBSZWdFeHA7Cit2YXIgbzEgPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcigpOwog
ZnVuY3Rpb24gdGVzdChvKSB7Ci0gICAgby5pbnB1dCA9ICJiYXIiOwotICAgIHJldHVybiBvLmlu
cHV0OworICAgIG8uY3VzdG9tVmFsdWUyID0gImJhciI7CisgICAgcmV0dXJuIG8uY3VzdG9tVmFs
dWUyOwogfQogbm9JbmxpbmUodGVzdCk7CiAKIHZhciBvMiA9IHsKLSAgICBpbnB1dDogImhlbGxv
IgorICAgIGN1c3RvbVZhbHVlMjogImhlbGxvIgogfQogCiB2YXIgbzMgPSB7CiAgICAgeDogMjAs
Ci0gICAgaW5wdXQ6ICJoZWxsbyIKKyAgICBjdXN0b21WYWx1ZTI6ICJoZWxsbyIKIH0KIAogLy8g
Rmlyc3QgY29tcGlsZSBhcyBHZXRCeUlkIG5vZGUuCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9jdXN0b20tdmFsdWUtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9jdXN0b20tdmFsdWUtMi5qcwkocmV2aXNpb24gMjgwNDU5KQorKysgSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLTIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsMjQgKzQs
MjUgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yOwogfQog
Citjb25zdCBWYWx1ZSA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7CiBmdW5j
dGlvbiB0ZXN0MSgpIHsKLSAgICBmdW5jdGlvbiBnZXRNdWx0aWxpbmUobykgewotICAgICAgICBy
ZXR1cm4gby5tdWx0aWxpbmU7CisgICAgZnVuY3Rpb24gZ2V0Q3VzdG9tVmFsdWUyKG8pIHsKKyAg
ICAgICAgcmV0dXJuIG8uY3VzdG9tVmFsdWUyOwogICAgIH0KLSAgICBub0lubGluZShnZXRNdWx0
aWxpbmUpOworICAgIG5vSW5saW5lKGdldEN1c3RvbVZhbHVlMik7CiAKLSAgICBSZWdFeHAuZm9v
ID0gNDI7CisgICAgVmFsdWUuZm9vID0gNDI7CiAKICAgICBjb25zdCBvID0ge307Ci0gICAgby5f
X3Byb3RvX18gPSBSZWdFeHA7Ci0gICAgUmVnRXhwLm11bHRpbGluZSA9IGZhbHNlOworICAgIG8u
X19wcm90b19fID0gVmFsdWU7CisgICAgVmFsdWUuY3VzdG9tVmFsdWUyID0gZmFsc2U7CiAKICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDAwMDA7ICsraSkgewotICAgICAgICBhc3NlcnQoZ2V0
TXVsdGlsaW5lKG8pID09PSBmYWxzZSk7CisgICAgICAgIGFzc2VydChnZXRDdXN0b21WYWx1ZTIo
bykgPT09IGZhbHNlKTsKICAgICB9Ci0gICAgZGVsZXRlIFJlZ0V4cC5mb287CisgICAgZGVsZXRl
IFZhbHVlLmZvbzsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDAwMDA7ICsraSkgewotICAg
ICAgICBhc3NlcnQoZ2V0TXVsdGlsaW5lKG8pID09PSBmYWxzZSk7CisgICAgICAgIGFzc2VydChn
ZXRDdXN0b21WYWx1ZTIobykgPT09IGZhbHNlKTsKICAgICB9CiB9CiB0ZXN0MSgpOwpJbmRleDog
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2N1c3RvbS12YWx1ZS5qcwkocmV2aXNpb24gMjgwNDU5KQor
KysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3VzdG9tLXZhbHVlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC00LDE4ICs0LDE5IEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAgICAgICAgIHRocm93IG5l
dyBFcnJvcjsKIH0KIAorY29uc3QgVmFsdWUgPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNl
dHRlcigpOwogZnVuY3Rpb24gdGVzdDEoKSB7Ci0gICAgZnVuY3Rpb24gZ2V0TXVsdGlsaW5lKG8p
IHsKLSAgICAgICAgcmV0dXJuIG8ubXVsdGlsaW5lOworICAgIGZ1bmN0aW9uIGdldEN1c3RvbVZh
bHVlMihvKSB7CisgICAgICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKICAgICB9Ci0gICAgbm9J
bmxpbmUoZ2V0TXVsdGlsaW5lKTsKKyAgICBub0lubGluZShnZXRDdXN0b21WYWx1ZTIpOwogCiAg
ICAgY29uc3QgbyA9IHt9OwotICAgIG8uX19wcm90b19fID0gUmVnRXhwOwotICAgIFJlZ0V4cC5t
dWx0aWxpbmUgPSBmYWxzZTsKKyAgICBvLl9fcHJvdG9fXyA9IFZhbHVlOworICAgIFZhbHVlLmN1
c3RvbVZhbHVlMiA9IGZhbHNlOwogCiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDAwMDAwOyAr
K2kpIHsKLSAgICAgICAgYXNzZXJ0KGdldE11bHRpbGluZShvKSA9PT0gZmFsc2UpOworICAgICAg
ICBhc3NlcnQoZ2V0Q3VzdG9tVmFsdWUyKG8pID09PSBmYWxzZSk7CiAgICAgfQogfQogCkluZGV4
OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtY3VzdG9tLWdldHRlci5qcwkocmV2aXNp
b24gMjgwNDU5KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2V0LWN1c3RvbS1nZXR0ZXIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzEsMTIgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9
PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3Qu
cHkKLS8vIFJlZ0V4cC5pbnB1dCBpcyBhIGhhbmR5IGdldHRlcgogCi12YXIgbyA9IFJlZ0V4cDsK
LW8uaW5wdXQgPSAiZm9vIjsKK3ZhciBvID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0
ZXIoKTsKK28uY3VzdG9tVmFsdWUyID0gImZvbyI7CiAKIGZ1bmN0aW9uIHRlc3QobykgewogICAg
IHZhciByZXN1bHQgPSBudWxsOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzAwMDA7IGkrKykK
LSAgICAgICAgcmVzdWx0ID0gby5pbnB1dDsKKyAgICAgICAgcmVzdWx0ID0gby5jdXN0b21WYWx1
ZTI7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogSlNUZXN0cy9zdHJlc3MvY3VzdG9t
LXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNz
L2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVydHktMS5qcwkocmV2aXNpb24gMjgwNDU5KQorKysg
SlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0xLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDIxICszLDIxIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAgICAgICAgIHRo
cm93IG5ldyBFcnJvcjsKIH0KIAorY29uc3QgVmFsdWUgPSAkdm0uY3JlYXRlQ3VzdG9tVGVzdEdl
dHRlclNldHRlcigpOwogZnVuY3Rpb24gdGVzdDEoKSB7Ci0gICAgZnVuY3Rpb24gZ2V0TXVsdGls
aW5lKG8pIHsKLSAgICAgICAgcmV0dXJuIG8ubXVsdGlsaW5lOworICAgIGZ1bmN0aW9uIGdldEN1
c3RvbVZhbHVlMihvKSB7CisgICAgICAgIHJldHVybiBvLmN1c3RvbVZhbHVlMjsKICAgICB9Ci0g
ICAgbm9JbmxpbmUoZ2V0TXVsdGlsaW5lKTsKKyAgICBub0lubGluZShnZXRDdXN0b21WYWx1ZTIp
OwogCiAgICAgY29uc3QgbyA9IHt9OwotICAgIG8uX19wcm90b19fID0gUmVnRXhwOwotICAgIFJl
Z0V4cC5tdWx0aWxpbmUgPSBmYWxzZTsKKyAgICBvLl9fcHJvdG9fXyA9IFZhbHVlOworICAgIFZh
bHVlLmN1c3RvbVZhbHVlMiA9IGZhbHNlOwogCiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7
ICsraSkgewotICAgICAgICBhc3NlcnQoZ2V0TXVsdGlsaW5lKG8pID09PSBmYWxzZSk7CisgICAg
ICAgIGFzc2VydChnZXRDdXN0b21WYWx1ZTIobykgPT09IGZhbHNlKTsKICAgICB9Ci0gICAgZGVs
ZXRlIFJlZ0V4cC5pbnB1dDsKLSAgICBkZWxldGUgUmVnRXhwLm11bHRpbGluZTsKLSAgICBhc3Nl
cnQoZ2V0TXVsdGlsaW5lKG8pID09PSB1bmRlZmluZWQpOworICAgIGRlbGV0ZSBWYWx1ZS5jdXN0
b21WYWx1ZTI7CisgICAgYXNzZXJ0KGdldEN1c3RvbVZhbHVlMihvKSA9PT0gdW5kZWZpbmVkKTsK
IH0KIHRlc3QxKCk7CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9jdXN0b20tdmFsdWUtZGVsZXRlLXBy
b3BlcnR5LTIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRl
bGV0ZS1wcm9wZXJ0eS0yLmpzCShyZXZpc2lvbiAyODA0NTkpCisrKyBKU1Rlc3RzL3N0cmVzcy9j
dXN0b20tdmFsdWUtZGVsZXRlLXByb3BlcnR5LTIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEg
KzEsMTIgQEAKK2NvbnN0IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIo
KTsKIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgY29u
c3QgbyA9IHt9OwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgewotICAgICAg
ICAgICAgbGV0IHggPSBvLm11bHRpbGluZTsKLSAgICAgICAgICAgIG8uX19wcm90b19fID0gUmVn
RXhwOworICAgICAgICAgICAgbGV0IHggPSBvLmN1c3RvbVZhbHVlMjsKKyAgICAgICAgICAgIG8u
X19wcm90b19fID0gVmFsdWU7CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlIFJlZ0V4cC5pbnB1
dDsKKyAgICAgICAgZGVsZXRlIFZhbHVlLmN1c3RvbVZhbHVlOwogICAgIH0KIAogICAgIGZvbygp
OwpJbmRleDogSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVlLWRlbGV0ZS1wcm9wZXJ0eS0zLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2N1c3RvbS12YWx1ZS1kZWxldGUtcHJvcGVy
dHktMy5qcwkocmV2aXNpb24gMjgwNDU5KQorKysgSlNUZXN0cy9zdHJlc3MvY3VzdG9tLXZhbHVl
LWRlbGV0ZS1wcm9wZXJ0eS0zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDEyIEBACiBm
dW5jdGlvbiB0ZXN0NigpIHsKKyAgICB2YXIgY3VzdG9tID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RH
ZXR0ZXJTZXR0ZXIoKTsKICAgICBmdW5jdGlvbiBmb28oKSB7CiAgICAgICAgIGNvbnN0IG8gPSB7
fTsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgICAgIG8u
bGFzdE1hdGNoOwotICAgICAgICAgICAgby5fX3Byb3RvX18gPSBSZWdFeHA7CisgICAgICAgICAg
ICBvLmN1c3RvbVZhbHVlMjsKKyAgICAgICAgICAgIG8uX19wcm90b19fID0gY3VzdG9tOwogICAg
ICAgICB9Ci0gICAgICAgIGRlbGV0ZSBSZWdFeHAuaW5wdXQ7CisgICAgICAgIGRlbGV0ZSBjdXN0
b20uY3VzdG9tVmFsdWUyOwogICAgIH0KIAogICAgIGZvbygpOwpJbmRleDogSlNUZXN0cy9zdHJl
c3Mvb2JqZWN0LWFzc2lnbi1mYXN0LXBhdGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJl
c3Mvb2JqZWN0LWFzc2lnbi1mYXN0LXBhdGguanMJKHJldmlzaW9uIDI4MDQ1OSkKKysrIEpTVGVz
dHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw3ICszMiwxMSBAQCBmdW5jdGlvbiBjaGVja1Byb3BlcnR5KG9iamVjdCwgbmFtZSwgdmFsCiAK
IHsKICAgICBsZXQgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgUmVnRXhwKTsKLSAgICBzaG91
bGRCZShKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyZXN1bHQpLnNv
cnQoKSksIGBbIiQxIiwiJDIiLCIkMyIsIiQ0IiwiJDUiLCIkNiIsIiQ3IiwiJDgiLCIkOSIsImlu
cHV0IiwibGFzdE1hdGNoIiwibGFzdFBhcmVuIiwibGVmdENvbnRleHQiLCJtdWx0aWxpbmUiLCJy
aWdodENvbnRleHQiXWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRP
d25Qcm9wZXJ0eU5hbWVzKHJlc3VsdCkuc29ydCgpKSwgYFtdYCk7Cit9Cit7CisgICAgbGV0IHJl
c3VsdCA9IE9iamVjdC5hc3NpZ24oe30sICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVy
KCkpOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5h
bWVzKHJlc3VsdCkuc29ydCgpKSwgYFsiY3VzdG9tQWNjZXNzb3IiLCJjdXN0b21BY2Nlc3Nvckds
b2JhbE9iamVjdCIsImN1c3RvbUFjY2Vzc29yUmVhZE9ubHkiLCJjdXN0b21GdW5jdGlvbiIsImN1
c3RvbVZhbHVlIiwiY3VzdG9tVmFsdWUyIiwiY3VzdG9tVmFsdWVHbG9iYWxPYmplY3QiLCJjdXN0
b21WYWx1ZU5vU2V0dGVyIl1gKTsKIH0KIHsKICAgICBmdW5jdGlvbiBIZWxsbygpIHsgfQpJbmRl
eDogSlNUZXN0cy9zdHJlc3MvcmVmbGVjdC1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9z
dHJlc3MvcmVmbGVjdC1zZXQuanMJKHJldmlzaW9uIDI4MDQ1OSkKKysrIEpTVGVzdHMvc3RyZXNz
L3JlZmxlY3Qtc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMTE3LDEwICsxMTE3LDcgQEAgdmFy
IHN5bWJvbCA9IFN5bWJvbCgpOwogICAgIHJlY2VpdmVyVGVzdEluZGV4ZWQoL2hlbGxvLywge30p
OwogfSgpKTsKIAotKGZ1bmN0aW9uIGN1c3RvbVZhbHVlKCkgewotICAgIC8vIEluIHRoaXMgY2Fz
ZSwgUmVnRXhwLm11bHRpbGluZSBiZWhhdmVzIGxpa2UgYSBzZXR0ZXIgYmVjYXVzZSBpdCBjb2Vy
Y2UgYm9vbGVhbiB0eXBlLgotICAgIC8vIEFueXdheSwgaXQncyBPSywgYmVjYXVzZSBSZWdFeHAu
bXVsdGlsaW5lIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIHNwZWMuCi0KKyhmdW5jdGlvbiByZWdF
eHBNdWx0aWxpbmUoKSB7CiAgICAgZnVuY3Rpb24gdGVzdDEoKSB7CiAgICAgICAgIHNob3VsZEJl
KFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJyksIHRydWUpOwog
ICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdFeHAsICdtdWx0aWxpbmUnKSwgdHJ1ZSk7
CkBAIC0xMTI4LDggKzExMjUsOCBAQCB2YXIgc3ltYm9sID0gU3ltYm9sKCk7CiAgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBmYWxzZSk7CiAKICAgICAg
ICAgdmFyIHJlY2VpdmVyID0ge307Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4
cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCB0cnVlKTsKLSAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdtdWx0aWxpbmUnKSwgJ0NhcHB1Y2Npbm8n
KTsKKyAgICAgICAgc2hvdWxkVGhyb3coKCkgPT4gUmVmbGVjdC5zZXQoUmVnRXhwLCAnbXVsdGls
aW5lJywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZlciksIGBUeXBlRXJyb3I6IFJlZ0V4cC5tdWx0aWxp
bmUgc2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhpc3xgKTsKKyAgICAg
ICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdtdWx0aWxpbmUnKSwgdW5kZWZpbmVk
KTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZh
bHNlKTsKICAgICB9CiAKQEAgLTExNDEsOCArMTEzOCw4IEBAIHZhciBzeW1ib2wgPSBTeW1ib2wo
KTsKICAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZh
bHNlKTsKIAogICAgICAgICB2YXIgcmVjZWl2ZXIgPSB7fTsKLSAgICAgICAgc2hvdWxkQmUoUmVm
bGVjdC5zZXQoUmVnRXhwLCAnbXVsdGlsaW5lJywgJ0NhcHB1Y2Npbm8nLCByZWNlaXZlciksIHRy
dWUpOwotICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ211bHRpbGluZScp
LCAnQ2FwcHVjY2lubycpOworICAgICAgICBzaG91bGRUaHJvdygoKSA9PiBSZWZsZWN0LnNldChS
ZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgYFR5cGVFcnJvcjog
UmVnRXhwLm11bHRpbGluZSBzZXR0ZXJzIHJlcXVpcmUgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0
aGlzfGApOworICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChyZWNlaXZlciwgJ211bHRpbGlu
ZScpLCB1bmRlZmluZWQpOwogICAgICAgICBzaG91bGRCZShSZWZsZWN0LmdldChSZWdFeHAsICdt
dWx0aWxpbmUnKSwgZmFsc2UpOwogICAgIH0KIApAQCAtMTE1MSwxMSArMTE0OCwxMSBAQCB2YXIg
c3ltYm9sID0gU3ltYm9sKCk7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVy
dHkoUmVnRXhwLCAnbXVsdGlsaW5lJywgewogICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlCiAg
ICAgICAgIH0pLCB0cnVlKTsKLSAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAn
bXVsdGlsaW5lJyksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhw
LCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0
KFJlZ0V4cCwgJ211bHRpbGluZScsICdDYXBwdWNjaW5vJyksIGZhbHNlKTsKLSAgICAgICAgc2hv
dWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIGZhbHNlKTsKKyAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQoUmVnRXhwLCAnbXVsdGlsaW5lJyksIHVuZGVmaW5lZCk7CiAg
ICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFJlZ0V4cCwgJ211bHRpbGluZScsIDApLCBmYWxz
ZSk7Ci0gICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScpLCBm
YWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFJlZ0V4cCwgJ211bHRpbGluZScp
LCB1bmRlZmluZWQpOwogCiAgICAgICAgIHZhciByZWNlaXZlciA9IHt9OwogICAgICAgICBzaG91
bGRCZShSZWZsZWN0LnNldChSZWdFeHAsICdtdWx0aWxpbmUnLCAnQ2FwcHVjY2lubycsIHJlY2Vp
dmVyKSwgZmFsc2UpOwpAQCAtMTIwMSw2ICsxMTk4LDU1IEBAIHZhciBzeW1ib2wgPSBTeW1ib2wo
KTsKICAgICB9LCBgVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHBy
b3BlcnR5LmApOwogfSgpKTsKIAorKGZ1bmN0aW9uIGN1c3RvbVZhbHVlKCkgeworICAgIGNvbnN0
IFZhbHVlID0gJHZtLmNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIoKTsKKyAgICBmdW5jdGlv
biB0ZXN0MSgpIHsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21W
YWx1ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5n
ZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxk
QmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwgdHJ1ZSk7CisgICAgICAg
IHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyksIDApOworCisgICAg
ICAgIHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1
ZSwgJ2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCB0cnVlKTsKKyAgICAg
ICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1
Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1
ZTInKSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDIoKSB7CisgICAgICAgICd1c2Ug
c3RyaWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1
ZTInLCAnQ2FwcHVjY2lubycpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Npbm8nKTsKKyAgICAgICAgc2hvdWxkQmUo
UmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAwKSwgdHJ1ZSk7CisgICAgICAgIHNo
b3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFsdWUyJyksIDApOworCisgICAgICAg
IHZhciByZWNlaXZlciA9IHt9OworICAgICAgICBzaG91bGRCZShSZWZsZWN0LnNldChWYWx1ZSwg
J2N1c3RvbVZhbHVlMicsICdDYXBwdWNjaW5vJywgcmVjZWl2ZXIpLCB0cnVlKTsKKyAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5nZXQocmVjZWl2ZXIsICdjdXN0b21WYWx1ZTInKSwgJ0NhcHB1Y2Np
bm8nKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTIn
KSwgMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdDMoKSB7CisgICAgICAgICd1c2Ugc3Ry
aWN0JzsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShWYWx1ZSwgJ2N1
c3RvbVZhbHVlMicsIHsKKyAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICAgICAgICAg
IHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIH0pLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUo
UmVmbGVjdC5nZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKyAgICAgICAg
c2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1ZTInLCAnQ2FwcHVjY2lubycp
LCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3QuZ2V0KFZhbHVlLCAnY3VzdG9tVmFs
dWUyJyksIHVuZGVmaW5lZCk7CisgICAgICAgIHNob3VsZEJlKFJlZmxlY3Quc2V0KFZhbHVlLCAn
Y3VzdG9tVmFsdWUyJywgMCksIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQo
VmFsdWUsICdjdXN0b21WYWx1ZTInKSwgdW5kZWZpbmVkKTsKKworICAgICAgICB2YXIgcmVjZWl2
ZXIgPSB7fTsKKyAgICAgICAgc2hvdWxkQmUoUmVmbGVjdC5zZXQoVmFsdWUsICdjdXN0b21WYWx1
ZTInLCAnQ2FwcHVjY2lubycsIHJlY2VpdmVyKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShS
ZWZsZWN0LmdldChyZWNlaXZlciwgJ2N1c3RvbVZhbHVlMicpLCB1bmRlZmluZWQpOworICAgIH0K
KworICAgIHRlc3QxKCk7CisgICAgdGVzdDIoKTsKKyAgICB0ZXN0MygpOworfSgpKTsKKwogKGZ1
bmN0aW9uIGZ1bmN0aW9uQ2FzZSgpIHsKICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uICgpIHsgfTsK
ICAgICBzaG91bGRCZShSZWZsZWN0LmdldChmdW5jLCAnYXJndW1lbnRzJyksIG51bGwpOwpJbmRl
eDogSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11
bmlxdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9y
LWRvbGxhci1nZXR0ZXJzLWFyZS11bmlxdWUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9z
dHJlc3MvcmVnZXhwLWNvbnN0cnVjdG9yLWRvbGxhci1nZXR0ZXJzLWFyZS11bmlxdWUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gYXNzZXJ0KHgpIHsKKyAgICBp
ZiAoIXgpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiEiKTsKK30KKwor
Y29uc3Qgc2VlbkdldHRlcnMgPSBuZXcgV2Vha1NldCgpOworCitmb3IgKGNvbnN0IFtrZXksIGRl
c2NdIG9mIE9iamVjdC5lbnRyaWVzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKFJl
Z0V4cCkpKSB7CisgICAgaWYgKCEvXlwkXGQkLy50ZXN0KGtleSkpCisgICAgICAgIGNvbnRpbnVl
OworCisgICAgYXNzZXJ0KHR5cGVvZiBkZXNjLmdldCA9PT0gImZ1bmN0aW9uIik7CisgICAgYXNz
ZXJ0KCFzZWVuR2V0dGVycy5oYXMoZGVzYy5nZXQpKTsKKworICAgIHNlZW5HZXR0ZXJzLmFkZChk
ZXNjLmdldCk7Cit9CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdleHAtc2V0dGVyLXJlYWxtLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3JlZ2V4cC1zZXR0ZXItcmVhbG0uanMJKG5v
bmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXNldHRlci1yZWFsbS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2xldCByZWFsbSA9IGNyZWF0ZUdsb2JhbE9iamVj
dCgpOworeworICAgIGxldCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihyZWFsbS5SZWdFeHAsICJtdWx0aWxpbmUiKTsKKyAgICBkZXNjcmlwdG9yLnNldC5jYWxs
KHJlYWxtLlJlZ0V4cCwgNDIpOworfQoreworICAgIGxldCBkZXNjcmlwdG9yID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihyZWFsbS5SZWdFeHAsICJpbnB1dCIpOworICAgIGRlc2Ny
aXB0b3Iuc2V0LmNhbGwocmVhbG0uUmVnRXhwLCA0Mik7Cit9CkluZGV4OiBKU1Rlc3RzL3N0cmVz
cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL3N0cmVzcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwordmFyIHRhcmdldCA9ICR2bS5jcmVh
dGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7Cit2YXIgdGVzdE9iamVjdCA9IHsgX19wcm90b19f
OiB0YXJnZXQgfQordmFyIHJlc3VsdCA9IHsKKyAgICByZXN1bHQ6IHVuZGVmaW5lZAorfTsKKwor
dGVzdE9iamVjdC5jdXN0b21WYWx1ZSA9IHJlc3VsdDsKKworc2hvdWxkQmUocmVzdWx0LnJlc3Vs
dCwgdGFyZ2V0KTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwJKHJldmlzaW9uIDI4MDQ1OSkKKysrIEpT
VGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBA
QCBza2lwOgogICAgIC0gQXRvbWljcy53YWl0QXN5bmMKICAgICAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ5MzEKICAgICAtIHJlZ2V4cC1sb29rYmVoaW5kCi0g
ICAgLSBsZWdhY3ktcmVnZXhwCiAgICAgLSBjbGVhbnVwU29tZQogICAgIC0gSW50bC5Mb2NhbGUt
aW5mbwogICAgIC0gcmVzaXphYmxlLWFycmF5YnVmZmVyCkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCShyZXZpc2lvbiAyODA0NTkpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRp
b25zLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSwxMiBAQCB0ZXN0L2FubmV4Qi9idWls
dC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluCiB0ZXN0L2FubmV4Qi9idWlsdC1pbnMvRnVuY3Rpb24v
Y3JlYXRlZHluZm4taHRtbC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpzOgogICBkZWZhdWx0OiAiU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0
ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKICAgc3RyaWN0IG1vZGU6ICJTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4g
b3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgordGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4
cC9wcm90b3R5cGUvY29tcGlsZS90aGlzLWNyb3NzLXJlYWxtLWluc3RhbmNlLmpzOgorICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBgUmVnRXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJS
ZWFsbV9yZWdleHApYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZS5jYWxsKG90aGVyUmVh
bG1fcmVnZXhwKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYW5uZXhCL2J1
aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2NvbXBpbGUvdGhpcy1zdWJjbGFzcy1pbnN0YW5jZS5q
czoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3JlZ2V4cC5jb21waWxlKClg
IHRocm93cyBUeXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1k
ZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1ibG9jay5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3JlYXRlZCBwcmlvciB0byBl
dmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9ldmFsLWNv
ZGUvZGlyZWN0L2Z1bmMtYmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1lYXJseS1lcnItZm9yLWlu
LmpzOgpAQCAtNjY5LDYgKzY3NSw5IEBAIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlw
ZS90b1N0cmkKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy9hc3lu
Yy1tZXRob2Qtb2JqZWN0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBDb25mb3JtcyB0
byBOYXRpdmVGdW5jdGlvbiBTeW50YXg6ICJhc3luYyBmdW5jdGlvbiBmKCAvKiBiICovICkgLyog
YyAqLyB7IC8qIGQgKi8gfSIgKGFzeW5jIGYgLyogYSAqLyAoIC8qIGIgKi8gKSAvKiBjICovIHsg
LyogZCAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IENvbmZvcm1zIHRvIE5h
dGl2ZUZ1bmN0aW9uIFN5bnRheDogImFzeW5jIGZ1bmN0aW9uIGYoIC8qIGIgKi8gKSAvKiBjICov
IHsgLyogZCAqLyB9IiAoYXN5bmMgZiAvKiBhICovICggLyogYiAqLyApIC8qIGMgKi8geyAvKiBk
ICovIH0pJwordGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL2J1aWx0
LWluLWZ1bmN0aW9uLW9iamVjdC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQ29uZm9y
bXMgdG8gTmF0aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gJCooKSB7XG4gICAgW25hdGl2
ZSBjb2RlXVxufSIgKCVSZWdFeHAlLiQqKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IENvbmZvcm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uICQqKCkge1xuICAg
IFtuYXRpdmUgY29kZV1cbn0iICglUmVnRXhwJS4kKiknCiB0ZXN0L2J1aWx0LWlucy9GdW5jdGlv
bi9wcm90b3R5cGUvdG9TdHJpbmcvZnVuY3Rpb24tZGVjbGFyYXRpb24tbm9uLXNpbXBsZS1wYXJh
bWV0ZXItbGlzdC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQ29uZm9ybXMgdG8gTmF0
aXZlRnVuY3Rpb24gU3ludGF4OiAiZnVuY3Rpb24gZiggLyogYyAqLyBhIC8qIGQgKi8gPSAvKiBl
ICovIDAgLyogZiAqLyAsIC8qIGcgKi8geyAvKiBoICovIGIgLyogaSAqLyA9IC8qIGogKi8gMCAv
KiBrICovIH0gLyogbCAqLyApIC8qIG0gKi8geyAvKiBuICovIH0iIChmdW5jdGlvbiAvKiBhICov
IGYgLyogYiAqLyAoIC8qIGMgKi8gYSAvKiBkICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBn
ICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAvKiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAv
KiBtICovIHsgLyogbiAqLyB9KScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IENvbmZv
cm1zIHRvIE5hdGl2ZUZ1bmN0aW9uIFN5bnRheDogImZ1bmN0aW9uIGYoIC8qIGMgKi8gYSAvKiBk
ICovID0gLyogZSAqLyAwIC8qIGYgKi8gLCAvKiBnICovIHsgLyogaCAqLyBiIC8qIGkgKi8gPSAv
KiBqICovIDAgLyogayAqLyB9IC8qIGwgKi8gKSAvKiBtICovIHsgLyogbiAqLyB9IiAoZnVuY3Rp
b24gLyogYSAqLyBmIC8qIGIgKi8gKCAvKiBjICovIGEgLyogZCAqLyA9IC8qIGUgKi8gMCAvKiBm
ICovICwgLyogZyAqLyB7IC8qIGggKi8gYiAvKiBpICovID0gLyogaiAqLyAwIC8qIGsgKi8gfSAv
KiBsICovICkgLyogbSAqLyB7IC8qIG4gKi8gfSknCkBAIC03NjIsOSArNzcxLDYgQEAgdGVzdC9i
dWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaQogdGVzdC9idWlsdC1pbnMvT2JqZWN0
L2VudHJpZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgogICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
YSwgbmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0
L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQt
dmFsdWUtcmVnZXhwLWRvbGxhcjEuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq3jCuykgdG8gYmUgdHJ1ZScK
IHRlc3QvYnVpbHQtaW5zL09iamVjdC9rZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFts
ZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzLiAnCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI4MDQ1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wNy0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPiBhbmQgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gTGVnYWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGFkZXUgWmFnYWxsby4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgYSBwYXJ0IG9mIExlZ2FjeSBSZWdFeHAgZmVhdHVyZXMgcHJvcG9zYWwg
WzFdLCByZXBsYWNpbmcKKyAgICAgICAgY3VzdG9tIHZhbHVlcyB3aXRoIGN1c3RvbSBhY2Nlc3Nv
cnMgdGhhdCByZXF1aXJlIHx0aGlzfCB2YWx1ZSB0byBiZSBSZWdFeHAKKyAgICAgICAgY29uc3Ry
dWN0b3Igb2YgdGhlIHNhbWUgcmVhbG0uCisKKyAgICAgICAgQXBhcnQgZnJvbSBmaXhpbmcgcHJv
cGVydHkgZGVzY3JpcHRvcnMsIHRoaXMgY2hhbmdlIGJyaW5ncyBsZWdhY3kgUmVnRXhwQ29uc3Ry
dWN0b3IKKyAgICAgICAgZmllbGRzIGluIGNvbXBsaWFuY2Ugd2l0aCBpbnZhcmlhbnRzIG9mIGlu
dGVybmFsIG1ldGhvZHMgWzJdIChkZXNjcmliZWQgaW4gIzE1MTM0OCksCisgICAgICAgIGFsaWdu
aW5nIEpTQyB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisKKyAgICAgICAgSXQgZG9lc24ndCwg
aG93ZXZlciwgaW1wbGVtZW50IFtbTGVnYWN5RmVhdHVyZXNFbmFibGVkXV0gYW5kIFJlZ0V4cC5w
cm90b3R5cGUuY29tcGlsZQorICAgICAgICBjaGFuZ2VzLgorCisgICAgICAgIFsxXTogaHR0cHM6
Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcmVnZXhwLWxlZ2FjeS1mZWF0dXJlcworICAgICAg
ICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaW52YXJpYW50cy1vZi10aGUtZXNz
ZW50aWFsLWludGVybmFsLW1ldGhvZHMKKworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIp
OgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGwpOiBEZWxldGVkLgor
ICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorCiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdlYkdQVSB0byB3
ZWJraXQub3JnL3N0YXR1cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9BY2Nlc3NDYXNlLmNwcAkocmV2aXNpb24gMjgwNDU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDc3LDE0ICsx
NDc3LDkgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgIGNh
c2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6IHsKICAgICAgICAgR1BSUmVnIHZhbHVlUmVnc1BheWxv
YWRHUFIgPSB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpOwogCi0gICAgICAgIGlmIChpc1ZhbGlkT2Zm
c2V0KG1fb2Zmc2V0KSkgewotICAgICAgICAgICAgU3RydWN0dXJlKiBjdXJyU3RydWN0dXJlOwot
ICAgICAgICAgICAgaWYgKCFoYXNBbHRlcm5hdGVCYXNlKCkpCi0gICAgICAgICAgICAgICAgY3Vy
clN0cnVjdHVyZSA9IHN0cnVjdHVyZSgpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGN1cnJTdHJ1Y3R1cmUgPSBhbHRlcm5hdGVCYXNlKCktPnN0cnVjdHVyZSh2bSk7CisgICAg
ICAgIFN0cnVjdHVyZSogY3VyclN0cnVjdHVyZSA9IGhhc0FsdGVybmF0ZUJhc2UoKSA/IGFsdGVy
bmF0ZUJhc2UoKS0+c3RydWN0dXJlKHZtKSA6IHN0cnVjdHVyZSgpOworICAgICAgICBpZiAoaXNW
YWxpZE9mZnNldChtX29mZnNldCkpCiAgICAgICAgICAgICBjdXJyU3RydWN0dXJlLT5zdGFydFdh
dGNoaW5nUHJvcGVydHlGb3JSZXBsYWNlbWVudHModm0sIG9mZnNldCgpKTsKLSAgICAgICAgfQog
CiAgICAgICAgIGJvb2wgZG9lc1Byb3BlcnR5U3RvcmFnZUxvYWRzID0gbV90eXBlID09IExvYWQg
CiAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gR2V0R2V0dGVyCkBAIC0xNzQ5LDcgKzE3NDQsMTAg
QEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgICAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBDdXN0b21WYWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9tQWNj
ZXNzb3JHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbVZhbHVlU2V0dGVyIHx8IG1fdHlwZSA9PSBD
dXN0b21BY2Nlc3NvclNldHRlcik7CiAgICAgICAgICAgICBBU1NFUlQoIWRvZXNQcm9wZXJ0eVN0
b3JhZ2VMb2Fkcyk7IC8vIE9yIHdlIG5lZWQgYW4gZXh0cmEgcmVnaXN0ZXIuIFdlIHJlbHkgb24g
cHJvcGVydHlPd25lckdQUiBiZWluZyBjb3JyZWN0IGhlcmUuCiAKLSAgICAgICAgICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBoYXNBbHRlcm5hdGVCYXNlKCkgPyBhbHRlcm5hdGVC
YXNlKCktPmdsb2JhbE9iamVjdCh2bSkgOiBzdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCk7Cisg
ICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBrZWVwIGdsb2JhbE9iamVjdCBhbGl2ZSBz
aW5jZQorICAgICAgICAgICAgLy8gMS4gaWYgaXQgaXMgQ3VzdG9tVmFsdWUsIHRoZSBvd25lciBD
b2RlQmxvY2sgKGV2ZW4gaWYgSlNHbG9iYWxPYmplY3QqIGlzIG9uZSBvZiBDb2RlQmxvY2sgdGhh
dCBpcyBpbmxpbmVkIGFuZCBoZWxkIGJ5IERGRyBDb2RlQmxvY2spIG11c3Qga2VlcCBpdCBhbGl2
ZS4KKyAgICAgICAgICAgIC8vIDIuIGlmIGl0IGlzIEN1c3RvbUFjY2Vzc29yLCBzdHJ1Y3R1cmUg
c2hvdWxkIGhvbGQgaXQuCisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gY3VyclN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCk7CiAKICAgICAgICAgICAgIC8vIE5lZWQg
dG8gbWFrZSByb29tIGZvciB0aGUgQyBjYWxsIHNvIGFueSBvZiBvdXIgc3RhY2sgc3BpbGxhZ2Ug
aXNuJ3Qgb3ZlcndyaXR0ZW4uIEl0J3MKICAgICAgICAgICAgIC8vIGhhcmQgdG8gdHJhY2sgaWYg
c29tZW9uZSBkaWQgc3BpbGxhZ2Ugb3Igbm90LCBzbyB3ZSBqdXN0IGFzc3VtZSB0aGF0IHdlIGFs
d2F5cyBuZWVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyODA0NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDE1ICszNSw3IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cEMK
IHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBh
cmVuKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KTsKLXN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk7Ci1zdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYpOwotc3RhdGljIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KTsKLXN0YXRp
YyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk7Ci1z
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0UmVnRXhwQ29uc3RydWN0
b3JJbnB1dCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZSk7CiAKQEAgLTU3LDI3ICs0OSwyNyBAQCBjb25zdCBDbGFzc0luZm8g
UmVnRXhwQ29uc3RydWN0b3I6OnNfaW5mCiAKIC8qIFNvdXJjZSBmb3IgUmVnRXhwQ29uc3RydWN0
b3IubHV0LmgKIEBiZWdpbiByZWdFeHBDb25zdHJ1Y3RvclRhYmxlCi0gICAgaW5wdXQgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQgICAgICAgICAgTm9uZQotICAgICRfICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIERvbnRFbnVtCi0gICAgbXVsdGls
aW5lICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgTm9uZQotICAgICQqICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSAgICAgIERvbnRFbnVtCi0gICAg
bGFzdE1hdGNoICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQmICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRj
aCAgICAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICBsYXN0UGFyZW4gICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JCsgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuICAgICAgRG9udERlbGV0
ZXxSZWFkT25seXxEb250RW51bQotICAgIGxlZnRDb250ZXh0ICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckxlZnRDb250ZXh0ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkYCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRF
bnVtCi0gICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQnICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
clJpZ2h0Q29udGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICAkMSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjMgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQ2ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI3ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDggICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ5ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKKyAgICBpbnB1dCAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JJ
bnB1dCAgICAgICAgICBDdXN0b21BY2Nlc3NvcnxEb250RW51bQorICAgICRfICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIEN1c3RvbUFjY2Vzc29yfERvbnRFbnVt
CisgICAgbXVsdGlsaW5lICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lICAgICAgQ3Vz
dG9tQWNjZXNzb3J8RG9udEVudW0KKyAgICAkKiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUgICAgICBDdXN0b21BY2Nlc3NvcnxEb250RW51bQorICAgIGxhc3RNYXRjaCAg
ICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRP
bmx5fERvbnRFbnVtCisgICAgJCYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1h
dGNoICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICBsYXN0UGFyZW4g
ICAgICAgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4gICAgICBDdXN0b21BY2Nlc3NvcnxSZWFk
T25seXxEb250RW51bQorICAgICQrICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQ
YXJlbiAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgbGVmdENvbnRl
eHQgICAgIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQgICAgQ3VzdG9tQWNjZXNzb3J8UmVh
ZE9ubHl8RG9udEVudW0KKyAgICAkYCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0
Q29udGV4dCAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgIHJpZ2h0Q29u
dGV4dCAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCAgIEN1c3RvbUFjY2Vzc29yfFJl
YWRPbmx5fERvbnRFbnVtCisgICAgJCcgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yUmln
aHRDb250ZXh0ICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkMSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxS
ZWFkT25seXxEb250RW51bQorICAgICQyICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDMgICAg
ICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8
UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3NvcnxSZWFkT25seXxEb250RW51bQorICAgICQ1ICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29y
fFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNzb3J8UmVhZE9ubHl8RG9udEVudW0KKyAgICAkNyAg
ICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIgICAgICAgICBDdXN0b21BY2Nlc3Nv
cnxSZWFkT25seXxEb250RW51bQorICAgICQ4ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhciAgICAgICAgIEN1c3RvbUFjY2Vzc29yfFJlYWRPbmx5fERvbnRFbnVtCisgICAgJDkg
ICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyICAgICAgICAgQ3VzdG9tQWNjZXNz
b3J8UmVhZE9ubHl8RG9udEVudW0KIEBlbmQKICovCiAKQEAgLTEwMCwxMTQgKzkyLDk5IEBAIHZv
aWQgUmVnRXhwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFYKICAgICBwdXREaXJlY3ROb25J
bmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNp
ZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CiB9CiAKLXRlbXBsYXRlPGludCBOPgotaW5saW5lIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwor
ICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4
cENvbnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJSZWdFeHAuJE4gZ2V0dGVycyByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3Rv
ciBhcyB8dGhpc3wiX3MpOworICAgIHVuc2lnbmVkIE4gPSBwcm9wZXJ0eU5hbWUudWlkKCktPmF0
KDEpIC0gJzAnOworICAgIEFTU0VSVChOID49IDEgJiYgTiA8PSA5KTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJhY2tyZWYo
Z2xvYmFsT2JqZWN0LCBOKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJl
dHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8MT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIHByb3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyMywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAgcmV0dXJu
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwzPihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
cHJvcGVydHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJldHVybiBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8ND4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHBy
b3BlcnR5TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9w
ZXJ0eU5hbWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyNiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCi17Ci0gICAgcmV0dXJuIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFySW1wbDw2PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVy
dHlOYW1lKTsKLX0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQotewotICAgIHJldHVybiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhckltcGw8Nz4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5
TmFtZSk7Ci19Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKLXsKLSAgICByZXR1cm4gcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5h
bWUpOwotfQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
cmVnRXhwQ29uc3RydWN0b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9w
ZXJ0eU5hbWUpOwotfQotCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JJbnB1dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQotewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8
UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9i
amVjdCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpICE9IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5pbnB1dCBn
ZXR0ZXIgcmVxdWlyZXMgUmVnRXhwIGNvbnN0cnVjdG9yIGFzIHx0aGlzfCJfcyk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5pbnB1
dCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JNdWx0
aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVn
RXhwLm11bHRpbGluZSBnZXR0ZXIgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8
Il9zKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihnbG9iYWxPYmplY3Qt
PnJlZ0V4cEdsb2JhbERhdGEoKS5tdWx0aWxpbmUoKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9y
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJh
Y2tyZWYoZ2xvYmFsT2JqZWN0LCAwKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3Rv
cigpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiUmVnRXhwLmxhc3RNYXRjaCBnZXR0ZXIgcmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMg
fHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2JhbE9iamVj
dCwgMCkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
TGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxP
YmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSk7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0g
Z2xvYmFsT2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmxhc3RQYXJlbiBnZXR0ZXIg
cmVxdWlyZSBSZWdFeHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2Jh
bERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25z
dHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5nZXRMZWZ0Q29udGV4dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
IGlmIChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENv
bnN0cnVjdG9yKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJSZWdFeHAubGVmdENvbnRleHQgZ2V0dGVyIHJlcXVpcmUgUmVnRXhwIGNvbnN0
cnVjdG9yIGFzIHx0aGlzfCJfcyk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0TGVmdENvbnRl
eHQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JSaWdodENvbnRleHQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4
dChnbG9iYWxPYmplY3QpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSAhPSBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdF
eHAucmlnaHRDb250ZXh0IGdldHRlciByZXF1aXJlIFJlZ0V4cCBjb25zdHJ1Y3RvciBhcyB8dGhp
c3wiX3MpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGds
b2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4dChnbG9iYWxPYmpl
Y3QpKSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rv
cklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWljQ2FzdDxSZWdF
eHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpIHsKLSAgICAg
ICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhnbG9iYWxP
YmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2JhbE9iamVjdC0+cmVn
RXhwR2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgaWYgKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpICE9IGdsb2Jh
bE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiUmVnRXhwLmlucHV0IHNldHRlcnMgcmVxdWlyZSBSZWdFeHAg
Y29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogc3RyaW5nID0gSlNWYWx1ZTo6ZGVjb2RlKHZh
bHVlKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLnNldElucHV0KGdsb2JhbE9iamVjdCwgc3RyaW5nKTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9y
TXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0ganNEeW5hbWljQ2FzdDxS
ZWdFeHBDb25zdHJ1Y3Rvcio+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpIHsKLSAg
ICAgICAgYm9vbCBtdWx0aWxpbmUgPSBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvQm9vbGVhbihn
bG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwot
ICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBjb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGdsb2JhbE9iamVj
dC0+cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUpOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkgIT0gZ2xvYmFs
T2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAubXVsdGlsaW5lIHNldHRlcnMgcmVxdWlyZSBSZWdF
eHAgY29uc3RydWN0b3IgYXMgfHRoaXN8Il9zKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBtdWx0aWxpbmUgPSBKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGdsb2JhbE9iamVjdC0+
cmVnRXhwR2xvYmFsRGF0YSgpLnNldE11bHRpbGluZShtdWx0aWxpbmUpOworICAgIHJldHVybiB0
cnVlOwogfQogCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1Y3R1cmUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCShyZXZpc2lvbiAyODA0NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2MDAsMTEgKzE2MDAsMTMgQEAgcHVibGljOgogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihjdXN0b21HZXRBY2Nlc3Nvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihjdXN0b21HZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
UihjdXN0b21HZXRWYWx1ZTIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3Vz
dG9tR2V0QWNjZXNzb3JHbG9iYWxPYmplY3QpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoY3VzdG9tR2V0VmFsdWVHbG9iYWxPYmplY3QpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoY3VzdG9tU2V0QWNjZXNzb3IpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoY3VzdG9tU2V0QWNjZXNzb3JHbG9iYWxPYmplY3QpOwogc3RhdGljIEpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUyKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKGN1c3RvbVNldFZhbHVlR2xvYmFsT2JqZWN0KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKGN1c3RvbUZ1bmN0aW9uU2V0dGVyKTsKIApAQCAtMTYyMSw2ICsxNjIzLDE4
IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXRWYWx1ZSwKICAgICByZXR1cm4g
c2xvdFZhbHVlOwogfQogCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgUkVMRUFTRV9BU1NFUlQo
SlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0
dGVyPihnbG9iYWxPYmplY3QtPnZtKCkpKTsKKworICAgIGF1dG8qIHRhcmdldCA9IGpzQ2FzdDxK
U1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKSk7Cisg
ICAgSlNWYWx1ZSB2YWx1ZSA9IHRhcmdldC0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAidmFsdWUyIikpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUg
PyB2YWx1ZSA6IGpzVW5kZWZpbmVkKCkpOworfQorCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
Y3VzdG9tR2V0QWNjZXNzb3JHbG9iYWxPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdCk7CkBAIC0xNjk5LDYgKzE3MTMsMTggQEAgSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKGN1c3RvbVNldFZhbHVlRwogICAgIHJldHVybiB0cnVlOwogfQogCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBSRUxF
QVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0
b21HZXR0ZXJTZXR0ZXI+KHZtKSk7CisgICAgYXV0byogdGFyZ2V0ID0ganNDYXN0PEpTVGVzdEN1
c3RvbUdldHRlclNldHRlcio+KEpTVmFsdWU6OmRlY29kZShzbG90VmFsdWUpKTsKKyAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdCh0YXJnZXQpOworICAgIHRhcmdldC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUyIiksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KGN1c3RvbUZ1bmN0aW9uU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTcyMyw2ICsxNzQ5
LDggQEAgdm9pZCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmZpbmlzaENyZQogCiAgICAgcHV0
RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0
b21WYWx1ZSIpLAogICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgY3VzdG9t
R2V0VmFsdWUsIGN1c3RvbVNldFZhbHVlKSwgMCk7CisgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNz
b3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0b21WYWx1ZTIiKSwKKyAgICAg
ICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGN1c3RvbUdldFZhbHVlMiwgY3VzdG9t
U2V0VmFsdWUyKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21WYWx1ZSkpOwogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAiY3VzdG9tQWNjZXNzb3IiKSwKICAgICAgICAgQ3VzdG9tR2V0dGVyU2V0
dGVyOjpjcmVhdGUodm0sIGN1c3RvbUdldEFjY2Vzc29yLCBjdXN0b21TZXRBY2Nlc3NvciksIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKTsK
ICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgImN1c3RvbVZhbHVlR2xvYmFsT2JqZWN0IiksCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODA0NTkp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAyMS0wNy0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPiBhbmQgQWxl
eGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gTGVn
YWN5IFJlZ0V4cCBmaWVsZHMgc2hvdWxkIGJlIGFjY2Vzc29ycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjMzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGFkZXUgWmFnYWxsby4KKworICAgICAgICAqIGpzL2RvbS9nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9yZWdleHAtY2FjaGluZy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3JlZ2V4cC1jYWNoaW5nLmh0bWw6CisgICAgICAg
ICoganMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qczoKKyAgICAgICAgKiBq
cy9zY3JpcHQtdGVzdHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanM6CisgICAgICAg
ICoganMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGpzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmh0bWw6CisKIDIwMjEtMDctMjkg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJl
cXVlc3RdIGBhZGRpdGlvbmFsU2hpcHBpbmdNZXRob2RzYCBhcmUgbm90IHVzZWQgaWYgYSBgcGF5
bWVudE1ldGhvZFR5cGVgIGlzIHByb3ZpZGVkCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zdGF0aWMt
cHV0LWluLXByb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyODA0NTkpCisrKyBMYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1j
aGFpbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBACi1UaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IHdlIHdpbGwgY2FsbCBhIGN1c3RvbSBzZXR0ZXIgd2hlbiB0aGUgc2V0
dGVyIGlzIGluIHRoZSBwcm90b3R5cGUgY2hhaW4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1MgdGVzdE9iamVjdC5pbnB1dCBpcyAndGVzdElucHV0JwotUEFTUyBSZWdFeHAu
aW5wdXQgaXMgJ3Rlc3RJbnB1dCcKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zdGF0aWMtcHV0LWluLXByb3Rv
dHlwZS1jaGFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3N0YXRpYy1wdXQt
aW4tcHJvdG90eXBlLWNoYWluLmh0bWwJKHJldmlzaW9uIDI4MDQ1OSkKKysrIExheW91dFRlc3Rz
L2pzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWluLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3RhdGljLXB1dC1pbi1wcm90b3R5cGUtY2hhaW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3Bl
cnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI4MDQ1OSkKKysrIExheW91dFRl
c3RzL2pzL2RvbS9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw5ICszOSwxMCBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoTnVtCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTnVtYmVyLCAn
TkVHQVRJVkVfSU5GSU5JVFknKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklU
WScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihOdW1iZXIsICdORUdBVElWRV9JTkZJTklUWScpLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykudmFsdWUg
aXMgUmVnRXhwLiRfCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LCAnJF8nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRf
JykuZ2V0IGlzIFJlZ0V4cCRfR2V0dGVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoUmVnRXhwLCAnJF8nKS5zZXQgaXMgUmVnRXhwJF9TZXR0ZXIKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycpLmhhc093blByb3BlcnR5KCd2YWx1
ZScpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LCAnJF8nKS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZW51bWVyYWJsZSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihO
b2RlLCAnRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJykudmFsdWUgaXMgTm9kZS5ET0NV
TUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9yZWdl
eHAtY2FjaGluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjgwNDU5KQorKysgTGF5b3V0
VGVzdHMvanMvZG9tL3JlZ2V4cC1jYWNoaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDEwIEBACiBUaGlzIHRlc3QgY2hlY2tzIG91ciBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgc3BlY2lhbCBSZWdFeHAgbWVtYmVyIHZhcmlhYmxlcy4KIAogUHJvcGVydGllcyBvZiBSZWdF
eHAgYXQgc3RhcnR1cDoKKyQmOiB7fSAocmVhZC1vbmx5KQorJCc6IHt9IChyZWFkLW9ubHkpCisk
Kjoge2ZhbHNlfSAocmVhZC13cml0ZSkKKyQrOiB7fSAocmVhZC1vbmx5KQogJDE6IHt9IChyZWFk
LW9ubHkpCiAkMjoge30gKHJlYWQtb25seSkKICQzOiB7fSAocmVhZC1vbmx5KQpAQCAtMTAsMTQg
KzE0LDIzIEBAICQ2OiB7fSAocmVhZC1vbmx5KQogJDc6IHt9IChyZWFkLW9ubHkpCiAkODoge30g
KHJlYWQtb25seSkKICQ5OiB7fSAocmVhZC1vbmx5KQorJF86IHt9IChyZWFkLXdyaXRlKQorJGA6
IHt9IChyZWFkLW9ubHkpCiBpbnB1dDoge30gKHJlYWQtd3JpdGUpCiBsYXN0TWF0Y2g6IHt9IChy
ZWFkLW9ubHkpCiBsYXN0UGFyZW46IHt9IChyZWFkLW9ubHkpCiBsZWZ0Q29udGV4dDoge30gKHJl
YWQtb25seSkKK2xlbmd0aDogezJ9IChyZWFkLW9ubHkpCiBtdWx0aWxpbmU6IHtmYWxzZX0gKHJl
YWQtd3JpdGUpCituYW1lOiB7UmVnRXhwfSAocmVhZC1vbmx5KQorcHJvdG90eXBlOiB7Lyg/Oikv
fSAocmVhZC1vbmx5KQogcmlnaHRDb250ZXh0OiB7fSAocmVhZC1vbmx5KQogCiBQcm9wZXJ0aWVz
IG9mIFJlZ0V4cCBhZnRlciAvKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDApLy5leGVjKDwx
MjM0NTY3ODkwPik6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge2ZhbHNlfQorJCs6
IHswfQogJDE6IHsxfQogJDI6IHsyfQogJDM6IHszfQpAQCAtMjcsMTEgKzQwLDE2IEBAICQ2OiB7
Nn0KICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+fQorJGA6IHs8
fQogaW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBh
cmVuOiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHtmYWxz
ZX0KK25hbWU6IHtSZWdFeHB9Citwcm90b3R5cGU6IHsvKD86KS99CiByaWdodENvbnRleHQ6IHs+
fQogCiBSZWdFeHAuJDAgZG9lcyBub3QgZXhpc3QKQEAgLTQxLDYgKzU5LDEwIEBAIFJlZ0V4cC5t
dWx0aWxpbmUgY29lcmNlcyB2YWx1ZXMgdG8gYm9vbGUKIFJlZ0V4cC5pbnB1dCBjb2VyY2VzIHZh
bHVlcyB0byBzdHJpbmdzCiAKIFByb3BlcnRpZXMgb2YgUmVnRXhwIGFmdGVyIC8oMSkoMikoMyko
NCkoNSkoNikoNykoOCkoOSkoMCkvLmV4ZWMoWFhYKToKKyQmOiB7MTIzNDU2Nzg5MH0KKyQnOiB7
Pn0KKyQqOiB7dHJ1ZX0KKyQrOiB7MH0KICQxOiB7MX0KICQyOiB7Mn0KICQzOiB7M30KQEAgLTUw
LDE1ICs3MiwyNCBAQCAkNjogezZ9CiAkNzogezd9CiAkODogezh9CiAkOTogezl9CiskXzogezB9
CiskYDogezx9CiBpbnB1dDogezB9CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkwfQogbGFzdFBhcmVu
OiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxpbmU6IHt0cnVlfQor
bmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29udGV4dDogez59CiAK
IC0tLS0tLS0tLS0gW0NsZWFyZWQgUmVnRXhwIHZhbHVlc10gLS0tLS0tLS0tLQogUHJvcGVydGll
cyBvZiBSZWdFeHAgYWZ0ZXIgPDEyMzQ1Njc4OTA+LnNlYXJjaCgvKDEpKDIpKDMpKDQpKDUpKDYp
KDcpKDgpKDkpKDApLyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3RydWV9Cisk
KzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC02OCwxNSArOTksMjQgQEAgJDY6
IHs2fQogJDc6IHs3fQogJDg6IHs4fQogJDk6IHs5fQorJF86IHs8MTIzNDU2Nzg5MD59CiskYDog
ezx9CiBpbnB1dDogezwxMjM0NTY3ODkwPn0KIGxhc3RNYXRjaDogezEyMzQ1Njc4OTB9CiBsYXN0
UGFyZW46IHswfQogbGVmdENvbnRleHQ6IHs8fQorbGVuZ3RoOiB7Mn0KIG11bHRpbGluZToge3Ry
dWV9CituYW1lOiB7UmVnRXhwfQorcHJvdG90eXBlOiB7Lyg/OikvfQogcmlnaHRDb250ZXh0OiB7
Pn0KIAogLS0tLS0tLS0tLSBbQ2xlYXJlZCBSZWdFeHAgdmFsdWVzXSAtLS0tLS0tLS0tCiBQcm9w
ZXJ0aWVzIG9mIFJlZ0V4cCBhZnRlciA8MTIzNDU2Nzg5MD4ucmVwbGFjZSgvKDEpKDIpKDMpKDQp
KDUpKDYpKDcpKDgpKDkpKDApLyk6CiskJjogezEyMzQ1Njc4OTB9CiskJzogez59CiskKjoge3Ry
dWV9CiskKzogezB9CiAkMTogezF9CiAkMjogezJ9CiAkMzogezN9CkBAIC04NiwxMCArMTI2LDE1
IEBAICQ2OiB7Nn0KICQ3OiB7N30KICQ4OiB7OH0KICQ5OiB7OX0KKyRfOiB7PDEyMzQ1Njc4OTA+
fQorJGA6IHs8fQogaW5wdXQ6IHs8MTIzNDU2Nzg5MD59CiBsYXN0TWF0Y2g6IHsxMjM0NTY3ODkw
fQogbGFzdFBhcmVuOiB7MH0KIGxlZnRDb250ZXh0OiB7PH0KK2xlbmd0aDogezJ9CiBtdWx0aWxp
bmU6IHt0cnVlfQorbmFtZToge1JlZ0V4cH0KK3Byb3RvdHlwZTogey8oPzopL30KIHJpZ2h0Q29u
dGV4dDogez59CiAKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtY2FjaGluZy5odG1sCShy
ZXZpc2lvbiAyODA0NTkpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLWNhY2hpbmcuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTAgKzIwLDcgQEAgZnVuY3Rpb24gaXNSZWFkT25seShv
YmplY3QsIHByb3BlcnR5KQogCiBmdW5jdGlvbiBwcmludFByb3BlcnRpZXNXaXRoUmVhZE9ubHko
b2JqZWN0KQogewotICAgIHZhciBhcnJheSA9IG5ldyBBcnJheTsKLSAgICBmb3IgKHZhciBwcm9w
ZXJ0eSBpbiBvYmplY3QpIHsKLSAgICAgICAgYXJyYXkucHVzaChwcm9wZXJ0eSk7Ci0gICAgfQor
ICAgIHZhciBhcnJheSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7CiAgICAg
YXJyYXkuc29ydCgpOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKysp
IHsKICAgICAgICAgdmFyIHByb3BlcnR5ID0gYXJyYXlbaV07CkBAIC0zMywxMCArMzAsNyBAQCBm
dW5jdGlvbiBwcmludFByb3BlcnRpZXNXaXRoUmVhZE9ubHkob2JqCiAKIGZ1bmN0aW9uIHByaW50
UHJvcGVydGllcyhvYmplY3QpCiB7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5OwotICAgIGZv
ciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkgewotICAgICAgICBhcnJheS5wdXNoKHByb3BlcnR5
KTsKLSAgICB9CisgICAgdmFyIGFycmF5ID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0KTsKICAgICBhcnJheS5zb3J0KCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5s
ZW5ndGg7IGkrKykgewogICAgICAgICB2YXIgcHJvcGVydHkgPSBhcnJheVtpXTsKSW5kZXg6IExh
eW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRv
ci5qcwkocmV2aXNpb24gMjgwNDU5KQorKysgTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93
blByb3BlcnR5RGVzY3JpcHRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsOSBAQCBk
ZXNjcmlwdG9yU2hvdWxkQmUoIlN0cmluZy5wcm90b3R5cGUiLCAiCiBkZXNjcmlwdG9yU2hvdWxk
QmUoIlJlZ0V4cC5wcm90b3R5cGUiLCAiJ2V4ZWMnIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJh
YmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZToiUmVnRXhwLnByb3RvdHlwZS5l
eGVjIn0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5fX3Byb3RvX18uX19wcm90b19f
IiwgIidjcmVhdGVFbGVtZW50JyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwg
Y29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZToiZG9jdW1lbnQuY3JlYXRlRWxlbWVudCJ9KTsKIGRl
c2NyaXB0b3JTaG91bGRCZSgiTnVtYmVyIiwgIidORUdBVElWRV9JTkZJTklUWSciLCB7d3JpdGFi
bGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6
Ik51bWJlci5ORUdBVElWRV9JTkZJTklUWSJ9KTsKLWRlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhw
IiwgIickXyciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFi
bGU6IHRydWUsIHZhbHVlOiJSZWdFeHAuJF8ifSk7Cit2YXIgUmVnRXhwJF9HZXR0ZXIgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgJyRfJykuZ2V0OwordmFyIFJlZ0V4
cCRfU2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAsICckXycp
LnNldDsKK2Rlc2NyaXB0b3JTaG91bGRCZSgiUmVnRXhwIiwgIickXyciLCB7Z2V0OiAiUmVnRXhw
JF9HZXR0ZXIiLCBzZXQ6ICJSZWdFeHAkX1NldHRlciIsIGVudW1lcmFibGU6IGZhbHNlLCBjb25m
aWd1cmFibGU6IHRydWUsfSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIk5vZGUiLCAiJ0RPQ1VNRU5U
X1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0
cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9E
SVNDT05ORUNURUQifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoIk1hdGgiLCAiJ3NpbiciLCB7d3Jp
dGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVl
OiJNYXRoLnNpbiJ9KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiWzEsMiwzXSIsICIwIiwge3dyaXRh
YmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiIx
In0pOwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQtaW4tcHJv
dG90eXBlLWNoYWluLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9zdGF0aWMtcHV0LWluLXByb3RvdHlwZS1jaGFpbi5qcwkocmV2aXNpb24gMjgwNDU5KQorKysg
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0YXRpYy1wdXQtaW4tcHJvdG90eXBlLWNoYWlu
LmpzCShub25leGlzdGVudCkKQEAgLTEsMTIgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRoaXMgdGVz
dCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBjYWxsIGEgY3VzdG9tIHNldHRlciB3aGVuIHRoZSBzZXR0
ZXIgaXMgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiIpOwotCi0vLyBUaGUgUmVnRXhwIE9iamVjdCBp
cyBhIGNvbnZlbmllbnQgY29uc3RydWN0b3Igd2l0aCBhIGN1c3RvbSBzZXR0ZXIuCi0vLyBUaGlz
IHdpbGwgYWxzbyB0ZXN0IHRoZSB3ZWlyZCBiZWhhdmlvdXIgaW4gd2hpY2ggdGhlIFJlZ0V4cCBj
b25zdHJ1Y3RvcgotLy8gc2V0dGVycyBhcmUgZXhwZWN0ZWQgdG8gYWN0IG9uIHRoZSBiYXNlIG9i
amVjdCAoZS5nLiB0aGUgY29uc3RydWN0b3Igb2JqZWN0KQotLy8gcmF0aGVyIHRoYW4gdGhlIHRo
aXMgdmFsdWUuCi12YXIgdGVzdE9iamVjdCA9IHtfX3Byb3RvX186IFJlZ0V4cCB9Ci0KLXRlc3RP
YmplY3QuaW5wdXQgPSAidGVzdElucHV0IgotCi1zaG91bGRCZSgidGVzdE9iamVjdC5pbnB1dCIs
ICIndGVzdElucHV0JyIpCi1zaG91bGRCZSgiUmVnRXhwLmlucHV0IiwgIid0ZXN0SW5wdXQnIikK
</data>

          </attachment>
      

    </bug>

</bugzilla>