<?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>97375</bug_id>
          
          <creation_ts>2012-09-21 15:42:25 -0700</creation_ts>
          <short_desc>IndexedDB: Remove IDBKey from WebKitIDL</short_desc>
          <delta_ts>2013-01-22 17:16:47 -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>WebCore Misc.</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100051</dependson>
    
    <dependson>106912</dependson>
          <blocked>100292</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>michael</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>725896</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-21 15:42:25 -0700</bug_when>
    <thetext>The WebKit IDB implementation creates a special type, IDBKey, and exposes it in the WebKitIDL files for IDL types, e.g.:

        [CallWith=ScriptExecutionContext] IDBRequest put(in any value, in [Optional] IDBKey key)
            raises (IDBDatabaseException);

This requires logic in the code generator and custom binding code (V8 and JSC) to have special cases for IDBKey.

Alternately, we could match the WebIDL and just have this be an &quot;any&quot;, and then expose functions (in the binding layer, I guess) which the implementation of put() (for example) would call to map a DOMObject (usually a ScriptObject) into an IDBKey (or fail).

That would also be a good time to make IDBKey a value type instead of a refcounted class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806618</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-14 14:18:39 -0800</bug_when>
    <thetext>I&apos;m going to do this in two phases:

(1) Drop dependencies on IDBKey in other IDB IDLs - functions will take &quot;any&quot; (i.e. ScriptValue) instead.
(2) Clean up the binding code

Note that #1 will probably look like a bad refactor since it will be inlining a bunch of code that was hidden by the binding layer to do the ScriptValue-&gt;IDBKey conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813393</commentid>
    <comment_count>2</comment_count>
      <attachid>184044</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 14:08:58 -0800</bug_when>
    <thetext>Created attachment 184044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813394</commentid>
    <comment_count>3</comment_count>
      <attachid>184044</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 14:09:43 -0800</bug_when>
    <thetext>Comment on attachment 184044
Patch

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

&gt; Source/WebCore/bindings/js/IDBBindingUtilities.cpp:72
&gt; +static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBKey* key)

Should I give this a more meaningful name, e.g. idbKeyToJSValue?

&gt; Source/WebCore/bindings/v8/IDBBindingUtilities.cpp:42
&gt; +static v8::Handle&lt;v8::Value&gt; toV8(IDBKey* key, v8::Handle&lt;v8::Object&gt; creationContext, v8::Isolate* isolate)

Should I give this a more meaningful name, e.g. idbKeyToV8Value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813397</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 14:10:00 -0800</bug_when>
    <thetext>haraken@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813528</commentid>
    <comment_count>5</comment_count>
      <attachid>184044</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-22 16:19:20 -0800</bug_when>
    <thetext>Comment on attachment 184044
Patch

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

&gt;&gt; Source/WebCore/bindings/js/IDBBindingUtilities.cpp:72
&gt;&gt; +static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBKey* key)
&gt; 
&gt; Should I give this a more meaningful name, e.g. idbKeyToJSValue?

Sounds nicer. This method is not &quot;toV8()&quot; in our binding terminology (toV8() is a method that wraps a DOM object).

&gt;&gt; Source/WebCore/bindings/v8/IDBBindingUtilities.cpp:42
&gt;&gt; +static v8::Handle&lt;v8::Value&gt; toV8(IDBKey* key, v8::Handle&lt;v8::Object&gt; creationContext, v8::Isolate* isolate)
&gt; 
&gt; Should I give this a more meaningful name, e.g. idbKeyToV8Value?

Ditto. Let&apos;s rename.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813558</commentid>
    <comment_count>6</comment_count>
      <attachid>184078</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 16:48:03 -0800</bug_when>
    <thetext>Created attachment 184078
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813588</commentid>
    <comment_count>7</comment_count>
      <attachid>184078</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 17:16:42 -0800</bug_when>
    <thetext>Comment on attachment 184078
Patch for landing

Clearing flags on attachment: 184078

Committed r140488: &lt;http://trac.webkit.org/changeset/140488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813589</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 17:16:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184044</attachid>
            <date>2013-01-22 14:08:58 -0800</date>
            <delta_ts>2013-01-22 16:47:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97375-20130122140553.patch</filename>
            <type>text/plain</type>
            <size>49520</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I3YmQ1YjExNDAyNWE1
MGIzYjc1MjVjN2Y0M2JmZTFiOTRkZDFkYy4uNzA3NDM0YjdjNjUwM2M1NGFhNTE1NzA2NGFmZGRk
ODQwM2QxNWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEzLTAxLTIyICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgSURCS2V5IGZyb20gV2ViS2l0SURMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHJlZmVyZW5jZXMgdG8gdGhlIGFydGlmaWNpYWwgSURC
S2V5IHR5cGUgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBhbGwgSURMcywgcmVtb3ZlCisgICAgICAg
IHRoZSBzdXBwb3J0IGNvZGUsIGFuZCBtb3ZlIHRoZSBjb252ZXJzaW9uIGNvZGUgaW50byB0aGUg
SURCQmluZGluZ1V0aWxpdGllcy4gUmVtb3ZlcworICAgICAgICByZWZlcmVuY2VzIHRvIHRoZSBh
dXRvZ2VuZXJhdGVkIHtWOCxKU31JREJLZXl7Q3VzdG9tLH0ue2NwcCxofSBmcm9tIHRoZSBwcm9q
ZWN0IGZpbGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGp1c3QgY29kZSBtb3Zlcy9yZW1v
dmluZyB1bnVzZWQgY29kZS4gVXBkYXRlZCBiaW5kaW5nIHJlZmVyZW5jZSB0ZXN0IHJlc3VsdHMu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogVXNlSlNDLmNtYWtlOgorICAgICAgICAqIFVzZVY4LmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKTogTW92ZWQgaGVyZSBmcm9tIEpTSURCS2V5Q3VzdG9tLmNwcAorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKToKKyAgICAg
ICAgKEdldE5hdGl2ZVR5cGUpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsOiBSZW1vdmVkIElEQktleS1zcGVjaWZpYyB0ZXN0LgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OCk6IE1vdmVkIGhlcmUgZnJvbSBWOElEQktleUN1c3RvbS5jcHAKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHA6IFJlbW92
ZWQuCisKIDIwMTMtMDEtMjIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4K
IAogICAgICAgICBbR1RLXSBEaXNhYmxlIENTUyBSZWdpb25zIGluIHJlbGVhc2UgYnVpbGRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGI2MTk3YTk4MTA1M2MxZjhmZTk2MDNkNzM3OTM2MDc5NzAz
MjM2ZjguLmNkYzI4MDg3YjI1ZjliNTJiOGQ4ODVhZDc4ZjVjNGNiY2EwZjFlYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xOTIsNyArMTkyLDYgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKLSAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcAppbmRleCA5ZjViZTUwMTQ0ZDA1OWNlZDJiMmQyZjkzMThiY2Y0Y2YyNTJmZjEx
Li43YjYxMTY4ZDkyNDMxYWRlOTUzYTQ1YzM4MTUzMWM5OGFkOGNjMzc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCkBAIC0yMjYsNyArMjI2LDYgQEAKICNpbmNsdWRlICJKU0lEQkRhdGFi
YXNlLmNwcCIKICNpbmNsdWRlICJKU0lEQkZhY3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTSURCSW5k
ZXguY3BwIgotI2luY2x1ZGUgIkpTSURCS2V5LmNwcCIKICNpbmNsdWRlICJKU0lEQktleVJhbmdl
LmNwcCIKICNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlLmNwcCIKICNpbmNsdWRlICJKU0lEQlJl
cXVlc3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmMyNDQ4OTU1NDBl
YmU2NTRiZmU3M2I0ZWZjMmEyOTQ1MmIyNTRiMC4uOWU0MDc4NTA2ZmU2ZjgwNDY5YTU1YWQ5MmU3
ZTI5ZGZlZDJjMWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC05OCw3ICs5
OCw2IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5p
ZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQppbmRleCAyZWFkNzIwZTFmNWQwNzY5MTQ4OGIwYWU0ODhkMTEwYjY5YWYyODc2Li4w
ZTAwYzhmNjhiNjE0NjMzMjJiYzkxMjA0NDRmZTY2MGU0NmJmYjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCkBAIC0xMjEsNyArMTIxLDYgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAk
JFBXRC9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwgXAogICAgICQkUFdEL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleC5pZGwgXAotICAgICQkUFdEL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwg
XAogICAgICQkUFdEL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbCBcCiAgICAgJCRQ
V0QvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsIFwKICAgICAkJFBXRC9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBhM2Y0NWFhOTI5MTRjZWQ0YmQwZTBjMGI0ZGJiNDgzNDczZjM0ZjYzLi5mZmEzOWFh
NDMzZDQzNjc4MGUxM2U5YmE0ZTk4NWQ1YmExMjEyYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTQ2Myw4ICs0NjMsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJGYWN0b3J5LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNJREJJbmRleC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJJ
bmRleC5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCS2V5LmNwcCBcCi0JRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0lEQktleS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SURCS2V5UmFuZ2UuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCS2V5UmFuZ2Uu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQk9iamVjdFN0b3JlLmNwcCBcCkBAIC0x
MjI5LDcgKzEyMjcsNiBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5pZGwgXAotCSQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsIFwKIAkkKFdlYkNvcmUpL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsIFwKQEAgLTIzNjYsNyArMjM2Myw2
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
aXN0b3J5Q3VzdG9tLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3Vz
dG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJEYXRhYmFzZUN1c3Rv
bS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzYjU5MGM2N2YxNzU3MzQ3ZTViNjZjYjgxYTQzMmNlMWNhMzljMmZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCi0gICAg
Q3VzdG9tVG9KU09iamVjdCwKLSAgICBWOE5vV3JhcHBlckNhY2hlLAotICAgIEpTTm9TdGF0aWNU
YWJsZXMKLV0gaW50ZXJmYWNlIElEQktleSB7Ci0gICAgLy8gVGhpcyBzcGFjZSBpcyBpbnRlbnRp
b25hbGx5IGxlZnQgYmxhbmsuCi19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYmMzYTdmNzI1ZDU4YWI3MjA5
YjNhMTBiYzViOWM5NGVhNDBmN2Q0YS4uOWE0ODllNTFlM2Y5Mzk4MWU4MjExNDM5NmU1YmQ1ZWUz
OTlkYWQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMDYzLDggKzMwNjMsNyBAQCBlbmFibGU/KElOREVY
RURfREFUQUJBU0UpIHsKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5kaW5ncy9qcy9J
REJCaW5kaW5nVXRpbGl0aWVzLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTSURCQW55Q3Vz
dG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcAorICAgICAg
ICBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKIAogICAgIFNPVVJDRVMgKz0gXAogICAg
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1Vz
ZUpTQy5jbWFrZQppbmRleCAyZDg4NmQ3YjIwNzBlNWIyYjY0Mjk0MGY4MDQ1YjIxYjZlMjUyNGEy
Li5hNWU2OWY1NTJmMDJlZjQyZmYxOTc4ZjliMjcwZGVkZTg5ZWI5MjM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlCkBAIC0yMDQsNyArMjA0LDYgQEAgaWYgKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQogICAg
ICAgICBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAogICAgICAgICBiaW5kaW5n
cy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJEYXRhYmFz
ZUN1c3RvbS5jcHAKLSAgICAgICAgYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwCiAgICAgKQogZW5kaWYg
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvVXNlVjguY21ha2UKaW5kZXggMDEzMTE3ZDdjY2U0NDY4OWEyMjQ3YzFiMDZlZTJjYzU5OGNi
OWY3MS4uM2U3MmFjMTczMWRlMWIzZDNjNzY4MDgyYTZmNTkwMWUyNzg5MDEzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjgu
Y21ha2UKQEAgLTEyMCw3ICsxMjAsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJLZXlD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW1hZ2VEYXRhQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggYzdmYzAzMmVkYTJhN2QwYmQzY2RlYmI1M2I4MzQ1ZjRlODI3ZmIyNi4uYWMy
MzY0YzE4NzEzZDc5OWExM2UzYzVlZTk1NjZkYmViNmZkNWY3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNDYsNyArNDYsNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbCcsCi0gICAgICAg
ICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuaWRsJywKQEAgLTEzNzEsNyArMTM3MCw2IEBACiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAnLAotICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEltYWdlRGF0YUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAn
LApAQCAtNjUxMSw4ICs2NTA5LDYgQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSURCRmFjdG9yeS5oJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCSW5kZXguY3BwJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCSW5kZXguaCcs
Ci0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lE
QktleS5jcHAnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNJREJLZXkuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0lEQktleVJhbmdlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQktleVJhbmdlLmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJPYmplY3RTdG9y
ZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCBjNzk5OWFhMDU0N2UyZjAyYjUxNGJlNjcxNjcyM2Y2YzBkNWRmODZhLi5iNzk3ODk3Njhi
ZTIxZTcyMTNhZTMzZTY1ZmE3NTRiNmJiNDQwMTA3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTA0NzgsMTE0ICsxMDQ3OCw2IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJLZXkuY3Bw
IgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTSURCS2V5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSURCS2V5Q3VzdG9tLmNwcCIKLQkJCQk+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQktleVJhbmdl
LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmE3MWU0NDY2YzVkNThh
NmQwYTBmMTY4NmMxNDhiZGE0ODU0NTc5OC4uODg4NzM5NTZiNWI2MGFjZTVmYjA1YjE1MWUzYjA1
MTZjYjdiY2M4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTkwMywxNSArNTkwMywxMiBAQAogCQlDNTcyRUUxRjEyMDFDOUJD
MDA3RDhGODIgLyogSlNJREJJbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzU3MkVFMUQxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXguaCAq
LzsgfTsKIAkJQzU3RkVERTExMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3RkVERTAxMjEyRUU5
QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwICovOyB9OwogCQlDNTg1QTY1RTExRDRGQUIyMDA0
QzNFNEIgLyogSlNJREJBbnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzU4NUE2NUMxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCQW55Q3Vz
dG9tLmNwcCAqLzsgfTsKLQkJQzU4NUE2NUYxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCS2V5Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1
ODVBNjVEMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQktleUN1c3RvbS5jcHAgKi87IH07CiAJCUM1
ODVBNjYyMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1ODVBNjYwMTFENEZBQzUw
MDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCAqLzsgfTsKIAkJQzU4NUE2NjMxMUQ0
RkFDNTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1ODVBNjYxMTFENEZBQzUwMDRDM0U0QiAvKiBJ
REJCaW5kaW5nVXRpbGl0aWVzLmggKi87IH07CiAJCUM1ODVBNjdDMTFENEZCMDgwMDRDM0U0QiAv
KiBKU0lEQkFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNTg1QTY2NDExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJBbnkuY3BwICovOyB9OwogCQlD
NTg1QTY3RDExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJBbnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1ODVBNjY1MTFENEZCMDcwMDRDM0U0QiAvKiBK
U0lEQkFueS5oICovOyB9OwogCQlDNTg1QTY4MjExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJEYXRh
YmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NTg1QTY2QTExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZS5jcHAgKi87IH07CiAJCUM1
ODVBNjgzMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1QTY2QjExRDRGQjA3MDA0QzNFNEIg
LyogSlNJREJEYXRhYmFzZS5oICovOyB9OwotCQlDNTg1QTY4QTExRDRGQjA4MDA0QzNFNEIgLyog
SlNJREJLZXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzU4NUE2NzIxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5LmNwcCAqLzsgfTsKLQkJQzU4
NUE2OEIxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1QTY3MzExRDRGQjA3MDA0QzNFNEIgLyogSlNJ
REJLZXkuaCAqLzsgfTsKIAkJQzU4NUE2OEMxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCS2V5UmFu
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU4
NUE2NzQxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5UmFuZ2UuY3BwICovOyB9OwogCQlDNTg1
QTY4RDExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJLZXlSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU4NUE2NzUxMUQ0RkIwNzAwNEMzRTRCIC8q
IEpTSURCS2V5UmFuZ2UuaCAqLzsgfTsKIAkJQzU4NUE2OEUxMUQ0RkIwODAwNEMzRTRCIC8qIEpT
SURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzU4NUE2NzYxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCT2JqZWN0U3RvcmUuY3Bw
ICovOyB9OwpAQCAtMTA4NjMsNyArMTA4NjAsNiBAQAogCQk5NzEyQTU3RTE1MDA0RURBMDA0OEFG
MTAgLyogSURCSW5kZXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQkluZGV4LmlkbDsg
cGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTcxMkE1ODIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJLZXkuY3BwOyBwYXRoID0gTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcx
MkE1ODMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBJREJLZXkuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU4NDE1MDA0RURBMDA0OEFGMTAgLyog
SURCS2V5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJREJLZXkuaWRsOyBwYXRoID0gTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1ODUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCS2V5UGF0aC5jcHA7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcx
MkE1ODYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSURCS2V5UGF0aC5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4OTE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSURCS2V5UmFuZ2UuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0MjcsMTUgKzEzNDIz
LDEyIEBACiAJCUM1NzJFRTFEMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCSW5kZXguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1ODVBNjVDMTFENEZBQjIwMDRDM0U0QiAvKiBK
U0lEQkFueUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0lEQkFueUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM1ODVBNjVE
MTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQktleUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQktleUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM1ODVBNjYwMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0
aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkJpbmRpbmdV
dGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTg1QTY2MTExRDRG
QUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJCaW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM1ODVBNjY0MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkFueS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkFueS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM1ODVBNjY1MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkFueS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQkFueS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTg1QTY2QTExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRh
YmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkRhdGFi
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU4NUE2NkIxMUQ0RkIwNzAw
NEMzRTRCIC8qIEpTSURCRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNJREJEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNTg1QTY3
MjExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJLZXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNJREJLZXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlDNTg1QTY3MzExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJLZXkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNJREJLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzU4NUE2NzQxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5UmFuZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJLZXlSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1ODVBNjc1MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQktl
eVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCS2V5UmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU4NUE2NzYxMUQ0RkIwNzAwNEMzRTRC
IC8qIEpTSURCT2JqZWN0U3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNJREJPYmplY3RTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODI1Niw3ICsxODI0OSw2IEBACiAJCQkJOTcxMkE1N0UxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkluZGV4LmlkbCAqLywKIAkJCQk5NzEyQTU4MjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmNw
cCAqLywKIAkJCQk5NzEyQTU4MzE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmggKi8sCi0JCQkJ
OTcxMkE1ODQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5pZGwgKi8sCiAJCQkJOTcxMkE1ODUx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguY3BwICovLAogCQkJCTk3MTJBNTg2MTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmggKi8sCiAJCQkJOTcxMkE1ODkxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQktleVJhbmdlLmNwcCAqLywKQEAgLTE5NTM3LDggKzE5NTI5LDYgQEAKIAkJCQlD
NTg1QTY5NTExRDRGQjEzMDA0QzNFNEIgLyogSlNJREJGYWN0b3J5LmggKi8sCiAJCQkJQzU3MkVF
MUMxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXguY3BwICovLAogCQkJCUM1NzJFRTFEMTIw
MUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmggKi8sCi0JCQkJQzU4NUE2NzIxMUQ0RkIwNzAw
NEMzRTRCIC8qIEpTSURCS2V5LmNwcCAqLywKLQkJCQlDNTg1QTY3MzExRDRGQjA3MDA0QzNFNEIg
LyogSlNJREJLZXkuaCAqLywKIAkJCQlDNTg1QTY3NDExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJL
ZXlSYW5nZS5jcHAgKi8sCiAJCQkJQzU4NUE2NzUxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5
UmFuZ2UuaCAqLywKIAkJCQlDNTg1QTY3NjExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJPYmplY3RT
dG9yZS5jcHAgKi8sCkBAIC0yMDkyNCw3ICsyMDkxNCw2IEBACiAJCQkJRTFBRDEzOUQxMjk1RDk2
MTAwQUNBOTg5IC8qIEpTSFRNTFN0eWxlRWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRDZGNzk2
MEMxNjZGRkVDRTAwNzZERDE4IC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAgKi8s
CiAJCQkJQzU4NUE2NUMxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCQW55Q3VzdG9tLmNwcCAqLywK
LQkJCQlDNTg1QTY1RDExRDRGQUIyMDA0QzNFNEIgLyogSlNJREJLZXlDdXN0b20uY3BwICovLAog
CQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8s
CiAJCQkJN0EwRTc2RDQxMEJGMDUwNzAwQTAyNzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcCAqLywKIAkJCQlGMzE2Mzk2RDEzMjk0ODc2MDBBNjQ5Q0IgLyogSlNJbmplY3RlZFNj
cmlwdE1hbmFnZXIuY3BwICovLApAQCAtMjQ3MDMsNyArMjQ2OTIsNiBAQAogCQkJCUM1ODVBNjgz
MTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
NTg1QTY5NzExRDRGQjEzMDA0QzNFNEIgLyogSlNJREJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNTcyRUUxRjEyMDFDOUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQzU4NUE2OEIxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCS2V5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNTg1QTY4RDExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJLZXlSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU4NUE2OEYxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCT2JqZWN0
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1ODVBNjkxMTFENEZCMDgwMDRDM0U0QiAvKiBK
U0lEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjgwMjIsOCArMjgwMTAsNiBAQAogCQkJ
CUM1ODVBNjgyMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM1ODVBNjk2MTFENEZCMTMwMDRDM0U0QiAvKiBKU0lEQkZhY3RvcnkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzU3MkVFMUUxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXgu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzU4NUE2OEExMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURC
S2V5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM1ODVBNjVGMTFENEZBQjIwMDRDM0U0QiAvKiBK
U0lEQktleUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTg1QTY4QzExRDRGQjA4MDA0
QzNFNEIgLyogSlNJREJLZXlSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTg1QTY4RTEx
RDRGQjA4MDA0QzNFNEIgLyogSlNJREJPYmplY3RTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDNTg1QTY5MDExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0
aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0
aWVzLmNwcAppbmRleCA4MTlkOGVjYWJlYzc0ZWFmMzhhYjMyYWNlNjNlMzlkMmU0ZDQ0YTgwLi41
MjliZmU2MmY2ODhjYzVhZDUxZGU2NTE3ZmRhMDgwYmJkMmIxOGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMzMsNyAr
MzMsNiBAQAogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNp
bmNsdWRlICJJREJUcmFjaW5nLmgiCi0jaW5jbHVkZSAiSlNJREJLZXkuaCIKIAogI2luY2x1ZGUg
PHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg+CiAKQEAgLTcwLDYgKzY5LDQyIEBAIHN0YXRpYyBib29s
IHNldChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUmIG9iamVjdCwgY29uc3QgU3RyaW5nJiBrZXlQ
YXRoRWxlbWVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIElEQktleSog
a2V5KQoreworICAgIGlmICgha2V5KSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIHVuZGVm
aW5lZCwgbm90IG51bGwuCisgICAgICAgIC8vIFNwZWM6IGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9J
bmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjaWRsLWRlZi1JREJLZXlSYW5nZQor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGtleS0+
dHlwZSgpKSB7CisgICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKKyAgICAgICAgeworICAgICAg
ICAgICAgY29uc3QgSURCS2V5OjpLZXlBcnJheSYgaW5BcnJheSA9IGtleS0+YXJyYXkoKTsKKyAg
ICAgICAgICAgIHNpemVfdCBzaXplID0gaW5BcnJheS5zaXplKCk7CisgICAgICAgICAgICBKU0Fy
cmF5KiBvdXRBcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgZ2xvYmFsT2JqZWN0
LCBzaXplKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7
CisgICAgICAgICAgICAgICAgSURCS2V5KiBhcnJheUtleSA9IGluQXJyYXkuYXQoaSkuZ2V0KCk7
CisgICAgICAgICAgICAgICAgb3V0QXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBhcnJheUtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWUob3V0QXJyYXkpOworICAgICAgICB9CisgICAgY2FzZSBJREJLZXk6
OlN0cmluZ1R5cGU6CisgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBrZXkt
PnN0cmluZygpKTsKKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiBq
c0RhdGVPck51bGwoZXhlYywga2V5LT5kYXRlKCkpOworICAgIGNhc2UgSURCS2V5OjpOdW1iZXJU
eXBlOgorICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7CisgICAgY2FzZSBJ
REJLZXk6Ok1pblR5cGU6CisgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Cit9CisKIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bURlcHRoID0gMjAwMDsKIAogc3RhdGlj
IFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8SlNBcnJheSo+JiBzdGFjaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWY0MTA0YTE1MjMxOWJkZmE2MDFkMmQ1MzkxZjY2M2UwMGQ0YWRiOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2luY2x1ZGUgIkpTSURCS2V5LmgiCi0KLSNp
bmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiSURCS2V5LmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSURCS2V5
KiBrZXkpCi17Ci0gICAgaWYgKCFrZXkpIHsKLSAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgdW5k
ZWZpbmVkLCBub3QgbnVsbC4KLSAgICAgICAgLy8gU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNpZGwtZGVmLUlEQktleVJhbmdl
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHN3aXRjaCAoa2V5
LT50eXBlKCkpIHsKLSAgICBjYXNlIElEQktleTo6QXJyYXlUeXBlOgotICAgICAgICB7Ci0gICAg
ICAgICAgICBjb25zdCBJREJLZXk6OktleUFycmF5JiBpbkFycmF5ID0ga2V5LT5hcnJheSgpOwot
ICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBpbkFycmF5LnNpemUoKTsKLSAgICAgICAgICAgIEpT
QXJyYXkqIG91dEFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwLCBnbG9iYWxPYmpl
Y3QsIHNpemUpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKLSAgICAgICAgICAgICAgICBJREJLZXkqIGFycmF5S2V5ID0gaW5BcnJheS5hdChpKS5nZXQo
KTsKLSAgICAgICAgICAgICAgICBvdXRBcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIGFycmF5S2V5KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZShvdXRBcnJheSk7Ci0gICAgICAgIH0KLSAgICBjYXNlIElEQktl
eTo6U3RyaW5nVHlwZToKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGtl
eS0+c3RyaW5nKCkpOwotICAgIGNhc2UgSURCS2V5OjpEYXRlVHlwZToKLSAgICAgICAgcmV0dXJu
IGpzRGF0ZU9yTnVsbChleGVjLCBrZXktPmRhdGUoKSk7Ci0gICAgY2FzZSBJREJLZXk6Ok51bWJl
clR5cGU6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihrZXktPm51bWJlcigpKTsKLSAgICBjYXNl
IElEQktleTo6TWluVHlwZToKLSAgICBjYXNlIElEQktleTo6SW52YWxpZFR5cGU6Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAg
ICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IDkwY2RjNjBkZjU0MTNjZjNlMjgxNDAwY2NlZWMwM2VhMzI0
ZGFhOWQuLjc3NDBkNDgyMWUwOTJlYTgzMTFmNzM3MTc4OTNjMTYyNjUxNGNlOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC0zMDQ2LDcgKzMwNDYsNiBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAiRE9NT2JqZWN0IiA9
PiAiU2NyaXB0VmFsdWUiLAogICAgICJOb2RlRmlsdGVyIiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+
IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4iLAotICAgICJJREJLZXkiID0+ICJQYXNzUmVmUHRyPElEQktleT4iLAogICAgICJE
aWN0aW9uYXJ5IiA9PiAiRGljdGlvbmFyeSIsCiAgICAgImFueSIgPT4gIlNjcmlwdFZhbHVlIiwK
ICAgICAiYm9vbGVhbiIgPT4gImJvb2wiLApAQCAtMzE5NSwxMiArMzE5NCw2IEBAIHN1YiBKU1Zh
bHVlVG9OYXRpdmUKICAgICAgICAgcmV0dXJuICJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShleGVjLCAkdmFsdWUsIDAsIDApIjsKICAgICB9CiAKLSAgICBpZiAoJHR5cGUgZXEgIklEQktl
eSIpIHsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIs
ICRjb25kaXRpb25hbCk7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJREJLZXkuaCIsICRj
b25kaXRpb25hbCk7Ci0gICAgICAgIHJldHVybiAiY3JlYXRlSURCS2V5RnJvbVZhbHVlKGV4ZWMs
ICR2YWx1ZSkiOwotICAgIH0KLQogICAgIGlmICgkdHlwZSBlcSAiRGljdGlvbmFyeSIpIHsKICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkRpY3Rpb25hcnkuaCIsICRjb25kaXRpb25hbCk7CiAg
ICAgICAgIHJldHVybiAiZXhlYywgJHZhbHVlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZmY5NWNhMWM4MzBmMTYyNzdk
OGQ5ZmRmODE3MmJjOGUwOTVmYzRkYS4uYzBiMDJmNjczNTIzMWYyOTI0MDY5N2FlYzhlODJmM2E2
ZTVjNjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KQEAgLTM1NDgsNyArMzU0OCw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9u
Q2FsbFN0cmluZygpCiAKICAgICAgICAgaWYgKCRyZXBsYWNlbWVudHN7JHBhcmFtTmFtZX0pIHsK
ICAgICAgICAgICAgIHB1c2ggQGFyZ3VtZW50cywgJHJlcGxhY2VtZW50c3skcGFyYW1OYW1lfTsK
LSAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAiSURCS2V5IiB8fCAkcGFyYW1l
dGVyLT50eXBlIGVxICJOb2RlRmlsdGVyIiB8fCAkcGFyYW1ldGVyLT50eXBlIGVxICJYUGF0aE5T
UmVzb2x2ZXIiKSB7CisgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0ZXItPnR5cGUgZXEgIk5vZGVG
aWx0ZXIiIHx8ICRwYXJhbWV0ZXItPnR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAg
ICAgICAgIHB1c2ggQGFyZ3VtZW50cywgIiRwYXJhbU5hbWUuZ2V0KCkiOwogICAgICAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHBhcmFtZXRlci0+
dHlwZSkgYW5kIG5vdCAkaW50ZXJmYWNlTmFtZSA9fiAvTGlzdCQvKSB7CiAgICAgICAgICAgICBw
dXNoIEBhcmd1bWVudHMsICIkcGFyYW1OYW1lLT5wcm9wZXJ0eVJlZmVyZW5jZSgpIjsKQEAgLTM2
OTgsNyArMzY5OCw2IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJEaWN0aW9uYXJ5
IiBpZiAkdHlwZSBlcSAiRGljdGlvbmFyeSI7CiAKICAgICByZXR1cm4gIlJlZlB0cjxET01TdHJp
bmdMaXN0PiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZ0xpc3QiOwotICAgIHJldHVybiAiUmVmUHRy
PElEQktleT4iIGlmICR0eXBlIGVxICJJREJLZXkiOwogICAgIHJldHVybiAiUmVmUHRyPE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI+IiBpZiAkdHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciI7
CiAgICAgcmV0dXJuICJSZWZQdHI8Tm9kZUZpbHRlcj4iIGlmICR0eXBlIGVxICJOb2RlRmlsdGVy
IjsKICAgICByZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiBpZiAkdHlwZSBl
cSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsKQEAgLTM3NzcsMTIgKzM3NzYsNiBAQCBzdWIgSlNW
YWx1ZVRvTmF0aXZlCiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoJHZhbHVlLCAkZ2V0SXNvbGF0ZSkiOwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiSURC
S2V5IikgewotICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSURCQmluZGluZ1V0aWxpdGllcy5o
Iik7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJREJLZXkuaCIpOwotICAgICAgICByZXR1
cm4gImNyZWF0ZUlEQktleUZyb21WYWx1ZSgkdmFsdWUpIjsKLSAgICB9Ci0KICAgICBpZiAoJHR5
cGUgZXEgIkRpY3Rpb25hcnkiKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJEaWN0aW9u
YXJ5LmgiKTsKICAgICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUp
IjsKQEAgLTM5NDAsNyArMzkzMyw2IEBAIG15ICVub25fd3JhcHBlcl90eXBlcyA9ICgKICAgICAj
IEZJWE1FOiBXaGVuIEV2ZW50VGFyZ2V0IGlzIGFuIGludGVyZmFjZSBhbmQgbm90IGEgbWl4aW4s
IGZpeCB0aGlzIHNvIHRoYXQKICAgICAjIEV2ZW50VGFyZ2V0IGlzIHRyZWF0ZWQgYXMgYSB3cmFw
cGVyIHR5cGUuCiAgICAgJ0V2ZW50VGFyZ2V0JyA9PiAxLAotICAgICdJREJLZXknID0+IDEsCiAg
ICAgJ0pTT2JqZWN0JyA9PiAxLAogICAgICdNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJyA9PiAxLAog
ICAgICdOb2RlRmlsdGVyJyA9PiAxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggZDc5MjA0ZDIw
MTAwYzU0ZmMxYTFlMTZhNjRiNzVjYTk0MDRmMmY3My4uOTZjNGRhNjdlNTNmNmFjMDEyNzBhOGRj
ZDFmNzhkZDBiODRjN2JhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC0yNCwxNCArMjQsMTIg
QEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViRE9NRGljdGlvbmFyeS5oIgogI2lu
Y2x1ZGUgIldlYkRPTURvY3VtZW50LmgiCi0jaW5jbHVkZSAiV2ViRE9NSURCS2V5LmgiCiAjaW5j
bHVkZSAiV2ViRE9NTm9kZS5oIgogI2luY2x1ZGUgIldlYkRPTVNWR1BvaW50LmgiCiAjaW5jbHVk
ZSAiV2ViRE9NU3RyaW5nLmgiCkBAIC03MzQsMTQgKzczMiw2IEBAIHZvaWQgV2ViRE9NVGVzdE9i
ajo6c2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRPTVN0cmluZyYgc2VyaWFsaXplZEFyZykKICAg
ICBpbXBsKCktPnNlcmlhbGl6ZWRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZShXVEY6OlN0cmluZyhzZXJpYWxpemVkQXJnKSkpOwogfQogCi12b2lkIFdlYkRPTVRl
c3RPYmo6OmlkYktleShjb25zdCBXZWJET01JREJLZXkmIGtleSkKLXsKLSAgICBpZiAoIWltcGwo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW1wbCgpLT5pZGJLZXkodG9XZWJDb3JlKGtleSkp
OwotfQotCiB2b2lkIFdlYkRPTVRlc3RPYmo6Om9wdGlvbnNPYmplY3QoY29uc3QgV2ViRE9NRGlj
dGlvbmFyeSYgb28sIGNvbnN0IFdlYkRPTURpY3Rpb25hcnkmIG9vbykKIHsKICAgICBpZiAoIWlt
cGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9D
UFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggMzFjODM4YmQ2YjMwMzhjMjZlNjgyNGI1MTA4YWJj
MDIwNjQ5ODJiMi4uNzI5YjJkNDNmMjBlN2RjYmRjNjkzZDIyZDdlNDdiY2EyYjY2OGNjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmgKQEAgLTMzLDcgKzMzLDYgQEAgY2xhc3MgVGVzdE9iajsKIGNsYXNzIFdl
YkRPTURpY3Rpb25hcnk7CiBjbGFzcyBXZWJET01Eb2N1bWVudDsKIGNsYXNzIFdlYkRPTUV2ZW50
TGlzdGVuZXI7Ci1jbGFzcyBXZWJET01JREJLZXk7CiBjbGFzcyBXZWJET01Ob2RlOwogY2xhc3Mg
V2ViRE9NU1ZHUG9pbnQ7CiBjbGFzcyBXZWJET01TdHJpbmc7CkBAIC0xNTUsNyArMTU0LDYgQEAg
cHVibGljOgogICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcs
IGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcp
OwogICAgIFdlYkRPTVRlc3RPYmogbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhj
b25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsK
ICAgICB2b2lkIHNlcmlhbGl6ZWRWYWx1ZShjb25zdCBXZWJET01TdHJpbmcmIHNlcmlhbGl6ZWRB
cmcpOwotICAgIHZvaWQgaWRiS2V5KGNvbnN0IFdlYkRPTUlEQktleSYga2V5KTsKICAgICB2b2lk
IG9wdGlvbnNPYmplY3QoY29uc3QgV2ViRE9NRGljdGlvbmFyeSYgb28sIGNvbnN0IFdlYkRPTURp
Y3Rpb25hcnkmIG9vbyk7CiAgICAgdm9pZCBtZXRob2RXaXRoRXhjZXB0aW9uKCk7CiAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSwgY29uc3QgV2ViRE9N
RXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwCmluZGV4IDY5M2U2NTIzMjQ4NDE4ZmQzNjdmOGYwMjc2OWJiNjFk
Y2MzYTNmZjUuLmFhYWE4M2YyMWIxMjY3YThmNDY2ZjdkZTE0MzBkOWUwOTYxNGY2Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVk
ZSAiV2ViS2l0RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIldlYktpdERPTURpY3Rpb25hcnlQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0RE9NSURCS2V5UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NU1ZHUG9pbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0RE9NU2VyaWFsaXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oIgpAQCAtOTk4LDE3ICs5OTcsNiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NlcmlhbGl6ZWRfdmFsdWUoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NU2VyaWFsaXplZAogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2lkYl9rZXkoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NSURCS2V5KiBrZXkpCi17
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0lEQl9LRVkoa2V5KSk7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpJREJLZXkqIGNvbnZlcnRl
ZEtleSA9IFdlYktpdDo6Y29yZShrZXkpOwotICAgIGl0ZW0tPmlkYktleShjb252ZXJ0ZWRLZXkp
OwotfQotCi12b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29wdGlvbnNfb2JqZWN0KFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTURpY3Rpb25hcnkqIG9vLCBXZWJLaXRET01EaWN0aW9u
YXJ5KiBvb28pCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4IGFjOGQ2YzBhY2I0MGFiYjZhMWZmYzdi
YzUwNWRiNTMyOGM2OTcxZGQuLjYzZjg4ZWQ5MmQwNWFmNGJiMDY0NTM5NWMyMTdiZjc3Yjc3YmZj
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTEzOSwxNyArMTM5LDYgQEAg
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NlcmlhbGl6ZWRfdmFsdWUoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJp
YWxpemVkQXJnKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2lkYl9rZXk6Ci0gKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGtleTogQSAjV2ViS2l0RE9NSURCS2V5Ci0g
KgotICogUmV0dXJuczoKLSAqCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9pZGJfa2V5KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTUlEQktleSoga2V5
KTsKLQotLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29wdGlvbnNfb2JqZWN0OgogICogQHNl
bGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEBvbzogQSAjV2ViS2l0RE9NRGljdGlvbmFyeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCBhYWJkN2NmZTZmNTBiODkzMmNkMWE3ZDI1NmRmNWFjODE3NGViOTVjLi41
OGY4YjQ2ZGUxZjU0NjBlOTk3MGVjODBmOWY1YjBmZDA0OTIzY2Q1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGls
aXRpZXMuaCIKLSNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCkBA
IC0yNzEsNyArMjY5LDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwg
RG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5j
ZSksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpLCAoaW50cHRyX3QpMiwgTm9JbnRyaW5z
aWMgfSwKICAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LAot
ICAgIHsgImlkYktleSIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uSWRiS2V5
KSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib3B0aW9uc09iamVjdCIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3B0aW9uc09iamVjdCksIChpbnRwdHJf
dCkyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24pLCAoaW50cHRy
X3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjdXN0b21NZXRob2QiLCBEb250RGVsZXRlIHwg
SlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJp
bnNpYyB9LApAQCAtMTYwMiwyMyArMTU5OSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUoRXhlY1N0YXRlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbklkYktleShFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZv
KTsKLSAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwotICAgIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoY3JlYXRlSURCS2V5RnJvbVZhbHVlKGV4
ZWMsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+aWRiS2V5KGtleSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wdGlvbnNPYmplY3QoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCmluZGV4IDQxOGUwNTI5MmYwMzRjNTExMGY2ZmYwY2Y4NjYyZWUzYmNkNjJi
ZGIuLjlhNGI2ZGIwNDU3MjlhNmUzYThmZGVkN2Y3NWZkZmExZTNlYWQ0MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAg
LTE2Myw3ICsxNjMsNiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcgogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2UoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3NBbmRUaHJvd3MoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uSWRiS2V5KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0
KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRl
Kik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DdXN0b21NZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA2
NTE2MDBhNWZkNzk1ZmYwZWRkYzRmNGZmMDg3ZDQwZTVmMDBjNWRlLi5jZWI1YWU4ZGI5MmIxODVk
ZGFlNTEyMmNjNzk2MTJkZWQwYTM0NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC0zMCw3ICszMCw2IEBA
CiAKIEBjbGFzcyBET01EaWN0aW9uYXJ5OwogQGNsYXNzIERPTURvY3VtZW50OwotQGNsYXNzIERP
TUlEQktleTsKIEBjbGFzcyBET01Ob2RlOwogQGNsYXNzIERPTVNWR0RvY3VtZW50OwogQGNsYXNz
IERPTVNWR1BvaW50OwpAQCAtMTI1LDcgKzEyNCw2IEBAIGVudW0gewogLSAoRE9NVGVzdE9iaiAq
KW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJp
YWxpemVkQXJnOwotLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAqKWtleTsKIC0gKHZvaWQpb3B0
aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9NRGljdGlvbmFyeSAqKW9vbzsK
IC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0KaW5kZXggZWRjZGJkMzJlMGNjOTYxZjcxZDUyMmQzNzMyODlhZjU2ZTVhYmY5NS4u
N2RmYmFlODQ5NzYxNDc2ZGZjYzEyYTg1NWMwZjRiNGI5MWEwMWU3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
CkBAIC0zNSw3ICszNSw2IEBACiAjaW1wb3J0ICJET01EaWN0aW9uYXJ5SW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTURvY3VtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwu
aCIKLSNpbXBvcnQgIkRPTUlEQktleUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIkRPTVNWR0RvY3VtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNW
R1BvaW50SW50ZXJuYWwuaCIKQEAgLTU1LDcgKzU0LDYgQEAKICNpbXBvcnQgIkV2ZW50TGlzdGVu
ZXIuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMu
aCIKLSNpbXBvcnQgIklEQktleS5oIgogI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgi
CiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1wb3J0ICJOb2RlLmgiCkBAIC03NjksMTIgKzc2Nyw2IEBA
CiAgICAgSU1QTC0+c2VyaWFsaXplZFZhbHVlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKFdURjo6U3RyaW5nKHNlcmlhbGl6ZWRBcmcpKSk7CiB9CiAKLS0gKHZvaWQpaWRi
S2V5OihET01JREJLZXkgKilrZXkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgSU1QTC0+aWRiS2V5KGNvcmUoa2V5KSk7Ci19Ci0KIC0gKHZvaWQpb3B0
aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9NRGljdGlvbmFyeSAqKW9vbwog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBmODgzMTA1
ZGU4YTRlMWY2ZjZkNTUyYTZlNDM2ODBkMGM4ZmQ0NmUxLi4wMGU0NDk5NDI1MWU1MTNlOThkMzMz
ZTNhOWYyZmRkZTFiYjE3N2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC04Myw3ICs4Myw2IEBACiAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCiAgICAgdm9pZCBzZXJpYWxpemVkVmFsdWUoaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIHNlcmlhbGl6ZWRBcmcpOwotICAgIHZvaWQgaWRiS2V5KGluIElEQktleSBrZXkp
OwogICAgIHZvaWQgb3B0aW9uc09iamVjdChpbiBEaWN0aW9uYXJ5IG9vLCBpbiBbT3B0aW9uYWxd
IERpY3Rpb25hcnkgb29vKTsKIAogICAgIC8vIEV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggMWFl
ZjQwMjNlMTg1ZGYxNWE1MjFmMjg2ZmQ0MThlNzE4ZTlhMDQ3Yi4uYjFkY2YzOTcxNzNlYjIwOTEy
OTk1ZmI1OTJhZWE4ZTEwY2E0ZDkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTI5LDggKzI5LDYgQEAKICNp
bmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKLSNpbmNsdWRl
ICJJREJLZXkuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU1ZHUHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHU3RhdGljUHJvcGVydHlUZWFy
T2ZmLmgiCkBAIC0xMDQwLDE2ICsxMDM4LDYgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBzZXJpYWxpemVkVmFsdWVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAg
IHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGlkYktleUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBWOFRSWUNBVENIKFJlZlB0cjxJREJLZXk+LCBr
ZXksIGNyZWF0ZUlEQktleUZyb21WYWx1ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5pZGJLZXkoa2V5LmdldCgpKTsKLSAg
ICByZXR1cm4gdjhVbmRlZmluZWQoKTsKLX0KLQogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvcHRpb25zT2JqZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCkBAIC0xOTYzLDcgKzE5NTEsNiBAQCBzdGF0aWMgY29u
c3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQ2FsbGJhY2sgVjhUZXN0T2JqQ2FsbGJhY2tz
W10gPSB7CiAgICAgeyJvYmpNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b2JqTWV0aG9kQ2Fs
bGJhY2t9LAogICAgIHsibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFja30sCiAgICAgeyJzZXJpYWxpemVkVmFs
dWUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2VyaWFsaXplZFZhbHVlQ2FsbGJhY2t9LAotICAgIHsi
aWRiS2V5IiwgVGVzdE9ialY4SW50ZXJuYWw6OmlkYktleUNhbGxiYWNrfSwKICAgICB7Im9wdGlv
bnNPYmplY3QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3B0aW9uc09iamVjdENhbGxiYWNrfSwKICAg
ICB7Im1ldGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aEV4
Y2VwdGlvbkNhbGxiYWNrfSwKICAgICB7ImN1c3RvbU1ldGhvZCIsIFY4VGVzdE9iajo6Y3VzdG9t
TWV0aG9kQ2FsbGJhY2t9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
SURCQmluZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcAppbmRleCBjYTFjMjY5YWFjMjE2ZDgxZWRkMDI4NzM1MTYxYzYy
OTE5YzNhMDY2Li44OWRhOTY4NjcyODE3NDkzZDdjYzg5YjRlZDhlMjQ0OTk4NGY3Y2M5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cApAQCAtMzQsMTIgKzM0LDQzIEBACiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1
ZGUgIlY4SURCS2V5LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB0b1Y4KElEQktleSoga2V5LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0
aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCit7CisgICAgaWYgKCFrZXkpIHsKKyAg
ICAgICAgLy8gVGhpcyBzaG91bGQgYmUgdW5kZWZpbmVkLCBub3QgbnVsbC4KKyAgICAgICAgLy8g
U3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCNpZGwtZGVmLUlEQktleVJhbmdlCisgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgp
OworICAgIH0KKworICAgIHN3aXRjaCAoa2V5LT50eXBlKCkpIHsKKyAgICBjYXNlIElEQktleTo6
SW52YWxpZFR5cGU6CisgICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKKyAgICBjYXNlIElE
QktleTo6TnVtYmVyVHlwZToKKyAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhrZXktPm51
bWJlcigpKTsKKyAgICBjYXNlIElEQktleTo6U3RyaW5nVHlwZToKKyAgICAgICAgcmV0dXJuIHY4
U3RyaW5nKGtleS0+c3RyaW5nKCksIGlzb2xhdGUpOworICAgIGNhc2UgSURCS2V5OjpEYXRlVHlw
ZToKKyAgICAgICAgcmV0dXJuIHY4OjpEYXRlOjpOZXcoa2V5LT5kYXRlKCkpOworICAgIGNhc2Ug
SURCS2V5OjpBcnJheVR5cGU6CisgICAgICAgIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6
QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcoa2V5LT5hcnJheSgpLnNpemUoKSk7CisgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleS0+YXJyYXkoKS5zaXplKCk7ICsraSkK
KyAgICAgICAgICAgICAgICBhcnJheS0+U2V0KGksIHRvVjgoa2V5LT5hcnJheSgpW2ldLmdldCgp
LCBjcmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biB2OFVuZGVmaW5lZCgpOworfQorCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heGltdW1EZXB0aCA9
IDIwMDA7CiAKIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVl
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgVmVjdG9yPHY4OjpIYW5kbGU8djg6OkFycmF5
PiA+JiBzdGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQktleUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhJREJLZXlDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjFiYzQ1
Yzg1NWYxOTQxNzNmZWYzMDI1MzIzNmVmYzNlOGFiMDA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQktleUN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQotI2luY2x1ZGUgIlY4SURCQW55LmgiCi0KLSNpbmNsdWRlICJJ
REJCaW5kaW5nVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiSURCS2V5LmgiCi0jaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCi0KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCS2V5KiBrZXksIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKLXsKLSAg
ICBpZiAoIWtleSkgewotICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSB1bmRlZmluZWQsIG5vdCBu
dWxsLgotICAgICAgICAvLyBTcGVjOiBodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI2lkbC1kZWYtSURCS2V5UmFuZ2UKLSAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgc3dpdGNoIChrZXktPnR5cGUoKSkgewot
ICAgIGNhc2UgSURCS2V5OjpJbnZhbGlkVHlwZToKLSAgICBjYXNlIElEQktleTo6TWluVHlwZToK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiB2OFVuZGVmaW5l
ZCgpOwotICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgotICAgICAgICByZXR1cm4gdjg6Ok51
bWJlcjo6TmV3KGtleS0+bnVtYmVyKCkpOwotICAgIGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgot
ICAgICAgICByZXR1cm4gdjhTdHJpbmcoa2V5LT5zdHJpbmcoKSwgaXNvbGF0ZSk7Ci0gICAgY2Fz
ZSBJREJLZXk6OkRhdGVUeXBlOgotICAgICAgICByZXR1cm4gdjg6OkRhdGU6Ok5ldyhrZXktPmRh
dGUoKSk7Ci0gICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKLSAgICAgICAgewotICAgICAgICAg
ICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhrZXktPmFycmF5
KCkuc2l6ZSgpKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5LT5hcnJh
eSgpLnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAgIGFycmF5LT5TZXQoaSwgdG9WOChrZXkt
PmFycmF5KClbaV0uZ2V0KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSkpOwotICAgICAgICAg
ICAgcmV0dXJuIGFycmF5OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184078</attachid>
            <date>2013-01-22 16:48:03 -0800</date>
            <delta_ts>2013-01-22 17:16:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97375-20130122164457.patch</filename>
            <type>text/plain</type>
            <size>51544</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I3YmQ1YjExNDAyNWE1
MGIzYjc1MjVjN2Y0M2JmZTFiOTRkZDFkYy4uOWJjMDRhZGI4ODJhZTkwOWMyNjNhZjk2N2M0Zjhl
NWVlOTZjOGRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEzLTAxLTIyICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgSURCS2V5IGZyb20gV2ViS2l0SURMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnRhcm8gSGFy
YS4KKworICAgICAgICBOb3cgdGhhdCByZWZlcmVuY2VzIHRvIHRoZSBhcnRpZmljaWFsIElEQktl
eSB0eXBlIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gYWxsIElETHMsIHJlbW92ZQorICAgICAgICB0
aGUgc3VwcG9ydCBjb2RlLCBhbmQgbW92ZSB0aGUgY29udmVyc2lvbiBjb2RlIGludG8gdGhlIElE
QkJpbmRpbmdVdGlsaXRpZXMuIFJlbW92ZXMKKyAgICAgICAgcmVmZXJlbmNlcyB0byB0aGUgYXV0
b2dlbmVyYXRlZCB7VjgsSlN9SURCS2V5e0N1c3RvbSx9LntjcHAsaH0gZnJvbSB0aGUgcHJvamVj
dCBmaWxlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBqdXN0IGNvZGUgbW92ZXMvcmVtb3Zp
bmcgdW51c2VkIGNvZGUuIFVwZGF0ZWQgYmluZGluZyByZWZlcmVuY2UgdGVzdCByZXN1bHRzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KUyk6IE1vdmVkIGhlcmUgZnJvbSBKU0lEQktleUN1c3RvbS5jcHAKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KEpTVmFsdWVUb05hdGl2ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZyk6CisgICAgICAg
IChHZXROYXRpdmVUeXBlKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbDogUmVtb3ZlZCBJREJLZXktc3BlY2lmaWMgdGVzdC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgp
OiBNb3ZlZCBoZXJlIGZyb20gVjhJREJLZXlDdXN0b20uY3BwCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwOiBSZW1vdmVk
LgorCiAyMDEzLTAxLTIyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAK
ICAgICAgICAgW0dUS10gRGlzYWJsZSBDU1MgUmVnaW9ucyBpbiByZWxlYXNlIGJ1aWxkcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBiNjE5N2E5ODEwNTNjMWY4ZmU5NjAzZDczNzkzNjA3OTcwMzIz
NmY4Li5jZGMyODA4N2IyNWY5YjUyYjhkODg1YWQ3OGY1YzRjYmNhMGYxZWI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTkyLDcgKzE5Miw2IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCi0gICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAKaW5kZXggOWY1YmU1MDE0NGQwNTljZWQyYjJkMmY5MzE4YmNmNGNmMjUyZmYxMS4u
N2I2MTE2OGQ5MjQzMWFkZTk1M2E0NWMzODE1MzFjOThhZDhjYzM3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcApAQCAtMjI2LDcgKzIyNiw2IEBACiAjaW5jbHVkZSAiSlNJREJEYXRhYmFz
ZS5jcHAiCiAjaW5jbHVkZSAiSlNJREJGYWN0b3J5LmNwcCIKICNpbmNsdWRlICJKU0lEQkluZGV4
LmNwcCIKLSNpbmNsdWRlICJKU0lEQktleS5jcHAiCiAjaW5jbHVkZSAiSlNJREJLZXlSYW5nZS5j
cHAiCiAjaW5jbHVkZSAiSlNJREJPYmplY3RTdG9yZS5jcHAiCiAjaW5jbHVkZSAiSlNJREJSZXF1
ZXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGZjMjQ0ODk1NTQwZWJl
NjU0YmZlNzNiNGVmYzJhMjk0NTJiMjU0YjAuLjllNDA3ODUwNmZlNmY4MDQ2OWE1NWFkOTJlN2Uy
OWRmZWQyYzFiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTgsNyArOTgs
NiBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRs
IFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5wcmkKaW5kZXggMmVhZDcyMGUxZjVkMDc2OTE0ODhiMGFlNDg4ZDExMGI2OWFmMjg3Ni4uMGUw
MGM4ZjY4YjYxNDYzMzIyYmM5MTIwNDQ0ZmU2NjBlNDZiZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLnByaQpAQCAtMTIxLDcgKzEyMSw2IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQ
V0QvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXguaWRsIFwKLSAgICAkJFBXRC9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsIFwK
ICAgICAkJFBXRC9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgXAogICAgICQkUFdE
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBcCiAgICAgJCRQV0QvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggYTNmNDVhYTkyOTE0Y2VkNGJkMGUwYzBiNGRiYjQ4MzQ3M2YzNGY2My4uZmZhMzlhYTQz
M2Q0MzY3ODBlMTNlOWJhNGU5ODVkNWJhMTIxMmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC00NjMsOCArNDYzLDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCRmFjdG9yeS5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSURCSW5kZXguY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCSW5k
ZXguaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQktleS5jcHAgXAotCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNJREJLZXkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lE
QktleVJhbmdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQktleVJhbmdlLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJPYmplY3RTdG9yZS5jcHAgXApAQCAtMTIy
OSw3ICsxMjI3LDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguaWRsIFwKLQkkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwgXAogCSQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbCBcCkBAIC0yMzY2LDcgKzIzNjMsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlz
dG9yeUN1c3RvbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3Rv
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VDdXN0b20u
Y3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2I1OTBjNjdmMTc1NzM0N2U1YjY2Y2I4MWE0MzJjZTFjYTM5YzJmZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLVsKLSAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAotICAgIEN1
c3RvbVRvSlNPYmplY3QsCi0gICAgVjhOb1dyYXBwZXJDYWNoZSwKLSAgICBKU05vU3RhdGljVGFi
bGVzCi1dIGludGVyZmFjZSBJREJLZXkgewotICAgIC8vIFRoaXMgc3BhY2UgaXMgaW50ZW50aW9u
YWxseSBsZWZ0IGJsYW5rLgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGJjM2E3ZjcyNWQ1OGFiNzIwOWIz
YTEwYmM1YjljOTRlYTQwZjdkNGEuLjlhNDg5ZTUxZTNmOTM5ODFlODIxMTQzOTZlNWJkNWVlMzk5
ZGFkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzA2Myw4ICszMDYzLDcgQEAgZW5hYmxlPyhJTkRFWEVE
X0RBVEFCQVNFKSB7CiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgYmluZGluZ3MvanMvSURC
QmluZGluZ1V0aWxpdGllcy5jcHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3Rv
bS5jcHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHAKKyAgICAgICAg
YmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VK
U0MuY21ha2UKaW5kZXggMmQ4ODZkN2IyMDcwZTViMmI2NDI5NDBmODA0NWIyMWI2ZTI1MjRhMi4u
YTVlNjlmNTUyZjAyZWY0MmZmMTk3OGY5YjI3MGRlZGU4OWViOTIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFr
ZQpAQCAtMjA0LDcgKzIwNCw2IEBAIGlmIChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKICAgICAg
ICAgYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKICAgICAgICAgYmluZGluZ3Mv
anMvSlNJREJBbnlDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VD
dXN0b20uY3BwCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcAogICAgICAg
ICBiaW5kaW5ncy9qcy9KU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcAogICAgICkKIGVuZGlmICgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1VzZVY4LmNtYWtlCmluZGV4IDAxMzExN2Q3Y2NlNDQ2ODlhMjI0N2MxYjA2ZWUyY2M1OThjYjlm
NzEuLjNlNzJhYzE3MzFkZTFiM2QzYzc2ODA4MmE2ZjU5MDFlMjc4OTAxM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNt
YWtlCkBAIC0xMjAsNyArMTIwLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhJREJBbnlDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEltYWdlRGF0YUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGM3ZmMwMzJlZGEyYTdkMGJkM2NkZWJiNTNiODM0NWY0ZTgyN2ZiMjYuLmFjMjM2
NGMxODcxM2Q3OTlhMTNlM2M1ZWU5NTY2ZGJlYjZmZDVmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ2LDcgKzQ2LDYgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwnLAotICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmlkbCcsCkBAIC0xMzcxLDcgKzEzNzAsNiBAQAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwJywKLSAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhJbWFnZURhdGFDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwJywK
QEAgLTY1MTEsOCArNjUwOSw2IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0lEQkZhY3RvcnkuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQkluZGV4LmNwcCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQkluZGV4LmgnLAot
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJL
ZXkuY3BwJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSURCS2V5LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNJREJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJLZXlSYW5nZS5oJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCT2JqZWN0U3RvcmUu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggYzc5OTlhYTA1NDdlMmYwMmI1MTRiZTY3MTY3MjNmNmMwZDVkZjg2YS4uYjc5Nzg5NzY4YmUy
MWU3MjEzYWUzM2U2NWZhNzU0YjZiYjQ0MDEwNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTEwNDc4LDExNCArMTA0NzgsNiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCS2V5LmNwcCIK
LQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJ
CQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1
Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0lEQktleS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU0lEQktleUN1c3RvbS5jcHAiCi0JCQkJPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJLZXlSYW5nZS5j
cHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhNzFlNDQ2NmM1ZDU4YTZk
MGEwZjE2ODZjMTQ4YmRhNDg1NDU3OTguLjg4ODczOTU2YjViNjBhY2U1ZmIwNWIxNTFlM2IwNTE2
Y2I3YmNjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTU5MDMsMTUgKzU5MDMsMTIgQEAKIAkJQzU3MkVFMUYxMjAxQzlCQzAw
N0Q4RjgyIC8qIEpTSURCSW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM1NzJFRTFEMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmggKi87
IH07CiAJCUM1N0ZFREUxMTIxMkVFOUMwMDk3QkU2NSAvKiBGaWxlU3lzdGVtLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1N0ZFREUwMTIxMkVFOUMw
MDk3QkU2NSAvKiBGaWxlU3lzdGVtLmNwcCAqLzsgfTsKIAkJQzU4NUE2NUUxMUQ0RkFCMjAwNEMz
RTRCIC8qIEpTSURCQW55Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM1ODVBNjVDMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQkFueUN1c3Rv
bS5jcHAgKi87IH07Ci0JCUM1ODVBNjVGMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQktleUN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1
QTY1RDExRDRGQUIyMDA0QzNFNEIgLyogSlNJREJLZXlDdXN0b20uY3BwICovOyB9OwogCQlDNTg1
QTY2MjExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1QTY2MDExRDRGQUM1MDA0
QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5jcHAgKi87IH07CiAJCUM1ODVBNjYzMTFENEZB
QzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURC
QmluZGluZ1V0aWxpdGllcy5oICovOyB9OwogCQlDNTg1QTY3QzExRDRGQjA4MDA0QzNFNEIgLyog
SlNJREJBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzU4NUE2NjQxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCQW55LmNwcCAqLzsgfTsKIAkJQzU4
NUE2N0QxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCQW55LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTg1QTY2NTExRDRGQjA3MDA0QzNFNEIgLyogSlNJ
REJBbnkuaCAqLzsgfTsKIAkJQzU4NUE2ODIxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCRGF0YWJh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU4
NUE2NkExMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJhc2UuY3BwICovOyB9OwogCQlDNTg1
QTY4MzExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU4NUE2NkIxMUQ0RkIwNzAwNEMzRTRCIC8q
IEpTSURCRGF0YWJhc2UuaCAqLzsgfTsKLQkJQzU4NUE2OEExMUQ0RkIwODAwNEMzRTRCIC8qIEpT
SURCS2V5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM1ODVBNjcyMTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQktleS5jcHAgKi87IH07Ci0JCUM1ODVB
NjhCMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQktleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU4NUE2NzMxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURC
S2V5LmggKi87IH07CiAJCUM1ODVBNjhDMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQktleVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1ODVB
Njc0MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQktleVJhbmdlLmNwcCAqLzsgfTsKIAkJQzU4NUE2
OEQxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCS2V5UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1ODVBNjc1MTFENEZCMDcwMDRDM0U0QiAvKiBK
U0lEQktleVJhbmdlLmggKi87IH07CiAJCUM1ODVBNjhFMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lE
Qk9iamVjdFN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1ODVBNjc2MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQk9iamVjdFN0b3JlLmNwcCAq
LzsgfTsKQEAgLTEwODYzLDcgKzEwODYwLDYgQEAKIAkJOTcxMkE1N0UxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkluZGV4LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJREJJbmRleC5pZGw7IHBh
dGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3MTJBNTgyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCS2V5LmNwcDsgcGF0aCA9IE1vZHVsZXMv
aW5kZXhlZGRiL0lEQktleS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NTgzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSURCS2V5Lmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTcxMkE1ODQxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QktleS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSURCS2V5LmlkbDsgcGF0aCA9IE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
MTJBNTg1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQktleVBhdGguY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5UGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NTg2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IElEQktleVBhdGguaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1ODkxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQktleVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IElEQktleVJhbmdlLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJh
bmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDI3LDE1ICsxMzQyMywx
MiBAQAogCQlDNTcyRUUxRDEyMDFDOUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQkluZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM1N0ZFREUwMTIxMkVFOUMwMDk3QkU2NSAvKiBGaWxlU3lzdGVtLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW0uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTg1QTY1QzExRDRGQUIyMDA0QzNFNEIgLyogSlNJ
REJBbnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJ
REJBbnlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNTg1QTY1RDEx
RDRGQUIyMDA0QzNFNEIgLyogSlNJREJLZXlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNJREJLZXlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNTg1QTY2MDExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJCaW5kaW5nVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU4NUE2NjExMUQ0RkFD
NTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCQmluZGluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTg1QTY2NDExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJBbnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJBbnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDNTg1QTY2NTExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJBbnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJBbnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzU4NUE2NkExMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJEYXRhYmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1ODVBNjZCMTFENEZCMDcwMDRD
M0U0QiAvKiBKU0lEQkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSURCRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzU4NUE2NzIx
MUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSURCS2V5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QzU4NUE2NzMxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSURCS2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM1ODVBNjc0MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQktleVJhbmdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCS2V5UmFuZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTg1QTY3NTExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJLZXlS
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQktleVJhbmdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1ODVBNjc2MTFENEZCMDcwMDRDM0U0QiAv
KiBKU0lEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSURCT2JqZWN0U3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgyNTYsNyArMTgyNDksNiBAQAogCQkJCTk3MTJBNTdFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJ
bmRleC5pZGwgKi8sCiAJCQkJOTcxMkE1ODIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5jcHAg
Ki8sCiAJCQkJOTcxMkE1ODMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oICovLAotCQkJCTk3
MTJBNTg0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaWRsICovLAogCQkJCTk3MTJBNTg1MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmNwcCAqLywKIAkJCQk5NzEyQTU4NjE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5UGF0aC5oICovLAogCQkJCTk3MTJBNTg5MTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJLZXlSYW5nZS5jcHAgKi8sCkBAIC0xOTUzNyw4ICsxOTUyOSw2IEBACiAJCQkJQzU4
NUE2OTUxMUQ0RkIxMzAwNEMzRTRCIC8qIEpTSURCRmFjdG9yeS5oICovLAogCQkJCUM1NzJFRTFD
MTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmNwcCAqLywKIAkJCQlDNTcyRUUxRDEyMDFD
OUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5oICovLAotCQkJCUM1ODVBNjcyMTFENEZCMDcwMDRD
M0U0QiAvKiBKU0lEQktleS5jcHAgKi8sCi0JCQkJQzU4NUE2NzMxMUQ0RkIwNzAwNEMzRTRCIC8q
IEpTSURCS2V5LmggKi8sCiAJCQkJQzU4NUE2NzQxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCS2V5
UmFuZ2UuY3BwICovLAogCQkJCUM1ODVBNjc1MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQktleVJh
bmdlLmggKi8sCiAJCQkJQzU4NUE2NzYxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCT2JqZWN0U3Rv
cmUuY3BwICovLApAQCAtMjA5MjQsNyArMjA5MTQsNiBAQAogCQkJCUUxQUQxMzlEMTI5NUQ5NjEw
MEFDQTk4OSAvKiBKU0hUTUxTdHlsZUVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUQ2Rjc5NjBD
MTY2RkZFQ0UwMDc2REQxOCAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwICovLAog
CQkJCUM1ODVBNjVDMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQkFueUN1c3RvbS5jcHAgKi8sCi0J
CQkJQzU4NUE2NUQxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCS2V5Q3VzdG9tLmNwcCAqLywKIAkJ
CQlBN0QwMzE4RDBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0b20uY3BwICovLAog
CQkJCTdBMEU3NkQ0MTBCRjA1MDcwMEEwMjc2RSAvKiBKU0luamVjdGVkU2NyaXB0SG9zdEN1c3Rv
bS5jcHAgKi8sCiAJCQkJRjMxNjM5NkQxMzI5NDg3NjAwQTY0OUNCIC8qIEpTSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcCAqLywKQEAgLTI0NzAzLDcgKzI0NjkyLDYgQEAKIAkJCQlDNTg1QTY4MzEx
RDRGQjA4MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU4
NUE2OTcxMUQ0RkIxMzAwNEMzRTRCIC8qIEpTSURCRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzU3MkVFMUYxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXguaCBpbiBIZWFkZXJzICov
LAotCQkJCUM1ODVBNjhCMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQktleS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU4NUE2OEQxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCS2V5UmFuZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1ODVBNjhGMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQk9iamVjdFN0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTg1QTY5MTExRDRGQjA4MDA0QzNFNEIgLyogSlNJ
REJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDIyLDggKzI4MDEwLDYgQEAKIAkJCQlD
NTg1QTY4MjExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTg1QTY5NjExRDRGQjEzMDA0QzNFNEIgLyogSlNJREJGYWN0b3J5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1NzJFRTFFMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUM1ODVBNjhBMTFENEZCMDgwMDRDM0U0QiAvKiBKU0lEQktl
eS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNTg1QTY1RjExRDRGQUIyMDA0QzNFNEIgLyogSlNJ
REJLZXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2OEMxMUQ0RkIwODAwNEMz
RTRCIC8qIEpTSURCS2V5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2OEUxMUQ0
RkIwODAwNEMzRTRCIC8qIEpTSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzU4NUE2OTAxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5jcHAKaW5kZXggODE5ZDhlY2FiZWM3NGVhZjM4YWIzMmFjZTYzZTM5ZDJlNGQ0NGE4MC4uMjMy
YjhiMjc1Y2YzMmNmOGQ1MzM1ODUxNjRkOThiYzAwNDNhNTgyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5j
bHVkZSAiSURCVHJhY2luZy5oIgotI2luY2x1ZGUgIkpTSURCS2V5LmgiCiAKICNpbmNsdWRlIDxy
dW50aW1lL0RhdGVJbnN0YW5jZS5oPgogCkBAIC03MCw2ICs2OSw0MiBAQCBzdGF0aWMgYm9vbCBz
ZXQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlJiBvYmplY3QsIGNvbnN0IFN0cmluZyYga2V5UGF0
aEVsZW1lbnQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlIGlkYktleVRv
SlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IElEQktleSoga2V5KQoreworICAgIGlmICgha2V5KSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxk
IGJlIHVuZGVmaW5lZCwgbm90IG51bGwuCisgICAgICAgIC8vIFNwZWM6IGh0dHA6Ly9kdmNzLncz
Lm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjaWRsLWRlZi1JREJL
ZXlSYW5nZQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBzd2l0
Y2ggKGtleS0+dHlwZSgpKSB7CisgICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKKyAgICAgICAg
eworICAgICAgICAgICAgY29uc3QgSURCS2V5OjpLZXlBcnJheSYgaW5BcnJheSA9IGtleS0+YXJy
YXkoKTsKKyAgICAgICAgICAgIHNpemVfdCBzaXplID0gaW5BcnJheS5zaXplKCk7CisgICAgICAg
ICAgICBKU0FycmF5KiBvdXRBcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgZ2xv
YmFsT2JqZWN0LCBzaXplKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgSURCS2V5KiBhcnJheUtleSA9IGluQXJyYXkuYXQo
aSkuZ2V0KCk7CisgICAgICAgICAgICAgICAgb3V0QXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMs
IGksIGlkYktleVRvSlNWYWx1ZShleGVjLCBnbG9iYWxPYmplY3QsIGFycmF5S2V5KSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZShvdXRBcnJheSk7CisgICAgICAg
IH0KKyAgICBjYXNlIElEQktleTo6U3RyaW5nVHlwZToKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5n
V2l0aENhY2hlKGV4ZWMsIGtleS0+c3RyaW5nKCkpOworICAgIGNhc2UgSURCS2V5OjpEYXRlVHlw
ZToKKyAgICAgICAgcmV0dXJuIGpzRGF0ZU9yTnVsbChleGVjLCBrZXktPmRhdGUoKSk7CisgICAg
Y2FzZSBJREJLZXk6Ok51bWJlclR5cGU6CisgICAgICAgIHJldHVybiBqc051bWJlcihrZXktPm51
bWJlcigpKTsKKyAgICBjYXNlIElEQktleTo6TWluVHlwZToKKyAgICBjYXNlIElEQktleTo6SW52
YWxpZFR5cGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwogc3RhdGljIGNvbnN0IHNpemVfdCBtYXhpbXVtRGVw
dGggPSAyMDAwOwogCiBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21W
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZlY3RvcjxKU0FycmF5Kj4mIHN0
YWNrKQpAQCAtMjEwLDcgKzI0NSw3IEBAIGJvb2wgaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVl
KERPTVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlLCBQYXNzUmVmUHRyPElEQktlCiAgICAgaWYg
KHBhcmVudC5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IXNldChleGVjLCBwYXJlbnQsIGtleVBhdGhFbGVtZW50cy5sYXN0KCksIHRvSlMoZXhlYywganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwga2V5
LmdldCgpKSkpCisgICAgaWYgKCFzZXQoZXhlYywgcGFyZW50LCBrZXlQYXRoRWxlbWVudHMubGFz
dCgpLCBpZGJLZXlUb0pTVmFsdWUoZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwga2V5LmdldCgpKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjY4LDcgKzMwMyw3IEBAIFNjcmlwdFZhbHVl
IGRlc2VyaWFsaXplSURCVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIFBhc3NS
ZWZQdHI8U2VyaWFsCiBTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RT
dGF0ZSogcmVxdWVzdFN0YXRlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IHJlcXVlc3RTdGF0ZS0+ZXhlYygpOwotICAgIHJldHVybiBTY3JpcHRWYWx1
ZShleGVjLT5nbG9iYWxEYXRhKCksIHRvSlMoZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwga2V5LmdldCgpKSk7CisgICAgcmV0dXJu
IFNjcmlwdFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgaWRiS2V5VG9KU1ZhbHVlKGV4ZWMsIGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGtl
eS5nZXQoKSkpOwogfQogCiBQYXNzUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShE
T01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJLZXlDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjQxMDRhMTUyMzE5YmRmYTYwMWQyZDUzOTFm
NjYzZTAwZDRhZGI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0jaW5jbHVk
ZSAiSlNJREJLZXkuaCIKLQotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKLSNpbmNs
dWRlICJJREJLZXkuaCIKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBJREJLZXkqIGtleSkKLXsKLSAgICBpZiAoIWtleSkgewotICAgICAgICAv
LyBUaGlzIHNob3VsZCBiZSB1bmRlZmluZWQsIG5vdCBudWxsLgotICAgICAgICAvLyBTcGVjOiBo
dHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I2lkbC1kZWYtSURCS2V5UmFuZ2UKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
fQotCi0gICAgc3dpdGNoIChrZXktPnR5cGUoKSkgewotICAgIGNhc2UgSURCS2V5OjpBcnJheVR5
cGU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IElEQktleTo6S2V5QXJyYXkmIGluQXJy
YXkgPSBrZXktPmFycmF5KCk7Ci0gICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGluQXJyYXkuc2l6
ZSgpOwotICAgICAgICAgICAgSlNBcnJheSogb3V0QXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5
KGV4ZWMsIDAsIGdsb2JhbE9iamVjdCwgc2l6ZSk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgIElEQktleSogYXJyYXlLZXkg
PSBpbkFycmF5LmF0KGkpLmdldCgpOwotICAgICAgICAgICAgICAgIG91dEFycmF5LT5wdXREaXJl
Y3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXJyYXlLZXkpKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKG91dEFycmF5KTsKLSAgICAg
ICAgfQotICAgIGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgotICAgICAgICByZXR1cm4ganNTdHJp
bmdXaXRoQ2FjaGUoZXhlYywga2V5LT5zdHJpbmcoKSk7Ci0gICAgY2FzZSBJREJLZXk6OkRhdGVU
eXBlOgotICAgICAgICByZXR1cm4ganNEYXRlT3JOdWxsKGV4ZWMsIGtleS0+ZGF0ZSgpKTsKLSAg
ICBjYXNlIElEQktleTo6TnVtYmVyVHlwZToKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGtleS0+
bnVtYmVyKCkpOwotICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgotICAgIGNhc2UgSURCS2V5OjpJ
bnZhbGlkVHlwZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOTBjZGM2MGRmNTQxM2Nm
M2UyODE0MDBjY2VlYzAzZWEzMjRkYWE5ZC4uNzc0MGQ0ODIxZTA5MmVhODMxMWY3MzcxNzg5M2Mx
NjI2NTE0Y2U4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTMwNDYsNyArMzA0Niw2IEBAIG15ICVuYXRpdmVUeXBlID0g
KAogICAgICJET01PYmplY3QiID0+ICJTY3JpcHRWYWx1ZSIsCiAgICAgIk5vZGVGaWx0ZXIiID0+
ICJSZWZQdHI8Tm9kZUZpbHRlcj4iLAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiIsCi0gICAgIklEQktleSIgPT4gIlBhc3NSZWZQ
dHI8SURCS2V5PiIsCiAgICAgIkRpY3Rpb25hcnkiID0+ICJEaWN0aW9uYXJ5IiwKICAgICAiYW55
IiA9PiAiU2NyaXB0VmFsdWUiLAogICAgICJib29sZWFuIiA9PiAiYm9vbCIsCkBAIC0zMTk1LDEy
ICszMTk0LDYgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsICR2YWx1ZSwgMCwgMCkiOwogICAgIH0KIAotICAg
IGlmICgkdHlwZSBlcSAiSURCS2V5IikgewotICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSURC
QmluZGluZ1V0aWxpdGllcy5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIklEQktleS5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcmV0dXJuICJjcmVhdGVJ
REJLZXlGcm9tVmFsdWUoZXhlYywgJHZhbHVlKSI7Ci0gICAgfQotCiAgICAgaWYgKCR0eXBlIGVx
ICJEaWN0aW9uYXJ5IikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiRGljdGlvbmFyeS5o
IiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJuICJleGVjLCAkdmFsdWUiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCBmZjk1Y2ExYzgzMGYxNjI3N2Q4ZDlmZGY4MTcyYmM4ZTA5NWZjNGRhLi5jMGIwMmY2NzM1MjMx
ZjI5MjQwNjk3YWVjOGU4MmYzYTZlNWM2MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAg
c3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKIAogICAgICAgICBpZiAoJHJlcGxhY2Vt
ZW50c3skcGFyYW1OYW1lfSkgewogICAgICAgICAgICAgcHVzaCBAYXJndW1lbnRzLCAkcmVwbGFj
ZW1lbnRzeyRwYXJhbU5hbWV9OwotICAgICAgICB9IGVsc2lmICgkcGFyYW1ldGVyLT50eXBlIGVx
ICJJREJLZXkiIHx8ICRwYXJhbWV0ZXItPnR5cGUgZXEgIk5vZGVGaWx0ZXIiIHx8ICRwYXJhbWV0
ZXItPnR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKKyAgICAgICAgfSBlbHNpZiAoJHBhcmFt
ZXRlci0+dHlwZSBlcSAiTm9kZUZpbHRlciIgfHwgJHBhcmFtZXRlci0+dHlwZSBlcSAiWFBhdGhO
U1Jlc29sdmVyIikgewogICAgICAgICAgICAgcHVzaCBAYXJndW1lbnRzLCAiJHBhcmFtTmFtZS5n
ZXQoKSI7CiAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5n
VGVhck9mZigkcGFyYW1ldGVyLT50eXBlKSBhbmQgbm90ICRpbnRlcmZhY2VOYW1lID1+IC9MaXN0
JC8pIHsKICAgICAgICAgICAgIHB1c2ggQGFyZ3VtZW50cywgIiRwYXJhbU5hbWUtPnByb3BlcnR5
UmVmZXJlbmNlKCkiOwpAQCAtMzY5OCw3ICszNjk4LDYgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAg
ICByZXR1cm4gIkRpY3Rpb25hcnkiIGlmICR0eXBlIGVxICJEaWN0aW9uYXJ5IjsKIAogICAgIHJl
dHVybiAiUmVmUHRyPERPTVN0cmluZ0xpc3Q+IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nTGlzdCI7
Ci0gICAgcmV0dXJuICJSZWZQdHI8SURCS2V5PiIgaWYgJHR5cGUgZXEgIklEQktleSI7CiAgICAg
cmV0dXJuICJSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4iIGlmICR0eXBlIGVxICJNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIjsKICAgICByZXR1cm4gIlJlZlB0cjxOb2RlRmlsdGVyPiIgaWYg
JHR5cGUgZXEgIk5vZGVGaWx0ZXIiOwogICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4iIGlmICR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwpAQCAtMzc3Nywx
MiArMzc3Niw2IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgcmV0dXJuICJTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZSgkdmFsdWUsICRnZXRJc29sYXRlKSI7CiAgICAgfQogCi0g
ICAgaWYgKCR0eXBlIGVxICJJREJLZXkiKSB7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJ
REJCaW5kaW5nVXRpbGl0aWVzLmgiKTsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIklEQktl
eS5oIik7Ci0gICAgICAgIHJldHVybiAiY3JlYXRlSURCS2V5RnJvbVZhbHVlKCR2YWx1ZSkiOwot
ICAgIH0KLQogICAgIGlmICgkdHlwZSBlcSAiRGljdGlvbmFyeSIpIHsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIkRpY3Rpb25hcnkuaCIpOwogICAgICAgICByZXR1cm4gIkRpY3Rpb25hcnko
JHZhbHVlLCAkZ2V0SXNvbGF0ZSkiOwpAQCAtMzk0MCw3ICszOTMzLDYgQEAgbXkgJW5vbl93cmFw
cGVyX3R5cGVzID0gKAogICAgICMgRklYTUU6IFdoZW4gRXZlbnRUYXJnZXQgaXMgYW4gaW50ZXJm
YWNlIGFuZCBub3QgYSBtaXhpbiwgZml4IHRoaXMgc28gdGhhdAogICAgICMgRXZlbnRUYXJnZXQg
aXMgdHJlYXRlZCBhcyBhIHdyYXBwZXIgdHlwZS4KICAgICAnRXZlbnRUYXJnZXQnID0+IDEsCi0g
ICAgJ0lEQktleScgPT4gMSwKICAgICAnSlNPYmplY3QnID0+IDEsCiAgICAgJ01lZGlhUXVlcnlM
aXN0TGlzdGVuZXInID0+IDEsCiAgICAgJ05vZGVGaWx0ZXInID0+IDEsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmNwcAppbmRleCBkNzkyMDRkMjAxMDBjNTRmYzFhMWUxNmE2NGI3NWNhOTQwNGYyZjczLi45NmM0
ZGE2N2U1M2Y2YWMwMTI3MGE4ZGNkMWY3OGRkMGI4NGM3YmExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5j
cHAKQEAgLTI0LDE0ICsyNCwxMiBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIklEQktleS5o
IgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU1ZHUG9p
bnQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJE
T01EaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV2ViRE9NRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJX
ZWJET01JREJLZXkuaCIKICNpbmNsdWRlICJXZWJET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViRE9N
U1ZHUG9pbnQuaCIKICNpbmNsdWRlICJXZWJET01TdHJpbmcuaCIKQEAgLTczNCwxNCArNzMyLDYg
QEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXJpYWxpemVkVmFsdWUoY29uc3QgV2ViRE9NU3RyaW5n
JiBzZXJpYWxpemVkQXJnKQogICAgIGltcGwoKS0+c2VyaWFsaXplZFZhbHVlKFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFdURjo6U3RyaW5nKHNlcmlhbGl6ZWRBcmcpKSk7
CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6aWRiS2V5KGNvbnN0IFdlYkRPTUlEQktleSYga2V5
KQotewotICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbXBsKCktPmlk
YktleSh0b1dlYkNvcmUoa2V5KSk7Ci19Ci0KIHZvaWQgV2ViRE9NVGVzdE9iajo6b3B0aW9uc09i
amVjdChjb25zdCBXZWJET01EaWN0aW9uYXJ5JiBvbywgY29uc3QgV2ViRE9NRGljdGlvbmFyeSYg
b29vKQogewogICAgIGlmICghaW1wbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAppbmRleCAzMWM4MzhiZDZi
MzAzOGMyNmU2ODI0YjUxMDhhYmMwMjA2NDk4MmIyLi43MjliMmQ0M2YyMGU3ZGNiZGM2OTNkMjJk
N2U0N2JjYTJiNjY4Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAtMzMsNyArMzMsNiBAQCBjbGFz
cyBUZXN0T2JqOwogY2xhc3MgV2ViRE9NRGljdGlvbmFyeTsKIGNsYXNzIFdlYkRPTURvY3VtZW50
OwogY2xhc3MgV2ViRE9NRXZlbnRMaXN0ZW5lcjsKLWNsYXNzIFdlYkRPTUlEQktleTsKIGNsYXNz
IFdlYkRPTU5vZGU7CiBjbGFzcyBXZWJET01TVkdQb2ludDsKIGNsYXNzIFdlYkRPTVN0cmluZzsK
QEAgLTE1NSw3ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RX
aXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdl
YkRPTVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJE
T01UZXN0T2JqJiBvYmpBcmcpOwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRP
TVN0cmluZyYgc2VyaWFsaXplZEFyZyk7Ci0gICAgdm9pZCBpZGJLZXkoY29uc3QgV2ViRE9NSURC
S2V5JiBrZXkpOwogICAgIHZvaWQgb3B0aW9uc09iamVjdChjb25zdCBXZWJET01EaWN0aW9uYXJ5
JiBvbywgY29uc3QgV2ViRE9NRGljdGlvbmFyeSYgb29vKTsKICAgICB2b2lkIG1ldGhvZFdpdGhF
eGNlcHRpb24oKTsKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgV2ViRE9NU3RyaW5n
JiB0eXBlLCBjb25zdCBXZWJET01FdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0
dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggNjkzZTY1MjMyNDg0
MThmZDM2N2Y4ZjAyNzY5YmI2MWRjYzNhM2ZmNS4uYWFhYTgzZjIxYjEyNjdhOGY0NjZmN2RlMTQz
MGQ5ZTA5NjE0ZjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTI4
LDcgKzI4LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0RE9NRGljdGlvbmFyeVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFBy
aXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01JREJLZXlQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01TVkdQb2ludFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01TZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmgi
CkBAIC05OTgsMTcgKzk5Nyw2IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2VyaWFsaXplZF92YWx1
ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01TZXJpYWxpemVkCiB9CiAKIHZvaWQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfaWRiX2tleShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJL
aXRET01JREJLZXkqIGtleSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNlbGYp
KTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfSURCX0tFWShrZXkpKTsKLSAg
ICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNv
cmU6OklEQktleSogY29udmVydGVkS2V5ID0gV2ViS2l0Ojpjb3JlKGtleSk7Ci0gICAgaXRlbS0+
aWRiS2V5KGNvbnZlcnRlZEtleSk7Ci19Ci0KLXZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfb3B0
aW9uc19vYmplY3QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NRGljdGlvbmFyeSog
b28sIFdlYktpdERPTURpY3Rpb25hcnkqIG9vbykKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXggYWM4
ZDZjMGFjYjQwYWJiNmExZmZjN2JjNTA1ZGI1MzI4YzY5NzFkZC4uNjNmODhlZDkyZDA1YWY0YmIw
NjQ1Mzk1YzIxN2JmNzdiNzdiZmM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApA
QCAtMTM5LDE3ICsxMzksNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2VyaWFsaXplZF92YWx1ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01TZXJpYWxp
emVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRBcmcpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVz
dF9vYmpfaWRiX2tleToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAa2V5OiBB
ICNXZWJLaXRET01JREJLZXkKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2lkYl9rZXkoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NSURCS2V5KiBrZXkpOwotCi0vKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb3B0
aW9uc19vYmplY3Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQG9vOiBBICNX
ZWJLaXRET01EaWN0aW9uYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGFhYmQ3Y2ZlNmY1MGI4OTMyY2QxYTdk
MjU2ZGY1YWM4MTc0ZWI5NWMuLjU4ZjhiNDZkZTFmNTQ2MGU5OTcwZWM4MGY5ZjViMGZkMDQ5MjNj
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5j
bHVkZSAiSURCQmluZGluZ1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1
ZGUgIkpTRG9jdW1lbnQuaCIKQEAgLTI3MSw3ICsyNjksNiBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAibWV0aG9k
UmV0dXJuaW5nU2VxdWVuY2UiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFJldHVybmluZ1NlcXVlbmNlKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAg
eyAibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIsIERvbnREZWxldGUgfCBKU0M6
OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyksIChp
bnRwdHJfdCkyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInNlcmlhbGl6ZWRWYWx1ZSIsIERvbnRE
ZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKSwgKGludHB0cl90
KTEsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiaWRiS2V5IiwgRG9udERlbGV0ZSB8IEpTQzo6RnVu
Y3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25JZGJLZXkpLCAoaW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJvcHRpb25zT2JqZWN0IiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRp
b25zT2JqZWN0KSwgKGludHB0cl90KTIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0
aEV4Y2VwdGlvbiIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImN1c3RvbU1l
dGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKSwg
KGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCkBAIC0xNjAyLDIzICsxNTk5LDYgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6
ZWRWYWx1ZShFeGVjU3RhdGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uSWRiS2V5KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmpl
Y3QodGhpc1ZhbHVlKSk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCAmSlNUZXN0T2JqOjpzX2luZm8pOwotICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleShjcmVh
dGVJREJLZXlGcm9tVmFsdWUoZXhlYywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5p
ZGJLZXkoa2V5KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
fQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3B0aW9uc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggNDE4ZTA1MjkyZjAzNGM1MTEw
ZjZmZjBjZjg2NjJlZTNiY2Q2MmJkYi4uOWE0YjZkYjA0NTcyOWE2ZTNhOGZkZWQ3Zjc1ZmRmYTFl
M2VhZDQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtMTYzLDcgKzE2Myw2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5j
ZUFyCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2Vy
aWFsaXplZFZhbHVlKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JZGJLZXkoSlNDOjpFeGVjU3RhdGUq
KTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9wdGlvbnNPYmplY3QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNl
cHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZChKU0M6OkV4ZWNTdGF0ZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oCmluZGV4IDY1MTYwMGE1ZmQ3OTVmZjBlZGRjNGY0ZmYwODdkNDBlNWYwMGM1
ZGUuLmNlYjVhZThkYjkyYjE4NWRkYWU1MTIyY2M3OTYxMmRlZDBhMzQ3M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKQEAgLTMwLDcgKzMwLDYgQEAKIAogQGNsYXNzIERPTURpY3Rpb25hcnk7CiBAY2xhc3MgRE9N
RG9jdW1lbnQ7Ci1AY2xhc3MgRE9NSURCS2V5OwogQGNsYXNzIERPTU5vZGU7CiBAY2xhc3MgRE9N
U1ZHRG9jdW1lbnQ7CiBAY2xhc3MgRE9NU1ZHUG9pbnQ7CkBAIC0xMjUsNyArMTI0LDYgQEAgZW51
bSB7CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAoRE9N
VGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3M6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpc2VyaWFsaXplZFZh
bHVlOihOU1N0cmluZyAqKXNlcmlhbGl6ZWRBcmc7Ci0tICh2b2lkKWlkYktleTooRE9NSURCS2V5
ICopa2V5OwogLSAodm9pZClvcHRpb25zT2JqZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihE
T01EaWN0aW9uYXJ5ICopb29vOwogLSAodm9pZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9p
ZCljdXN0b21NZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCBlZGNkYmQzMmUwY2M5NjFmNzFkNTIy
ZDM3MzI4OWFmNTZlNWFiZjk1Li43ZGZiYWU4NDk3NjE0NzZkZmNjMTJhODU1YzBmNGI0YjkxYTAx
ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgIkRPTURpY3Rp
b25hcnlJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NRG9jdW1lbnRJbnRlcm5hbC5oIgogI2ltcG9y
dCAiRE9NRXZlbnRJbnRlcm5hbC5oIgotI2ltcG9ydCAiRE9NSURCS2V5SW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHRG9jdW1lbnRJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NU1ZHUG9pbnRJbnRlcm5hbC5oIgpAQCAtNTUsNyArNTQsNiBAQAog
I2ltcG9ydCAiRXZlbnRMaXN0ZW5lci5oIgogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIK
ICNpbXBvcnQgIkhUTUxOYW1lcy5oIgotI2ltcG9ydCAiSURCS2V5LmgiCiAjaW1wb3J0ICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQgIktVUkwuaCIKICNpbXBvcnQgIk5vZGUuaCIK
QEAgLTc2OSwxMiArNzY3LDYgQEAKICAgICBJTVBMLT5zZXJpYWxpemVkVmFsdWUoV2ViQ29yZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoV1RGOjpTdHJpbmcoc2VyaWFsaXplZEFyZykp
KTsKIH0KIAotLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAqKWtleQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5pZGJLZXkoY29yZShrZXkp
KTsKLX0KLQogLSAodm9pZClvcHRpb25zT2JqZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihE
T01EaWN0aW9uYXJ5ICopb29vCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCmluZGV4IGY4ODMxMDVkZThhNGUxZjZmNmQ1NTJhNmU0MzY4MGQwYzhmZDQ2ZTEuLjAw
ZTQ0OTk0MjUxZTUxM2U5OGQzMzNlM2E5ZjJmZGRlMWJiMTc3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTgzLDcgKzgzLDYg
QEAKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICB2b2lkIHNlcmlhbGl6ZWRW
YWx1ZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc2VyaWFsaXplZEFyZyk7Ci0gICAgdm9pZCBp
ZGJLZXkoaW4gSURCS2V5IGtleSk7CiAgICAgdm9pZCBvcHRpb25zT2JqZWN0KGluIERpY3Rpb25h
cnkgb28sIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvb28pOwogCiAgICAgLy8gRXhjZXB0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAppbmRleCAxYWVmNDAyM2UxODVkZjE1YTUyMWYyODZmZDQxOGU3MThlOWEwNDdi
Li5iMWRjZjM5NzE3M2ViMjA5MTI5OTVmYjU5MmFlYThlMTBjYTRkOTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApA
QCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSURCQmluZGluZ1V0
aWxpdGllcy5oIgotI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJT
VkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCIKQEAgLTEwNDAsMTYgKzEwMzgsNiBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZUNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaWRiS2V5Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKLXsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFY4VFJZQ0FU
Q0goUmVmUHRyPElEQktleT4sIGtleSwgY3JlYXRlSURCS2V5RnJvbVZhbHVlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmlk
YktleShrZXkuZ2V0KCkpOwotICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwotfQotCiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG9wdGlvbnNPYmplY3RDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKQEAgLTE5NjMsNyAr
MTk1MSw2IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRDYWxsYmFj
ayBWOFRlc3RPYmpDYWxsYmFja3NbXSA9IHsKICAgICB7Im9iak1ldGhvZCIsIFRlc3RPYmpWOElu
dGVybmFsOjpvYmpNZXRob2RDYWxsYmFja30sCiAgICAgeyJtZXRob2RSZXR1cm5pbmdTZXF1ZW5j
ZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNrfSwK
ICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFs
dWVDYWxsYmFja30sCi0gICAgeyJpZGJLZXkiLCBUZXN0T2JqVjhJbnRlcm5hbDo6aWRiS2V5Q2Fs
bGJhY2t9LAogICAgIHsib3B0aW9uc09iamVjdCIsIFRlc3RPYmpWOEludGVybmFsOjpvcHRpb25z
T2JqZWN0Q2FsbGJhY2t9LAogICAgIHsibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIFRlc3RPYmpWOElu
dGVybmFsOjptZXRob2RXaXRoRXhjZXB0aW9uQ2FsbGJhY2t9LAogICAgIHsiY3VzdG9tTWV0aG9k
IiwgVjhUZXN0T2JqOjpjdXN0b21NZXRob2RDYWxsYmFja30sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IGNhMWMyNjlhYWMy
MTZkODFlZGQwMjg3MzUxNjFjNjI5MTljM2EwNjYuLmNmMWEzOGY0ODllNzMzNWJiMjZiZDYwNzI2
YjZlNWQyM2MzOGY1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0zNCwxMiArMzQsNDMgQEAKICNpbmNsdWRlICJJREJU
cmFjaW5nLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhJREJLZXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGlkYktleVRvVjhWYWx1ZShJREJLZXkqIGtl
eSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBp
c29sYXRlKQoreworICAgIGlmICgha2V5KSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIHVu
ZGVmaW5lZCwgbm90IG51bGwuCisgICAgICAgIC8vIFNwZWM6IGh0dHA6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjaWRsLWRlZi1JREJLZXlSYW5n
ZQorICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGtl
eS0+dHlwZSgpKSB7CisgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgorICAgIGNhc2UgSURC
S2V5OjpNaW5UeXBlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CisgICAgY2FzZSBJREJLZXk6Ok51bWJlclR5cGU6CisgICAgICAg
IHJldHVybiB2ODo6TnVtYmVyOjpOZXcoa2V5LT5udW1iZXIoKSk7CisgICAgY2FzZSBJREJLZXk6
OlN0cmluZ1R5cGU6CisgICAgICAgIHJldHVybiB2OFN0cmluZyhrZXktPnN0cmluZygpLCBpc29s
YXRlKTsKKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiB2ODo6RGF0
ZTo6TmV3KGtleS0+ZGF0ZSgpKTsKKyAgICBjYXNlIElEQktleTo6QXJyYXlUeXBlOgorICAgICAg
ICB7CisgICAgICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheSA9IHY4OjpBcnJheTo6
TmV3KGtleS0+YXJyYXkoKS5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBrZXktPmFycmF5KCkuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICAgICAgYXJyYXktPlNl
dChpLCBpZGJLZXlUb1Y4VmFsdWUoa2V5LT5hcnJheSgpW2ldLmdldCgpLCBjcmVhdGlvbkNvbnRl
eHQsIGlzb2xhdGUpKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgp
OworfQorCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heGltdW1EZXB0aCA9IDIwMDA7CiAKIHN0YXRp
YyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSwgVmVjdG9yPHY4OjpIYW5kbGU8djg6OkFycmF5PiA+JiBzdGFjaykKQEAg
LTI0Miw3ICsyNzMsNyBAQCBib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShET01SZXF1
ZXN0U3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LAogICAgIGlmIChwYXJlbnQu
SXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIXNldChwYXJlbnQs
IGtleVBhdGhFbGVtZW50cy5sYXN0KCksIHRvVjgoa2V5LmdldCgpLCB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+KCksIHN0YXRlLT5jb250ZXh0KCktPkdldElzb2xhdGUoKSkpKQorICAgIGlmICghc2V0
KHBhcmVudCwga2V5UGF0aEVsZW1lbnRzLmxhc3QoKSwgaWRiS2V5VG9WOFZhbHVlKGtleS5nZXQo
KSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpLCBzdGF0ZS0+Y29udGV4dCgpLT5HZXRJc29sYXRl
KCkpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjgs
NyArMjk5LDcgQEAgU2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRWYWx1ZShET01SZXF1ZXN0U3Rh
dGUqIHN0YXRlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewogICAgIEFTU0VSVCh2ODo6Q29u
dGV4dDo6SW5Db250ZXh0KCkpOwogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhWYWx1ZSh0b1Y4KGtleS5nZXQoKSwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PigpLCBzdGF0ZS0+Y29udGV4dCgpLT5HZXRJc29sYXRlKCkpKTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhWYWx1ZShpZGJLZXlUb1Y4VmFsdWUoa2V5LmdldCgpLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCksIHN0YXRlLT5jb250ZXh0KCktPkdldElzb2xhdGUoKSkp
OwogICAgIHJldHVybiBTY3JpcHRWYWx1ZSh2OFZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2MWJjNDVjODU1ZjE5NDE3M2ZlZjMwMjUzMjM2ZWZjM2U4
YWIwMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3VzdG9tLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0jaW5jbHVk
ZSAiVjhJREJBbnkuaCIKLQotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKLSNpbmNs
dWRlICJJREJLZXkuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLQotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChJREJLZXkqIGtleSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQs
IHY4OjpJc29sYXRlKiBpc29sYXRlKQotewotICAgIGlmICgha2V5KSB7Ci0gICAgICAgIC8vIFRo
aXMgc2hvdWxkIGJlIHVuZGVmaW5lZCwgbm90IG51bGwuCi0gICAgICAgIC8vIFNwZWM6IGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjaWRs
LWRlZi1JREJLZXlSYW5nZQotICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKLSAgICB9Ci0K
LSAgICBzd2l0Y2ggKGtleS0+dHlwZSgpKSB7Ci0gICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBl
OgotICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7Ci0gICAgY2FzZSBJREJLZXk6Ok51bWJl
clR5cGU6Ci0gICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoa2V5LT5udW1iZXIoKSk7Ci0g
ICAgY2FzZSBJREJLZXk6OlN0cmluZ1R5cGU6Ci0gICAgICAgIHJldHVybiB2OFN0cmluZyhrZXkt
PnN0cmluZygpLCBpc29sYXRlKTsKLSAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6Ci0gICAgICAg
IHJldHVybiB2ODo6RGF0ZTo6TmV3KGtleS0+ZGF0ZSgpKTsKLSAgICBjYXNlIElEQktleTo6QXJy
YXlUeXBlOgotICAgICAgICB7Ci0gICAgICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJh
eSA9IHY4OjpBcnJheTo6TmV3KGtleS0+YXJyYXkoKS5zaXplKCkpOwotICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBrZXktPmFycmF5KCkuc2l6ZSgpOyArK2kpCi0gICAgICAgICAg
ICAgICAgYXJyYXktPlNldChpLCB0b1Y4KGtleS0+YXJyYXkoKVtpXS5nZXQoKSwgY3JlYXRpb25D
b250ZXh0LCBpc29sYXRlKSk7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gdjhVbmRlZmlu
ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>