<?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>141735</bug_id>
          
          <creation_ts>2015-02-17 18:49:38 -0800</creation_ts>
          <short_desc>Prepare to use WEBCORE_EXPORT on Windows</short_desc>
          <delta_ts>2015-02-19 09:17:27 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141734</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>burg</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1070002</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 18:49:38 -0800</bug_when>
    <thetext>Windows needs a few changes to use WEBCORE_EXPORT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070007</commentid>
    <comment_count>1</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 19:00:45 -0800</bug_when>
    <thetext>Note: check the bindings tests before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070008</commentid>
    <comment_count>2</comment_count>
      <attachid>246784</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 19:02:37 -0800</bug_when>
    <thetext>Created attachment 246784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070023</commentid>
    <comment_count>3</comment_count>
      <attachid>246792</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 19:45:02 -0800</bug_when>
    <thetext>Created attachment 246792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070043</commentid>
    <comment_count>4</comment_count>
      <attachid>246799</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 21:33:48 -0800</bug_when>
    <thetext>Created attachment 246799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070044</commentid>
    <comment_count>5</comment_count>
      <attachid>246800</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-17 21:37:49 -0800</bug_when>
    <thetext>Created attachment 246800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070051</commentid>
    <comment_count>6</comment_count>
      <attachid>246800</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-17 22:50:45 -0800</bug_when>
    <thetext>Comment on attachment 246800
Patch

This patch seems fine, but may tend to expose more symbols than strictly necessary since we are now marking the entire class for export, rather than just specific functions.

The maintenance benefit from this approach probably far outweighs any negatives, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070206</commentid>
    <comment_count>7</comment_count>
      <attachid>246800</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-18 13:33:07 -0800</bug_when>
    <thetext>Comment on attachment 246800
Patch

Rejecting attachment 246800 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 246800, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
WebCore/platform/network/BlobDataFileReference.h
patching file Source/WebCore/platform/network/BlobRegistry.h
patching file Source/WebCore/platform/network/BlobRegistryImpl.h
patching file Source/WebCore/platform/sql/SQLiteDatabase.h
patching file Source/WebCore/rendering/ScrollBehavior.h
patching file Source/WebCore/rendering/break_lines.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Brent Fulgham&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/4612572569403392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070208</commentid>
    <comment_count>8</comment_count>
      <attachid>246842</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-18 13:37:31 -0800</bug_when>
    <thetext>Created attachment 246842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070209</commentid>
    <comment_count>9</comment_count>
      <attachid>246842</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-18 13:41:24 -0800</bug_when>
    <thetext>Comment on attachment 246842
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070234</commentid>
    <comment_count>10</comment_count>
      <attachid>246842</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-18 14:39:15 -0800</bug_when>
    <thetext>Comment on attachment 246842
Patch

Clearing flags on attachment: 246842

Committed r180301: &lt;http://trac.webkit.org/changeset/180301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070235</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-18 14:39:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246784</attachid>
            <date>2015-02-17 19:02:37 -0800</date>
            <delta_ts>2015-02-17 19:44:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141735-20150217190233.patch</filename>
            <type>text/plain</type>
            <size>30847</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDI0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTAyLTE3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJlcGFyZSB0
byB1c2UgV0VCQ09SRV9FWFBPUlQgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorICAg
ICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAgICAocHJpbnROYW1lc0hlYWRlckZpbGUp
OgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisgICAgICAgICogbG9hZGVyL2ljb24v
SWNvbkRhdGFiYXNlLmg6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5o
OgorICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L1BhZ2VPdmVybGF5Lmg6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6CisgICAg
ICAgICogcGxhdGZvcm0vVVJMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5oOgorICAgICAgICBBZGRlZCBhbmQgbW92
ZWQgV0VCQ09SRV9FWFBPUlQgbWFjcm9zLgorCiAyMDE1LTAyLTE3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2xpZ2h0IENhY2hlZFBhZ2UgY2xhc3MgY2xlYW4g
dXAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCShyZXZp
c2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBHQ0NvbnRyb2xsZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShH
Q0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgZnJpZW5kIEdD
Q29udHJvbGxlciYgZ2NDb250cm9sbGVyKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVu
ZCBHQ0NvbnRyb2xsZXImIGdjQ29udHJvbGxlcigpOwogCiAgICAgcHVibGljOgogICAgICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGdhcmJhZ2VDb2xsZWN0U29vbigpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxODAy
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0
eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxK
U0M6OlN0cnVjdHVyZT4+IEpTRE9NU3RydWN0dXJlTWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxj
b25zdCBKU0M6OkNsYXNzSW5mbyosIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNPYmplY3Q+PiBK
U0RPTUNvbnN0cnVjdG9yTWFwOwogCi0gICAgY2xhc3MgSlNET01HbG9iYWxPYmplY3QgOiBwdWJs
aWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIHR5cGVk
ZWYgSlNDOjpKU0dsb2JhbE9iamVjdCBCYXNlOwogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3Ry
dWN0IEpTRE9NR2xvYmFsT2JqZWN0RGF0YTsKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcygpIHsgcmV0dXJu
IG1fc3RydWN0dXJlczsgfQogICAgICAgICBKU0RPTUNvbnN0cnVjdG9yTWFwJiBjb25zdHJ1Y3Rv
cnMoKSB7IHJldHVybiBtX2NvbnN0cnVjdG9yczsgfQogCi0gICAgICAgIFdFQkNPUkVfRVhQT1JU
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
KyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0OwogCiAgICAgICAgIC8vIE1ha2UgYmluZGluZyBjb2RlIGdlbmVyYXRpb24gZWFzaWVy
LgogICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gdGhp
czsgfQpAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
d29ybGRJc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ybGRJc05vcm1hbDsgfQogCiAgICAg
cHJvdGVjdGVkOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOworICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZv
OwogCiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8qIGlu
Zm8oKSB7IHJldHVybiAmc19pbmZvOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTgwMjQ2KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTgwMSw3ICs4MDEsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBBZGRD
bGFzc0ZvcndhcmRJZk5lZWRlZCgiSlNEaWN0aW9uYXJ5IikgaWYgJGNvZGVHZW5lcmF0b3ItPklz
Q29uc3RydWN0b3JUZW1wbGF0ZSgkaW50ZXJmYWNlLCAiRXZlbnQiKTsKIAogICAgICMgQ2xhc3Mg
ZGVjbGFyYXRpb24KLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJGNsYXNzTmFtZSA6
IHB1YmxpYyAkcGFyZW50Q2xhc3NOYW1lIHtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJjbGFzcyBXRUJDT1JFX0VYUE9SVCAkY2xhc3NOYW1lIDogcHVibGljICRwYXJlbnRDbGFzc05h
bWUge1xuIik7CiAKICAgICAjIFN0YXRpYyBjcmVhdGUgbWV0aG9kcwogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKQEAgLTg1OCw3ICs4NTgsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3Qi
KSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IHRvV3JhcHBlZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljICRpbXBsVHlwZSogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljICRpbXBsVHlwZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7XG4iKTsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtOTE1LDcgKzkxNSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IlxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90ZWN0ZWQ6XG4iKTsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBpbmZvKCkgeyByZXR1
cm4gJnNfaW5mbzsgfVxuXG4iKTsKICAgICB9IGVsc2UgewpAQCAtMTkzNiw5ICsxOTM2LDkgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcJWNvbmRpdGlvbmFscywgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpOwogCiAgICAgaWYgKCRq
dXN0R2VuZXJhdGVWYWx1ZUFycmF5KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiV0VC
Q09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZv
ID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9
UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5cGVc
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2NsYXNzTmFtZX1Qcm90
b3R5cGUpIH07XG5cbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6
c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpz
X2luZm8sICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRSgk
e2NsYXNzTmFtZX1Qcm90b3R5cGUpIH07XG5cbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIk
e3Zpc2libGVJbnRlcmZhY2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtjbGFz
c05hbWV9UHJvdG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJv
dG90eXBlKSB9O1xuXG4iKTsKICAgICB9CiAKICAgICBpZiAoUHJvdG90eXBlT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90KCRpbnRlcmZhY2UpKSB7CkBAIC0xOTk5LDcgKzE5OTksNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgICMgLSBJbml0aWFsaXplIHN0YXRp
YyBDbGFzc0luZm8gb2JqZWN0Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJXRUJDT1JFX0VYUE9S
VCBjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxl
SW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CisgICAgcHVzaChAaW1wbENvbnRl
bnQsICJjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2aXNp
YmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CiAKICAgICBpZiAoJG51bUlu
c3RhbmNlQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICImJHtj
bGFzc05hbWV9VGFibGUiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotY2xhc3MgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKQEAgLTU4
LDEyICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdz
OjpNZXRob2QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
Y29uc3QgU3RyaW5nJik7CisgICAgUnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIEJpbmRpbmdzOjpNZXRob2QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0
dXJlRmxhZ3M7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCos
IEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6CiAg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBA
CiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKLWNsYXNzIFJ1bnRpbWVP
YmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgeworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwogCkBAIC00MywxNiArNDMs
MTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CisgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0NlbGwqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSlNWYWx1ZSBk
ZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKKyAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0
YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSk7CisgICAgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CisgICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CisgICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApA
QCAtNzMsOCArNzMsOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgUnVudGltZU9iamVjdChWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8SW5zdGFu
Y2U+KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CisgICAg
UnVudGltZU9iamVjdChWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL21ha2VfbmFtZXMucGwJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAg
aWYgKGxlbmd0aCgkZm9udE5hbWVzSW4pKSB7CiAgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6Okdl
bmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOwogCiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtl
eXMgJXBhcmFtZXRlcnMpIHsKLSAgICAgICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgREVGSU5F
X0dMT0JBTChBdG9taWNTdHJpbmcsICRuYW1lKVxuIjsKKyAgICAgICAgcHJpbnQgRiAiREVGSU5F
X0dMT0JBTChBdG9taWNTdHJpbmcsICRuYW1lKVxuIjsKICAgICB9CiAKICAgICBwcmludEluaXQo
JEYsIDApOwpAQCAtNzE2LDE2ICs3MTYsMTYgQEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAg
ICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFj
ZVByZWZpeH0pOwogCiAgICAgcHJpbnQgRiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYg
ImV4dGVybiBjb25zdCBXVEY6OkF0b21pY1N0cmluZyAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZp
eH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJu
IGNvbnN0IFdURjo6QXRvbWljU3RyaW5nICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVz
cGFjZVVSSTtcblxuIjsKIAogICAgIGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIHByaW50
IEYgIi8vIFRhZ3NcbiI7Ci0gICAgICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIGNvbnN0IFdl
YkNvcmU6OiRwYXJhbWV0ZXJze25hbWVzcGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIsIFwlYWxs
VGFncyk7CisgICAgICAgIHByaW50TWFjcm9zKCRGLCAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNv
bnN0IFdlYkNvcmU6OiRwYXJhbWV0ZXJze25hbWVzcGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIs
IFwlYWxsVGFncyk7CiAgICAgfQogCiAgICAgaWYgKGtleXMgJWFsbEF0dHJzKSB7CiAgICAgICAg
IHByaW50IEYgIi8vIEF0dHJpYnV0ZXNcbiI7Ci0gICAgICAgIHByaW50TWFjcm9zKCRGLCAiZXh0
ZXJuIGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUiLCAiQXR0ciIsIFwlYWxsQXR0cnMpOwor
ICAgICAgICBwcmludE1hY3JvcygkRiwgIldFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBXZWJD
b3JlOjpRdWFsaWZpZWROYW1lIiwgIkF0dHIiLCBcJWFsbEF0dHJzKTsKICAgICB9CiAgICAgcHJp
bnQgRiAiI2VuZGlmXG5cbiI7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9y
eUl0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVt
LmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBlbnVtIGNsYXNzIFBydW5pbmdS
ZWFzb247CiAKIHR5cGVkZWYgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+IEhpc3RvcnlJdGVtVmVj
dG9yOwogCi1leHRlcm4gdm9pZCAoKm5vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCkoSGlzdG9yeUl0
ZW0qKTsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFu
Z2VkKShIaXN0b3J5SXRlbSopOwogCiBjbGFzcyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEhpc3RvcnlJdGVtPiB7CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAyLDcgKzQw
Miw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcXVpY2tSZWRpcmVjdENvbWluZzsKICAgICBi
b29sIG1fc2VudFJlZGlyZWN0Tm90aWZpY2F0aW9uOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
bV9pblN0b3BBbGxMb2FkZXJzOworICAgIGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOwogCiAgICAg
U3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJlcjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclN0cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0xv
YWRlclN0cmF0ZWd5LmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMSArNDAsMTEgQEAgY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9hZGVyU3RyYXRl
Z3kgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVzb3VyY2VMb2FkU2No
ZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKKyAgICB2aXJ0dWFsIFJlc291cmNlTG9h
ZFNjaGVkdWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3Rv
cmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3ImLCBS
ZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMs
IENsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgQmxv
YlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKKyAgICB2aXJ0dWFsIEJsb2JSZWdpc3Ry
eSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2Fk
ZXJTdHJhdGVneSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFNjaGVkdWxlci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAg
Y2xhc3MgU3VicmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNlTG9hZFNjaGVkdWxlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCBQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVs
ZVN1YnJlc291cmNlTG9hZChGcmFtZSosIENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBzY2hlZHVs
ZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUqLCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVu
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4
LDcgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPEljb25SZWNvcmQ+IGdldE9yQ3JlYXRlSWNv
blJlY29yZChjb25zdCBTdHJpbmcmIGljb25VUkwpOwogICAgIFBhZ2VVUkxSZWNvcmQqIGdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogICAgIAotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgbV9pc0VuYWJsZWQ7CisgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAg
ICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKIAogICAgIG11dGFibGUgTXV0ZXggbV9z
eW5jTG9jazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJh
c2VCYXNlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFN5bmNocm9ub3VzIGNhbGxzIHVzZWQgaW50ZXJuYWxseSBieSBXZWJD
b3JlLgogICAgIC8vIFVzYWdlIHNob3VsZCBiZSByZXBsYWNlZCBieSBhc3luY2hyb25vdXMgY2Fs
bHMuCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTdHJpbmcgc3luY2hyb25vdXNJY29uVVJM
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzeW5jaHJvbm91
c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzeW5j
aHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBJY29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lz
aW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCBEb2N1bWVudExvYWRlciopIHsgcmV0dXJuIElj
b25Mb2FkTm87IH0KICAgICB2aXJ0dWFsIEltYWdlKiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFNpemUmKSB7IHJldHVybiAwOyB9CkBAIC0yMDAsNyAr
MjAwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BUaHJlYWRBY3Rp
dml0eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVu
YW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29u
c3QgU3RyaW5nJiBmaWxlbmFtZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUFsbEljb25zKCkgeyB9CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChJY29uRGF0YWJhc2VDbGllbnQqKSB7
IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNPcGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFN0cmluZyBkYXRhYmFzZVBhdGgoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIFN0cmluZyBkYXRhYmFzZVBhdGgoKSBjb25zdDsKIAogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgJKHJldmlzaW9uIDE4MDI0NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogCiBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBEYXRhYmFzZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8
RGF0YWJhc2VQcm92aWRlcj4gewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
fkRhdGFiYXNlUHJvdmlkZXIoKTsKKyAgICB2aXJ0dWFsIH5EYXRhYmFzZVByb3ZpZGVyKCk7CiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBJREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZSogaWRiRmFjdG9yeUJhY2tlbmQoKTsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0
b3J5QmFja2VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJhY2tlbmQoKSA9IDA7CiAKICAgICBib29sIG1fZGlk
Q3JlYXRlSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kSW50ZXJmYWNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NzAsNyArNDcwLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxQb2ludGVyTG9ja0NvbnRy
b2xsZXI+IG1fcG9pbnRlckxvY2tDb250cm9sbGVyOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBP
UlQgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwor
ICAgIFJlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsK
IAogICAgIGNvbnN0IFJlZlB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICBjb25zdCBzdGQ6
OnVuaXF1ZV9wdHI8UHJvZ3Jlc3NUcmFja2VyPiBtX3Byb2dyZXNzOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4
ICs1MCw4IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBQYWdlQ29uc29sZUNsaWVudChQYWdlJik7
CiAgICAgdmlydHVhbCB+UGFnZUNvbnNvbGVDbGllbnQoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQ
cmludEV4Y2VwdGlvbnMoYm9vbCk7CiAKICAgICBzdGF0aWMgdm9pZCBtdXRlKCk7CiAgICAgc3Rh
dGljIHZvaWQgdW5tdXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCShyZXZp
c2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gY3JlYXRlKENsaWVudCYsIE92
ZXJsYXlUeXBlID0gT3ZlcmxheVR5cGU6OlZpZXcpOwotICAgIHZpcnR1YWwgflBhZ2VPdmVybGF5
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UGFnZU92ZXJsYXkoKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFBhZ2VPdmVybGF5Q29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCShyZXZpc2lvbiAxODAyNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE5OCw3ICsxOTgsNyBAQCB1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29u
c3QgCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKLVN0cmluZyBsb2NhbFVzZXJTcGVjaWZp
Y1N0b3JhZ2VEaXJlY3RvcnkoKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBsb2NhbFVzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKIFN0cmluZyByb2FtaW5nVXNlclNwZWNpZmljU3RvcmFn
ZURpcmVjdG9yeSgpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgJ
KHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAko
d29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsOSBAQCBXRUJDT1JFX0xPR19DSEFOTkVMUyhERUNM
QVJFX0xPR19DSEFOTkVMCiAKICN1bmRlZiBERUNMQVJFX0xPR19DSEFOTkVMCiAKKyNpZiAhUExB
VEZPUk0oV0lOKQogICAgIFdFQkNPUkVfRVhQT1JUIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ05v
dFlldEltcGxlbWVudGVkOworI2VuZGlmCiAKICAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsK
ICAgICBib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY29uc3QgY2hhciogbV9sb2dTdHJpbmc7CiAgICAgICAgIHNpemVfdCBtX2luaXRpYWxN
ZW1vcnk7CiAKLSAgICAgICAgc3RhdGljIGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKKyAgICAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKICAgICB9OwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAkocmV2aXNpb24g
MTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBV
U0UoV0VCX1RIUkVBRCkKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRocmVhZEdsb2Jh
bERhdGEqIHNoYXJlZE1haW5UaHJlYWRTdGF0aWNEYXRhOwogI2VuZGlmCi0gICAgICAgIGZyaWVu
ZCBUaHJlYWRHbG9iYWxEYXRhJiB0aHJlYWRHbG9iYWxEYXRhKCk7CisgICAgICAgIFdFQkNPUkVf
RVhQT1JUIGZyaWVuZCBUaHJlYWRHbG9iYWxEYXRhJiB0aHJlYWRHbG9iYWxEYXRhKCk7CiAgICAg
fTsKIAogI2lmIFVTRShXRUJfVEhSRUFEKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgJKHJldmlz
aW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTQsOSArMTU0LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVy
KCk7CiAKLSAgICBmcmllbmQgYm9vbCBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBib29sIGVx
dWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CiAK
LSAgICBmcmllbmQgYm9vbCBwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJik7CisgICAgV0VCQ09SRV9FWFBPUlQgZnJpZW5kIGJvb2wgcHJvdG9jb2xIb3N0
QW5kUG9ydEFyZUVxdWFsKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogCiAgICAgdW5zaWduZWQg
aG9zdFN0YXJ0KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgaG9zdEVuZCgpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgY2xhc3MgRm9udENhY2hlIHsKIAog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvbnRDYWNoZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIGZyaWVuZCBGb250Q2FjaGUmIGZvbnRDYWNoZSgpOworICAgIFdF
QkNPUkVfRVhQT1JUIGZyaWVuZCBGb250Q2FjaGUmIGZvbnRDYWNoZSgpOwogCiAgICAgLy8gVGhp
cyBtZXRob2QgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIHBsYXRmb3JtLgogICAgIFJlZlB0cjxGb250
PiBzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgRm9udCogb3JpZ2luYWxGb250RGF0YSwgYm9vbCBpc1BsYXRmb3JtRm9udCwgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgJKHJldmlzaW9uIDE4
MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FM
YXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFBsYXRmb3JtQ0FMYXllckNs
aWVudCopIGNvbnN0ID0gMDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflBsYXRmb3Jt
Q0FMYXllcigpOworICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXllcigpOwogCiAgICAgR3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
SUQ7IH0KIApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9u
IHBhc3NlcyB0aGUgbGF5ZXIgYXMgYSB2b2lkKiByYXRoZXIgdGhhbiBhIFBsYXRmb3JtTGF5ZXIg
YmVjYXVzZSBQbGF0Zm9ybUxheWVyCiAgICAgLy8gaXMgZGVmaW5lZCBkaWZmZXJlbnRseSBmb3Ig
T2JqIEMgYW5kIEMrKy4gVGhpcyBhbGxvd3MgY2FsbGVycyBmcm9tIGJvdGggbGFuZ3VhZ2VzLgot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXll
cih2b2lkKiBwbGF0Zm9ybUxheWVyKTsKKyAgICBzdGF0aWMgUGxhdGZvcm1DQUxheWVyKiBwbGF0
Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcik7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAK
QEAgLTI1MSwxNCArMjUxLDE0IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgLy8gRnVuY3Rpb25z
IGFsbG93cyB1cyB0byBzaGFyZSBpbXBsZW1lbnRhdGlvbiBhY3Jvc3MgV2ViVGlsZWRMYXllciBh
bmQgV2ViTGF5ZXIKICAgICBzdGF0aWMgUmVwYWludFJlY3RMaXN0IGNvbGxlY3RSZWN0c1RvUGFp
bnQoQ0dDb250ZXh0UmVmLCBQbGF0Zm9ybUNBTGF5ZXIqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBkcmF3TGF5ZXJDb250ZW50cyhDR0NvbnRleHRSZWYsIFBsYXRmb3JtQ0FMYXll
ciosIFJlcGFpbnRSZWN0TGlzdCYgZGlydHlSZWN0cyk7CisgICAgc3RhdGljIHZvaWQgZHJhd0xh
eWVyQ29udGVudHMoQ0dDb250ZXh0UmVmLCBQbGF0Zm9ybUNBTGF5ZXIqLCBSZXBhaW50UmVjdExp
c3QmIGRpcnR5UmVjdHMpOwogICAgIHN0YXRpYyB2b2lkIGRyYXdSZXBhaW50SW5kaWNhdG9yKENH
Q29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKiwgaW50IHJlcGFpbnRDb3VudCwgQ0dDb2xvclJl
ZiBjdXN0b21CYWNrZ3JvdW5kQ29sb3IpOwogICAgIHN0YXRpYyBDR1JlY3QgZnJhbWVGb3JMYXll
cihjb25zdCBQbGF0Zm9ybUxheWVyKik7CiAKICAgICB2b2lkIG1vdmVUb0xheWVyUG9vbCgpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1DQUxheWVyKExheWVyVHlw
ZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcik7CisgICAgUGxhdGZvcm1DQUxheWVyKExh
eWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcik7CiAKICAgICB2aXJ0dWFsIExh
eWVyUG9vbCYgbGF5ZXJQb29sKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaAkocmV2aXNpb24gMTgw
MjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZl
cmVuY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTEgKzM5LDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpKTsKICAg
ICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2Uo
KTsKKyAgICB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKTsKIAogICAgIHZvaWQgc3Rh
cnRUcmFja2luZ01vZGlmaWNhdGlvbnMoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFN0
cmluZyYgcGF0aCgpOworICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpOwogICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBzaXplKCk7CiAgICAgZG91YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSgpOwog
CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmV2b2tlRmlsZUFj
Y2VzcygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNv
bnN0IFN0cmluZyYgcGF0aCk7CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1F
TlQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lz
dHJ5LmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYlJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0Jsb2JSZWdpc3RyeUltcGwoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QmxvYlJl
Z2lzdHJ5KCk7CisgICAgdmlydHVhbCB+QmxvYlJlZ2lzdHJ5KCk7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwLDcgKzUwLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgQmxvYlJlZ2lzdHJ5SW1wbCBmaQog
cHVibGljOgogICAgIHZpcnR1YWwgfkJsb2JSZWdpc3RyeUltcGwoKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIEJsb2JEYXRhKiBnZXRCbG9iRGF0YUZyb21VUkwoY29uc3QgVVJMJikgY29uc3Q7Cisg
ICAgQmxvYkRhdGEqIGdldEJsb2JEYXRhRnJvbVVSTChjb25zdCBVUkwmKSBjb25zdDsKIAogICAg
IFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCShyZXZpc2lvbiAxODAyNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0IEBAIGNsYXNzIERhdGFiYXNlQXV0aG9yaXplcjsKIGNs
YXNzIFNRTGl0ZVN0YXRlbWVudDsKIGNsYXNzIFNRTGl0ZVRyYW5zYWN0aW9uOwogCi1leHRlcm4g
Y29uc3QgaW50IFNRTFJlc3VsdERvbmU7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgaW50
IFNRTFJlc3VsdERvbmU7CiBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdEVycm9yOwotZXh0ZXJu
IGNvbnN0IGludCBTUUxSZXN1bHRPazsKLWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Um93Owor
V0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRPazsKK1dFQkNPUkVfRVhQ
T1JUIGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Um93OwogZXh0ZXJuIGNvbnN0IGludCBTUUxS
ZXN1bHRTY2hlbWE7CiBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdEZ1bGw7CiBleHRlcm4gY29u
c3QgaW50IFNRTFJlc3VsdEludGVycnVwdDsKLWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29u
c3RyYWludDsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29uc3Ry
YWludDsKIAogY2xhc3MgU1FMaXRlRGF0YWJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFNRTGl0ZURhdGFiYXNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2Nyb2xsQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsOCArNjIsOCBAQCBzdHJ1Y3Qg
U2Nyb2xsQWxpZ25tZW50IHsKICAgICBzdGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVo
YXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsg
fQogCiAgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlcklmTmVlZGVk
OwotICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJZk5lZWRlZDsK
LSAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduQ2VudGVyQWx3YXlzOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJ
Zk5lZWRlZDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50
IGFsaWduQ2VudGVyQWx3YXlzOwogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxp
Z25Ub3BBbHdheXM7CiAgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblJpZ2h0
QWx3YXlzOwogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25MZWZ0QWx3YXlz
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDE4
MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIHN0YXRpYyBjb25zdCBVQ2hhciBhc2NpaUxpbmVCcmVh
a1RhYmxlRmkKIHN0YXRpYyBjb25zdCBVQ2hhciBhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIg
PSAxMjc7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgYXNjaWlMaW5lQnJlYWtUYWJsZUNvbHVtbkNv
dW50ID0gKGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFibGVG
aXJzdENoYXIpIC8gOCArIDE7CiAKLWV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGFzY2lpTGlu
ZUJyZWFrVGFibGVbXVthc2NpaUxpbmVCcmVha1RhYmxlQ29sdW1uQ291bnRdOworV0VCQ09SRV9F
WFBPUlQgZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZVtdW2Fz
Y2lpTGluZUJyZWFrVGFibGVDb2x1bW5Db3VudF07CiAKIGVudW0gY2xhc3MgTkJTUEJlaGF2aW9y
IHsKICAgICBJZ25vcmVOQlNQLApJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMjQ3
KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTUtMDItMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIHRvIHVzZSBXRUJDT1JFX0VYUE9SVCBvbiBXaW5k
b3dzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQx
NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
RkRpY3Rpb25hcnlQcm9wZXJ0eUJhZy5oOgorICAgICAgICAqIFdlYktpdENPTUFQSS5oOgorICAg
ICAgICAqIFdlYktpdERMTC5jcHA6CisgICAgICAgIChzaHV0RG93bldlYktpdCk6CisgICAgICAg
IEFkZGVkIFdFQkNPUkVfRVhQT1JUIG1hY3Jvcy4KKwogMjAxNS0wMi0wOSAgQnJpYW4gSi4gQnVy
ZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVt
b3ZlIHNvbWUgdW5uZWNlc3NhcnkgSW5zcGVjdG9yIHByZWZpeGVzIGZyb20gY2xhc3MgbmFtZXMg
aW4gSW5zcGVjdG9yIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ0ZEaWN0aW9u
YXJ5UHJvcGVydHlCYWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DRkRpY3Rp
b25hcnlQcm9wZXJ0eUJhZy5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9DRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uo
KTsKIAogICAgIHZvaWQgc2V0RGljdGlvbmFyeShDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rp
b25hcnkpOwotICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSgpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSgpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIENGRGljdGlvbmFyeVByb3BlcnR5QmFnKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRDT01BUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXRDT01BUEkuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYktp
dC93aW4vV2ViS2l0Q09NQVBJLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgZXh0
ZXJuICJDIiB7CiAKIC8vIENhbGxlcnMgc2hvdWxkIHVzZSB0aGlzIEFQSSBpbnN0ZWFkIG9mIENv
Q3JlYXRlSW5zdGFuY2UgdG8gaW5zdGFudGlhdGUgV2ViS2l0IENPTSBjbGFzc2VzLgogLy8gVGhp
cyBieXBhc3NlcyBDb0NyZWF0ZUluc3RhbmNlIGVudGlyZWx5LCBzbyByZWdpc3RyeSBrZXlzIGFu
ZCBpc29sYXRlZCBDT00gbWFuaWZlc3RzIGFyZW4ndCBuZWVkZWQuCi1IUkVTVUxUIFdlYktpdENy
ZWF0ZUluc3RhbmNlKFJFRkNMU0lELCBJVW5rbm93biogcFVua091dGVyLCBSRUZJSUQsIHZvaWQq
KiBwcHZPYmplY3QpOworV0VCQ09SRV9FWFBPUlQgSFJFU1VMVCBXZWJLaXRDcmVhdGVJbnN0YW5j
ZShSRUZDTFNJRCwgSVVua25vd24qIHBVbmtPdXRlciwgUkVGSUlELCB2b2lkKiogcHB2T2JqZWN0
KTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246792</attachid>
            <date>2015-02-17 19:45:02 -0800</date>
            <delta_ts>2015-02-17 21:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141735-20150217194458.patch</filename>
            <type>text/plain</type>
            <size>77620</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDI1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAyLTE3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJlcGFyZSB0
byB1c2UgV0VCQ09SRV9FWFBPUlQgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaDoK
KyAgICAgICAgKiBwYWdlL0RhdGFiYXNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1VSTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuaDoKKyAgICAgICAgQWRkIGFuZCBtb3ZlIHNv
bWUgV0VCQ09SRV9FWFBPUlQgbWFjcm9zLgorCiAyMDE1LTAyLTE3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4MDIyNCk6IFJlbW92
ZSB1bnVzZWQgZ2VuZXJhdGUtZXhwb3J0LWZpbGUgc2NyaXB0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgR0NDb250cm9sbGVy
IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0NDb250cm9sbGVyKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgICAgIGZyaWVuZCBHQ0NvbnRyb2xsZXImIGdjQ29udHJvbGxl
cigpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCBmcmllbmQgR0NDb250cm9sbGVyJiBnY0NvbnRy
b2xsZXIoKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnYXJi
YWdlQ29sbGVjdFNvb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1cmU+PiBKU0RPTVN0
cnVjdHVyZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBK
U0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0Pj4gSlNET01Db25zdHJ1Y3Rvck1hcDsKIAot
ICAgIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0IDogcHVibGljIEpTQzo6SlNHbG9iYWxPYmplY3Qg
eworICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NR2xvYmFsT2JqZWN0IDogcHVibGljIEpT
Qzo6SlNHbG9iYWxPYmplY3QgewogICAgICAgICB0eXBlZGVmIEpTQzo6SlNHbG9iYWxPYmplY3Qg
QmFzZTsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0cnVjdCBKU0RPTUdsb2JhbE9iamVjdERh
dGE7CkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNET01T
dHJ1Y3R1cmVNYXAmIHN0cnVjdHVyZXMoKSB7IHJldHVybiBtX3N0cnVjdHVyZXM7IH0KICAgICAg
ICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKCkgeyByZXR1cm4gbV9jb25zdHJ1
Y3RvcnM7IH0KIAotICAgICAgICBXRUJDT1JFX0VYUE9SVCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKIAogICAgICAgICAvLyBN
YWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KICAgICAgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHRoaXM7IH0KQEAgLTY4LDcgKzY4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7
IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKyAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBpbmZvKCkgeyByZXR1cm4gJnNfaW5mbzsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC04MDEsNyArODAx
LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpT
RGljdGlvbmFyeSIpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGlu
dGVyZmFjZSwgIkV2ZW50Iik7CiAKICAgICAjIENsYXNzIGRlY2xhcmF0aW9uCi0gICAgcHVzaChA
aGVhZGVyQ29udGVudCwgImNsYXNzICRjbGFzc05hbWUgOiBwdWJsaWMgJHBhcmVudENsYXNzTmFt
ZSB7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgV0VCQ09SRV9FWFBPUlQg
JGNsYXNzTmFtZSA6IHB1YmxpYyAkcGFyZW50Q2xhc3NOYW1lIHtcbiIpOwogCiAgICAgIyBTdGF0
aWMgY3JlYXRlIG1ldGhvZHMKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7
CkBAIC04NTgsNyArODU4LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0gZWxzaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdMaXN0IikgewogICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b1dy
YXBwZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyAkaW1wbFR5cGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkaW1wbFR5cGUqIHRvV3JhcHBl
ZChKU0M6OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTkxNSw3ICs5MTUs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUi
KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bztcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InB1YmxpYzpcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH1cblxuIik7CiAg
ICAgfSBlbHNlIHsKQEAgLTE5MzYsOSArMTkzNiw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCVjb25kaXRpb25hbHMsICRqdXN0
R2VuZXJhdGVWYWx1ZUFycmF5KTsKIAogICAgIGlmICgkanVzdEdlbmVyYXRlVmFsdWVBcnJheSkg
ewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZh
Y2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBc
IiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsKICAgICB9
IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJ
bnRlcmZhY2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJv
dG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9
O1xuXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtj
bGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Q
cm90b3R5cGVcIiwgJkJhc2U6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CiAgICAg
fQogCiAgICAgaWYgKFByb3RvdHlwZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgkaW50ZXJm
YWNlKSkgewpAQCAtMTk5OSw3ICsxOTk5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICB9CiAKICAgICAjIC0gSW5pdGlhbGl6ZSBzdGF0aWMgQ2xhc3NJbmZvIG9iamVjdAotICAg
IHB1c2goQGltcGxDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICRjbGFz
c05hbWUiIC4gIjo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNl
OjpzX2luZm8sICIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICRj
bGFzc05hbWUiIC4gIjo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZC
YXNlOjpzX2luZm8sICIpOwogCiAgICAgaWYgKCRudW1JbnN0YW5jZUF0dHJpYnV0ZXMgPiAwKSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJiR7Y2xhc3NOYW1lfVRhYmxlIik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0QWN0aXZlCiAgICAgeyAicG9zdE1lc3NhZ2UiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKSwgKGlu
dHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RBY3Rp
dmVET01PYmplY3RQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmplY3RQcm90
b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lk
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6ZmluCiAgICAgcmVpZnlTdGF0aWNQcm9w
ZXJ0aWVzKHZtLCBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9N
T2JqZWN0OjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEFj
dGl2ZURPTU9iamVjdCkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RBY3RpdmVET01PYmplY3Q6
OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
QWN0aXZlRE9NT2JqZWN0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9N
T2JqZWN0KSB9OwogCiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OkpTVGVzdEFjdGl2ZURPTU9iamVj
dChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgJ
KHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVj
dCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKQEAgLTM4LDcgKzM4LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSk7CisgICAgc3RhdGljIFRlc3RBY3RpdmVET01PYmplY3QqIHRvV3JhcHBlZChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEFj
dGl2ZURPTU9iamVjdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjIsNyArMTIyLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEN1c3RvbQog
ICAgIHsgImFub3RoZXJGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9LAogfTsK
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBKU1Rl
c3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6ZgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGll
cyh2bSwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMp
OwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXI6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RDdXN0b21OYW1lZEdldHRlclRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcikgfTsKIAogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCiAgICAg
OiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xh
c3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgOiBwdWJsaWMgSlNET01X
cmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI+JiYgaW1wbCkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEN1
c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dEV2ZW50QwogICAgIHsgImF0dHIyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNj
ZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogewpAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1
Y3RvclByb3RvdHlwZTo6ZmkKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JF
X0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3IpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3Ip
IH07CiAKIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNEaWN0aW9uYXJ5OwogCi1jbGFzcyBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJD
T1JFX0VYUE9SVCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBlciB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4m
JiBpbXBsKQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1
Y3RvciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RFdmVudENvbnN0
cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdEV2ZW50VAogICAgIHsgImRpc3BhdGNoRXZlbnQiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudCksIChpbnRwdHJfdCkgKDEpIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldFByb3RvdHlwZSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RFdmVudFRhcmdldFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTE0Miw3
ICsxNDIsNyBAQCB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpmaW5pc2hDCiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZVRhYmxl
VmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RFdmVudFRhcmdldDo6c19pbmZvID0geyAiVGVzdEV2ZW50VGFyZ2V0IiwgJkJhc2U6OnNfaW5m
bywgJkpTVGVzdEV2ZW50VGFyZ2V0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZl
bnRUYXJnZXQpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXQ6OnNfaW5mbyA9
IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RFdmVudFRhcmdldFRh
YmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0KSB9OwogCiBKU1Rlc3RF
dmVudFRhcmdldDo6SlNUZXN0RXZlbnRUYXJnZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRUYXJnZXQ+JiYgaW1wbCkK
ICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEV2
ZW50VGFyZ2V0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBK
U1Rlc3RFdmVudFRhcmdldCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50VGFyZ2V0KiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RFdmVudFRhcmdldD4mJiBpbXBsKQpAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdl
dFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3
ICsxMTksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXhjZXB0CiAgICAg
eyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFeGNlcHRp
b25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXhjZXB0aW9uUHJvdG90
eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRp
b25Qcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0RXhjZXB0aW9uUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0x
MjcsNyArMTI3LDcgQEAgdm9pZCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OmZpbmlzaENyZQog
ICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlVGFi
bGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEV4Y2VwdGlvbjo6c19pbmZvID0geyAiVGVzdEV4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RFeGNlcHRpb25UYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRp
b24pIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uOjpzX2luZm8gPSB7ICJUZXN0
RXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEV4Y2VwdGlvblRhYmxlLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbikgfTsKIAogSlNUZXN0RXhjZXB0aW9uOjpKU1Rl
c3RFeGNlcHRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9uPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIo
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RFeGNlcHRpb24gOiBwdWJsaWMgSlNET01XcmFw
cGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEV4Y2VwdGlvbiA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAg
c3RhdGljIEpTVGVzdEV4Y2VwdGlvbiogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9uPiYmIGlt
cGwpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RFeGNlcHRpb24qIHRvV3Jh
cHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RFeGNlcHRpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5jcHAJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RH
ZW5lcmEKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJDT1JFX0VY
UE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90
b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZToKICAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6c19pbmZvID0g
eyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUpIH07CiAKIEpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKQEAg
LTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRv
V3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAzLDcgKzQwMyw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJ
bnRlcmYKICNlbmRpZgogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEludGVyZmFjZVByb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdEludGVyZmFjZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtNDExLDcg
KzQxMSw3IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpmaW5pc2hDcmUKICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJ
bnRlcmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAmSlNU
ZXN0SW50ZXJmYWNlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZTo6c19pbmZvID0geyAiVGVzdEludGVy
ZmFjZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RJbnRlcmZhY2UpIH07CiAKIEpTVGVzdEludGVyZmFjZTo6SlNUZXN0SW50
ZXJmYWNlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdEludGVyZmFjZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTgw
MjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0SW50ZXJmYWNlIDogcHVibGljIEpTRE9NV3JhcHBlciB7
CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFw
cGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3RJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEludGVyZmFjZT4mJiBpbXBsKQpA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
OSw3ICsxMDksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TWVkaWFRCiAg
ICAgeyAibWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQ
T1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMTcs
NyArMTE3LDcgQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eQogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpzX2luZm8gPSB7ICJUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcikgfTsKIAogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyAr
MTczLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkQwogICAgIHsg
ImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFtZWRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFt
ZWRDb25zdHJ1Y3RvclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRD
b25zdHJ1Y3RvclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xODEs
NyArMTgxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaQogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25z
dHJ1Y3RvcikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0TmFtZWRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvcikgfTsKIAogSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvcjo6SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYm
IGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBl
ciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsK
ICAgICBzdGF0aWMgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGlj
IFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0
b3IoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE5vZGVQcgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Tm9kZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3ROb2RlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZVByb3RvdHlw
ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZVByb3Rv
dHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0Tm9kZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0Tm9kZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBKU1Rlc3RO
b2RlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2
bSwgSlNUZXN0Tm9kZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVf
RVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZSkgfTsKK2Nv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZSkgfTsKIAogSlNUZXN0Tm9k
ZTo6SlNUZXN0Tm9kZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPFRlc3ROb2RlPiYmIGltcGwpCiAgICAgOiBKU05vZGUoc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAkocmV2aXNpb24g
MTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTTm9kZSBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROb2RlKiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3ROb2RlPiYmIGltcGwpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3Bw
CShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3
ICsxMzEsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Tm9uZGV0CiAgICAg
eyAibm9uZGV0ZXJtaW5pc3RpY1plcm9BcmdGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vbmRl
dGVybWluaXN0aWNQcm90b3R5cGVGdW5jdGlvbk5vbmRldGVybWluaXN0aWNaZXJvQXJnRnVuY3Rp
b24pLCAoaW50cHRyX3QpICgwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROb25k
ZXRlcm1pbmlzdGljUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROb25kZXRl
cm1pbmlzdGljUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5vbmRl
dGVybWluaXN0aWNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzOSw3
ICsxMzksNyBAQCB2b2lkIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OmZpCiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBl
VGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnNfaW5mbyA9IHsgIlRlc3ROb25kZXRlcm1pbmlzdGlj
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROb25kZXRlcm1p
bmlzdGljKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnNfaW5m
byA9IHsgIlRlc3ROb25kZXRlcm1pbmlzdGljIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROb25kZXRlcm1pbmlzdGljKSB9OwogCiBKU1Rlc3ROb25kZXRlcm1p
bmlzdGljOjpKU1Rlc3ROb25kZXRlcm1pbmlzdGljKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vbmRldGVybWluaXN0aWM+JiYg
aW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0
aWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEpTVGVzdE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROb25k
ZXRlcm1pbmlzdGljPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRl
c3ROb25kZXRlcm1pbmlzdGljKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMg
VGVzdE5vbmRldGVybWluaXN0aWMqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2Jq
UHJvCiAgICAgeyAiYW55IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Bbnkp
LCAoaW50cHRyX3QpICgyKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9iamVjdFByb3RvdHlwZSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqUHJvdG90eXBlKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9i
amVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0T2JqUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbigKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVz
dE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RPYmo6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3QiLCAmQmFzZTo6
c19pbmZvLCAmSlNUZXN0T2JqVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZC
YXNlOjpzX2luZm8sICZKU1Rlc3RPYmpUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RP
YmopIH07CiAKIEpTVGVzdE9iajo6SlNUZXN0T2JqKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE9iaj4mJiBpbXBsKQogICAgIDog
SlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNp
b24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0T2JqIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RPYmogOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RPYmoq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdE9iaj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBUZXN0T2JqKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVz
dE9iaiogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKICAgICB+SlNUZXN0T2JqKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0T3ZlcmxvCiAgICAgeyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8
IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKSB9Owog
CiB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKIHsKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAot
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnNfaW5mbyA9
IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKSB9OwogCiBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1dyYXBwZWQoSlNDOjpKU1Zh
bHVlKTsKKyAgICBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvV3JhcHBlZChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAg
ICB+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2aXNp
b24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U2VyaWFs
CiAgICAgeyAiY2FjaGVkUmVhZG9ubHlWYWx1ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
YWNoZWRSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5m
byA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lk
IEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjCiAgICAgcmVpZnlTdGF0aWNQcm9w
ZXJ0aWVzKHZtLCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpzX2luZm8gPSB7ICJUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpIH07Citjb25z
dCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpzX2luZm8g
PSB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UpIH07CiAKIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT4mJiBpbXBsKQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAg
ICBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9XcmFwcGVkKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQsNyArMjA0LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFR5cGVkZQog
ICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDApIH0sCiB9Owog
Ci1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmc1Byb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUpIH07Citjb25zdCBDbGFz
c0luZm8gSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmc1By
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlw
ZWRlZnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIEpTVGVzdFR5cGVk
ZWZzUHJvdG90eXBlOjpmaW5pc2hDcmVhCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBK
U1Rlc3RUeXBlZGVmc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVf
RVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmczo6c19pbmZvID0geyAiVGVzdFR5
cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdFR5cGVkZWZzVGFibGUsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0VHlwZWRlZnMpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlwZWRl
ZnM6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmcyIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RUeXBl
ZGVmc1RhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzKSB9OwogCiBKU1Rl
c3RUeXBlZGVmczo6SlNUZXN0VHlwZWRlZnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdFR5cGVkZWZzIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RUeXBlZGVmcyA6IHB1
YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJh
c2U7CiAgICAgc3RhdGljIEpTVGVzdFR5cGVkZWZzKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RUeXBlZGVm
cz4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0VHlwZWRlZnMq
IHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0VHlwZWRlZnMqIHRvV3Jh
cHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAg
ICAgfkpTVGVzdFR5cGVkZWZzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNhdHRyaWJ1dGVQCiAgICAgeyAicmVhZG9ubHkiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNhdHRyaWJ1dGVSZWFkb25seSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNhdHRyaWJ1dGVQcm90b3R5
cGU6OnNfaW5mbyA9IHsgImF0dHJpYnV0ZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNhdHRyaWJ1dGVQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNhdHRyaWJ1dGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgImF0dHJpYnV0ZVByb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNhdHRyaWJ1dGVQcm90b3R5
cGUpIH07CiAKIHZvaWQgSlNhdHRyaWJ1dGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIHsKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEpTYXR0cmlidXRlUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU2F0dHJpYnV0ZVByb3Rv
dHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU2F0dHJpYnV0ZTo6c19pbmZvID0geyAiYXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U2F0dHJpYnV0ZTo6c19pbmZvID0geyAiYXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZSkgfTsKIAogSlNhdHRyaWJ1dGU6OkpTYXR0cmli
dXRlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWY8YXR0cmlidXRlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBK
U2F0dHJpYnV0ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
SlNhdHRyaWJ1dGUgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU2F0dHJpYnV0ZSogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxhdHRyaWJ1dGU+JiYgaW1wbCkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYXR0
cmlidXRlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgYXR0cmlidXRlKiB0
b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTYXR0cmlidXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3Jl
YWRvbmx5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU3JlYWRvbmx5UHIKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRF
bnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzcmVhZG9ubHlDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1X
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seVByb3RvdHlwZTo6c19pbmZv
ID0geyAicmVhZG9ubHlQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTcmVhZG9ubHlQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNyZWFkb25s
eVByb3RvdHlwZTo6c19pbmZvID0geyAicmVhZG9ubHlQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTcmVhZG9ubHlQcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNyZWFkb25seVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTA5LDcg
KzEwOSw3IEBAIHZvaWQgSlNyZWFkb25seVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24KICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTcmVhZG9ubHlQcm90b3R5cGVUYWJsZVZhbHVlcywg
KnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seTo6
c19pbmZvID0geyAicmVhZG9ubHkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTcmVhZG9ubHkpIH07Citjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seTo6c19pbmZvID0g
eyAicmVhZG9ubHkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTcmVh
ZG9ubHkpIH07CiAKIEpTcmVhZG9ubHk6OkpTcmVhZG9ubHkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFkb25seT4mJiBpbXBsKQog
ICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
CShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNyZWFkb25seSA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNyZWFkb25seSA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGlj
IEpTcmVhZG9ubHkqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8cmVhZG9ubHk+JiYgaW1wbCkKQEAgLTM4LDcgKzM4
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgcmVhZG9ubHkqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyByZWFkb25seSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU3JlYWRvbmx5KCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCShyZXZpc2lvbiAxODAyNDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgUnVudGltZU1ldGhv
ZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRp
bWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKQEAgLTU4LDEyICs1OCwxMiBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUnVudGltZU1ldGhvZChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2QqKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7CisgICAgUnVu
dGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2Qq
KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Cisg
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHJl
dmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVz
cGFjZSBCaW5kaW5ncyB7CiAKLWNsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVj
dGlibGVPYmplY3QgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0
aWJsZU9iamVjdCBCYXNlOwogCkBAIC00MywxNiArNDMsMTYgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gb2JqZWN0OwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDZWxsKik7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCos
IEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEpTVmFsdWUg
ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0
aXZlVHlwZSk7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CisgICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApAQCAtNzMsOCArNzMsOCBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdChW
TSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CisgICAgUnVudGltZU9iamVjdChWTSYsIFN0cnVj
dHVyZSosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
Jik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2Vf
bmFtZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwJ
KHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4p
KSB7CiAgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRl
cnMpOwogCiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJXBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRu
YW1lKVxuIjsKKyAgICAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRu
YW1lKVxuIjsKICAgICB9CiAKICAgICBwcmludEluaXQoJEYsIDApOwpAQCAtNzE2LDE2ICs3MTYs
MTYgQEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFj
ZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCiAgICAgcHJpbnQg
RiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYgImV4dGVybiBjb25zdCBXVEY6OkF0b21p
Y1N0cmluZyAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7Cisg
ICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IFdURjo6QXRvbWljU3RyaW5n
ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxuIjsKIAogICAgIGlm
IChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIFRhZ3NcbiI7Ci0gICAgICAg
IHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OiRwYXJhbWV0ZXJze25hbWVz
cGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIsIFwlYWxsVGFncyk7CisgICAgICAgIHByaW50TWFj
cm9zKCRGLCAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OiRwYXJhbWV0ZXJz
e25hbWVzcGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIsIFwlYWxsVGFncyk7CiAgICAgfQogCiAg
ICAgaWYgKGtleXMgJWFsbEF0dHJzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIEF0dHJpYnV0ZXNc
biI7Ci0gICAgICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OlF1YWxp
ZmllZE5hbWUiLCAiQXR0ciIsIFwlYWxsQXR0cnMpOworICAgICAgICBwcmludE1hY3JvcygkRiwg
IldFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lIiwgIkF0
dHIiLCBcJWFsbEF0dHJzKTsKICAgICB9CiAgICAgcHJpbnQgRiAiI2VuZGlmXG5cbiI7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgJKHJldmlzaW9uIDE4MDI0NikKKysr
IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAt
NTcsNyArNTcsNyBAQCBlbnVtIGNsYXNzIFBydW5pbmdSZWFzb247CiAKIHR5cGVkZWYgVmVjdG9y
PFJlZjxIaXN0b3J5SXRlbT4+IEhpc3RvcnlJdGVtVmVjdG9yOwogCi1leHRlcm4gdm9pZCAoKm5v
dGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCkoSGlzdG9yeUl0ZW0qKTsKK1dFQkNPUkVfRVhQT1JUIGV4
dGVybiB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSopOwogCiBj
bGFzcyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7CiAgICAg
ZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAyLDcgKzQwMiw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIG1fcXVpY2tSZWRpcmVjdENvbWluZzsKICAgICBib29sIG1fc2VudFJlZGlyZWN0Tm90aWZp
Y2F0aW9uOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOworICAg
IGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOwogCiAgICAgU3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJl
cjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCwxMSArNDAsMTEgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9hZGVyU3RyYXRlZ3kgewogcHVibGljOgotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hl
ZHVsZXIoKTsKKyAgICB2aXJ0dWFsIFJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2Fk
U2NoZWR1bGVyKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENy
ZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9y
PGNoYXI+JiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3ks
IFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgQmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVn
aXN0cnkoKTsKKyAgICB2aXJ0dWFsIEJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7
CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2FkZXJTdHJhdGVneSgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCShyZXZpc2lvbiAx
ODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgU3VicmVzb3VyY2VMb2FkZXI7
CiBjbGFzcyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFJlc291cmNlTG9hZFNjaGVkdWxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxl
cigpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJl
c291cmNlTG9hZFNjaGVkdWxlcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBQYXNz
UmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVsZVN1YnJlc291cmNlTG9hZChGcmFtZSos
IENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VM
b2FkZXJPcHRpb25zJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBQYXNzUmVmUHRyPE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUq
LCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHJl
dmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICBQYXNz
UmVmUHRyPEljb25SZWNvcmQ+IGdldE9yQ3JlYXRlSWNvblJlY29yZChjb25zdCBTdHJpbmcmIGlj
b25VUkwpOwogICAgIFBhZ2VVUkxSZWNvcmQqIGdldE9yQ3JlYXRlUGFnZVVSTFJlY29yZChjb25z
dCBTdHJpbmcmIHBhZ2VVUkwpOwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbV9pc0Vu
YWJsZWQ7CisgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZDsKIAogICAgIG11dGFibGUgTXV0ZXggbV9zeW5jTG9jazsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFN5bmNocm9u
b3VzIGNhbGxzIHVzZWQgaW50ZXJuYWxseSBieSBXZWJDb3JlLgogICAgIC8vIFVzYWdlIHNob3Vs
ZCBiZSByZXBsYWNlZCBieSBhc3luY2hyb25vdXMgY2FsbHMuCi0gICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCBTdHJpbmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJ
Y29uVVJMKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBJY29u
TG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJp
bmcmLCBEb2N1bWVudExvYWRlciopIHsgcmV0dXJuIEljb25Mb2FkTm87IH0KICAgICB2aXJ0dWFs
IEltYWdlKiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IElu
dFNpemUmKSB7IHJldHVybiAwOyB9CkBAIC0yMDAsNyArMjAwLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wg
b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbElj
b25zKCkgeyB9CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChJY29uRGF0YWJhc2VDbGllbnQqKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgaXNPcGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIFN0cmluZyBkYXRhYmFzZVBhdGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBk
YXRhYmFzZVBhdGgoKSBjb25zdDsKIAogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9E
YXRhYmFzZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EYXRh
YmFzZVByb3ZpZGVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGF0YWJhc2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNz
IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBEYXRh
YmFzZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VQcm92aWRlcj4gewogcHVi
bGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRhdGFiYXNlUHJvdmlkZXIoKTsKKyAg
ICB2aXJ0dWFsIH5EYXRhYmFzZVByb3ZpZGVyKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeUJhY2tlbmQo
KTsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVmUHRyPElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9y
eUJhY2tlbmQoKSA9IDA7CiAKICAgICBib29sIG1fZGlkQ3JlYXRlSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFj
ZT4gbV9iYWNrZW5kSW50ZXJmYWNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NzAs
NyArNDcwLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxQb2ludGVyTG9ja0NvbnRyb2xsZXI+IG1fcG9pbnRlckxvY2tDb250
cm9sbGVyOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOworICAgIFJlZlB0cjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKIAogICAgIGNvbnN0IFJlZlB0cjxTZXR0
aW5ncz4gbV9zZXR0aW5nczsKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3Jlc3NUcmFj
a2VyPiBtX3Byb2dyZXNzOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQYWdlQ29uc29sZUNsaWVudChQYWdlJik7CiAgICAgdmlydHVhbCB+UGFnZUNvbnNv
bGVDbGllbnQoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNob3VsZFBy
aW50RXhjZXB0aW9ucyhib29sKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlv
bnMoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7CiAK
ICAgICBzdGF0aWMgdm9pZCBtdXRlKCk7CiAgICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0
cjxQYWdlT3ZlcmxheT4gY3JlYXRlKENsaWVudCYsIE92ZXJsYXlUeXBlID0gT3ZlcmxheVR5cGU6
OlZpZXcpOwotICAgIHZpcnR1YWwgflBhZ2VPdmVybGF5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+UGFnZU92ZXJsYXkoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VPdmVybGF5
Q29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsNyBAQCB1aW50
NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKFdJTikKLVN0cmluZyBsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKK1dF
QkNPUkVfRVhQT1JUIFN0cmluZyBsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsK
IFN0cmluZyByb2FtaW5nVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpOwogI2VuZGlmCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNyAr
ODIsOSBAQCBXRUJDT1JFX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMCiAKICN1bmRl
ZiBERUNMQVJFX0xPR19DSEFOTkVMCiAKKyNpZiAhUExBVEZPUk0oV0lOKQogICAgIFdFQkNPUkVf
RVhQT1JUIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ05vdFlldEltcGxlbWVudGVkOworI2VuZGlm
CiAKICAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsKICAgICBib29sIGlzTG9nQ2hhbm5lbEVu
YWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01lbW9yeVByZXNzdXJlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgY2hhciogbV9sb2dT
dHJpbmc7CiAgICAgICAgIHNpemVfdCBtX2luaXRpYWxNZW1vcnk7CiAKLSAgICAgICAgc3RhdGlj
IGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgc19sb2dnaW5nRW5hYmxlZDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFRocmVhZEdsb2JhbERhdGEqIHNoYXJlZE1haW5UaHJlYWRT
dGF0aWNEYXRhOwogI2VuZGlmCi0gICAgICAgIGZyaWVuZCBUaHJlYWRHbG9iYWxEYXRhJiB0aHJl
YWRHbG9iYWxEYXRhKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBUaHJlYWRHbG9i
YWxEYXRhJiB0aHJlYWRHbG9iYWxEYXRhKCk7CiAgICAgfTsKIAogI2lmIFVTRShXRUJfVEhSRUFE
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsOSArMTU0LDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0RnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKLSAgICBmcmllbmQgYm9vbCBl
cXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBib29sIGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50
aWZpZXIoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CiAKLSAgICBmcmllbmQgYm9vbCBwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgZnJpZW5kIGJvb2wgcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYpOwogCiAgICAgdW5zaWduZWQgaG9zdFN0YXJ0KCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgaG9zdEVuZCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcs
NyArMTA3LDcgQEAgY2xhc3MgRm9udENhY2hlIHsKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEZvbnRDYWNoZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGZyaWVu
ZCBGb250Q2FjaGUmIGZvbnRDYWNoZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBGb250
Q2FjaGUmIGZvbnRDYWNoZSgpOwogCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQg
YnkgdGhlIHBsYXRmb3JtLgogICAgIFJlZlB0cjxGb250PiBzeXN0ZW1GYWxsYmFja0ZvckNoYXJh
Y3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9udCogb3JpZ2luYWxGb250RGF0
YSwgYm9vbCBpc1BsYXRmb3JtRm9udCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5n
dGgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUxheWVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCSh3b3JraW5nIGNvcHkpCkBA
IC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IGNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCopIGNvbnN0ID0gMDsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXllcigpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtQ0FMYXllcigpOwogCiAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklE
IGxheWVySUQoKSBjb25zdCB7IHJldHVybiBtX2xheWVySUQ7IH0KIApAQCAtOTcsNyArOTcsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHBhc3NlcyB0aGUgbGF5ZXIgYXMgYSB2
b2lkKiByYXRoZXIgdGhhbiBhIFBsYXRmb3JtTGF5ZXIgYmVjYXVzZSBQbGF0Zm9ybUxheWVyCiAg
ICAgLy8gaXMgZGVmaW5lZCBkaWZmZXJlbnRseSBmb3IgT2JqIEMgYW5kIEMrKy4gVGhpcyBhbGxv
d3MgY2FsbGVycyBmcm9tIGJvdGggbGFuZ3VhZ2VzLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllcih2b2lkKiBwbGF0Zm9ybUxheWVyKTsK
KyAgICBzdGF0aWMgUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZv
cm1MYXllcik7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAKQEAgLTI1MSwxNCArMjUxLDE0IEBAIHB1
YmxpYzoKICAgICAgICAgCiAgICAgLy8gRnVuY3Rpb25zIGFsbG93cyB1cyB0byBzaGFyZSBpbXBs
ZW1lbnRhdGlvbiBhY3Jvc3MgV2ViVGlsZWRMYXllciBhbmQgV2ViTGF5ZXIKICAgICBzdGF0aWMg
UmVwYWludFJlY3RMaXN0IGNvbGxlY3RSZWN0c1RvUGFpbnQoQ0dDb250ZXh0UmVmLCBQbGF0Zm9y
bUNBTGF5ZXIqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBkcmF3TGF5ZXJDb250
ZW50cyhDR0NvbnRleHRSZWYsIFBsYXRmb3JtQ0FMYXllciosIFJlcGFpbnRSZWN0TGlzdCYgZGly
dHlSZWN0cyk7CisgICAgc3RhdGljIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVm
LCBQbGF0Zm9ybUNBTGF5ZXIqLCBSZXBhaW50UmVjdExpc3QmIGRpcnR5UmVjdHMpOwogICAgIHN0
YXRpYyB2b2lkIGRyYXdSZXBhaW50SW5kaWNhdG9yKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxh
eWVyKiwgaW50IHJlcGFpbnRDb3VudCwgQ0dDb2xvclJlZiBjdXN0b21CYWNrZ3JvdW5kQ29sb3Ip
OwogICAgIHN0YXRpYyBDR1JlY3QgZnJhbWVGb3JMYXllcihjb25zdCBQbGF0Zm9ybUxheWVyKik7
CiAKICAgICB2b2lkIG1vdmVUb0xheWVyUG9vbCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgUGxhdGZvcm1DQUxheWVyKExheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBvd25lcik7CisgICAgUGxhdGZvcm1DQUxheWVyKExheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVy
Q2xpZW50KiBvd25lcik7CiAKICAgICB2aXJ0dWFsIExheWVyUG9vbCYgbGF5ZXJQb29sKCk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJl
bmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
RGF0YUZpbGVSZWZlcmVuY2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMzksMTEgKzM5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKTsKKyAgICB2aXJ0dWFsIH5CbG9iRGF0
YUZpbGVSZWZlcmVuY2UoKTsKIAogICAgIHZvaWQgc3RhcnRUcmFja2luZ01vZGlmaWNhdGlvbnMo
KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFN0cmluZyYgcGF0aCgpOworICAgIGNvbnN0
IFN0cmluZyYgcGF0aCgpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKCk7CiAgICAgZG91
YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSgpOwogCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcmV2b2tlRmlsZUFjY2VzcygpOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0
aCk7CisgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1FTlQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgJKHJldmlzaW9uIDE4MDI0NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Js
b2JSZWdpc3RyeUltcGwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QmxvYlJlZ2lzdHJ5KCk7CisgICAgdmlydHVhbCB+
QmxvYlJlZ2lzdHJ5KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAko
cmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV0VC
Q09SRV9FWFBPUlQgQmxvYlJlZ2lzdHJ5SW1wbCBmaQogcHVibGljOgogICAgIHZpcnR1YWwgfkJs
b2JSZWdpc3RyeUltcGwoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhKiBnZXRCbG9i
RGF0YUZyb21VUkwoY29uc3QgVVJMJikgY29uc3Q7CisgICAgQmxvYkRhdGEqIGdldEJsb2JEYXRh
RnJvbVVSTChjb25zdCBVUkwmKSBjb25zdDsKIAogICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0
IEBAIGNsYXNzIERhdGFiYXNlQXV0aG9yaXplcjsKIGNsYXNzIFNRTGl0ZVN0YXRlbWVudDsKIGNs
YXNzIFNRTGl0ZVRyYW5zYWN0aW9uOwogCi1leHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdERvbmU7
CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdERvbmU7CiBleHRlcm4g
Y29uc3QgaW50IFNRTFJlc3VsdEVycm9yOwotZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRPazsK
LWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Um93OworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNv
bnN0IGludCBTUUxSZXN1bHRPazsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBpbnQgU1FM
UmVzdWx0Um93OwogZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWE7CiBleHRlcm4gY29u
c3QgaW50IFNRTFJlc3VsdEZ1bGw7CiBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdEludGVycnVw
dDsKLWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29uc3RyYWludDsKK1dFQkNPUkVfRVhQT1JU
IGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29uc3RyYWludDsKIAogY2xhc3MgU1FMaXRlRGF0
YWJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNRTGl0ZURhdGFiYXNlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCShyZXZpc2lvbiAxODAy
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsOCArNjIsOCBAQCBzdHJ1Y3QgU2Nyb2xsQWxpZ25tZW50IHsKICAgICBz
dGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNj
cm9sbEFsaWdubWVudCBhbGlnbkNlbnRlcklmTmVlZGVkOwotICAgIHN0YXRpYyBjb25zdCBTY3Jv
bGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJZk5lZWRlZDsKLSAgICBzdGF0aWMgY29uc3QgU2Nyb2xs
QWxpZ25tZW50IGFsaWduQ2VudGVyQWx3YXlzOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBj
b25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJZk5lZWRlZDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduQ2VudGVyQWx3YXlzOwogICAg
IHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub3BBbHdheXM7CiAgICAgc3RhdGlj
IGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblJpZ2h0QWx3YXlzOwogICAgIHN0YXRpYyBjb25z
dCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25MZWZ0QWx3YXlzOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IHN0YXRpYyBjb25zdCBVQ2hhciBhc2NpaUxpbmVCcmVha1RhYmxlRmkKIHN0YXRpYyBjb25zdCBV
Q2hhciBhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgPSAxMjc7CiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgYXNjaWlMaW5lQnJlYWtUYWJsZUNvbHVtbkNvdW50ID0gKGFzY2lpTGluZUJyZWFrVGFi
bGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFibGVGaXJzdENoYXIpIC8gOCArIDE7CiAKLWV4
dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGFzY2lpTGluZUJyZWFrVGFibGVbXVthc2NpaUxpbmVC
cmVha1RhYmxlQ29sdW1uQ291bnRdOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IHVuc2ln
bmVkIGNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZVtdW2FzY2lpTGluZUJyZWFrVGFibGVDb2x1bW5D
b3VudF07CiAKIGVudW0gY2xhc3MgTkJTUEJlaGF2aW9yIHsKICAgICBJZ25vcmVOQlNQLApJbmRl
eDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMjQ3KQorKysgU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDItMTcgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVw
YXJlIHRvIHVzZSBXRUJDT1JFX0VYUE9SVCBvbiBXaW5kb3dzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNzM1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZy5o
OgorICAgICAgICAqIFdlYktpdENPTUFQSS5oOgorICAgICAgICAqIFdlYktpdERMTC5jcHA6Cisg
ICAgICAgIChzaHV0RG93bldlYktpdCk6CisgICAgICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIG1h
Y3Jvcy4KKwogMjAxNS0wMi0wOSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5l
ZHU+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgSW5z
cGVjdG9yIHByZWZpeGVzIGZyb20gY2xhc3MgbmFtZXMgaW4gSW5zcGVjdG9yIG5hbWVzcGFjZQpJ
bmRleDogU291cmNlL1dlYktpdC93aW4vQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZy5oCShyZXZp
c2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DRkRpY3Rpb25hcnlQcm9wZXJ0eUJh
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKTsKIAogICAgIHZvaWQgc2V0RGljdGlv
bmFyeShDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpOwotICAgIENGTXV0YWJsZURp
Y3Rpb25hcnlSZWYgZGljdGlvbmFyeSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIENGTXV0
YWJsZURpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENG
RGljdGlvbmFyeVByb3BlcnR5QmFnKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRD
T01BUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRDT01BUEkuaAko
cmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViS2l0Q09NQVBJLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgZXh0ZXJuICJDIiB7CiAKIC8vIENhbGxlcnMg
c2hvdWxkIHVzZSB0aGlzIEFQSSBpbnN0ZWFkIG9mIENvQ3JlYXRlSW5zdGFuY2UgdG8gaW5zdGFu
dGlhdGUgV2ViS2l0IENPTSBjbGFzc2VzLgogLy8gVGhpcyBieXBhc3NlcyBDb0NyZWF0ZUluc3Rh
bmNlIGVudGlyZWx5LCBzbyByZWdpc3RyeSBrZXlzIGFuZCBpc29sYXRlZCBDT00gbWFuaWZlc3Rz
IGFyZW4ndCBuZWVkZWQuCi1IUkVTVUxUIFdlYktpdENyZWF0ZUluc3RhbmNlKFJFRkNMU0lELCBJ
VW5rbm93biogcFVua091dGVyLCBSRUZJSUQsIHZvaWQqKiBwcHZPYmplY3QpOworV0VCQ09SRV9F
WFBPUlQgSFJFU1VMVCBXZWJLaXRDcmVhdGVJbnN0YW5jZShSRUZDTFNJRCwgSVVua25vd24qIHBV
bmtPdXRlciwgUkVGSUlELCB2b2lkKiogcHB2T2JqZWN0KTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246799</attachid>
            <date>2015-02-17 21:33:48 -0800</date>
            <delta_ts>2015-02-17 21:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141735-20150217213341.patch</filename>
            <type>text/plain</type>
            <size>75692</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDI1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAyLTE3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJlcGFyZSB0
byB1c2UgV0VCQ09SRV9FWFBPUlQgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaDoK
KyAgICAgICAgKiBwYWdlL0RhdGFiYXNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1VSTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuaDoKKyAgICAgICAgQWRkIGFuZCBtb3ZlIHNv
bWUgV0VCQ09SRV9FWFBPUlQgbWFjcm9zLgorCiAyMDE1LTAyLTE3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4MDIyNCk6IFJlbW92
ZSB1bnVzZWQgZ2VuZXJhdGUtZXhwb3J0LWZpbGUgc2NyaXB0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgR0NDb250cm9sbGVy
IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0NDb250cm9sbGVyKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgICAgIGZyaWVuZCBHQ0NvbnRyb2xsZXImIGdjQ29udHJvbGxl
cigpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCBmcmllbmQgR0NDb250cm9sbGVyJiBnY0NvbnRy
b2xsZXIoKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnYXJi
YWdlQ29sbGVjdFNvb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1cmU+PiBKU0RPTVN0
cnVjdHVyZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBK
U0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0Pj4gSlNET01Db25zdHJ1Y3Rvck1hcDsKIAot
ICAgIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0IDogcHVibGljIEpTQzo6SlNHbG9iYWxPYmplY3Qg
eworICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NR2xvYmFsT2JqZWN0IDogcHVibGljIEpT
Qzo6SlNHbG9iYWxPYmplY3QgewogICAgICAgICB0eXBlZGVmIEpTQzo6SlNHbG9iYWxPYmplY3Qg
QmFzZTsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0cnVjdCBKU0RPTUdsb2JhbE9iamVjdERh
dGE7CkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNET01T
dHJ1Y3R1cmVNYXAmIHN0cnVjdHVyZXMoKSB7IHJldHVybiBtX3N0cnVjdHVyZXM7IH0KICAgICAg
ICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKCkgeyByZXR1cm4gbV9jb25zdHJ1
Y3RvcnM7IH0KIAotICAgICAgICBXRUJDT1JFX0VYUE9SVCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKIAogICAgICAgICAvLyBN
YWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KICAgICAgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHRoaXM7IH0KQEAgLTY4LDcgKzY4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7
IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKyAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBpbmZvKCkgeyByZXR1cm4gJnNfaW5mbzsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC04MDEsNyArODAx
LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpT
RGljdGlvbmFyeSIpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGlu
dGVyZmFjZSwgIkV2ZW50Iik7CiAKICAgICAjIENsYXNzIGRlY2xhcmF0aW9uCi0gICAgcHVzaChA
aGVhZGVyQ29udGVudCwgImNsYXNzICRjbGFzc05hbWUgOiBwdWJsaWMgJHBhcmVudENsYXNzTmFt
ZSB7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgV0VCQ09SRV9FWFBPUlQg
JGNsYXNzTmFtZSA6IHB1YmxpYyAkcGFyZW50Q2xhc3NOYW1lIHtcbiIpOwogCiAgICAgIyBTdGF0
aWMgY3JlYXRlIG1ldGhvZHMKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7
CkBAIC04NTgsNyArODU4LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0gZWxzaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdMaXN0IikgewogICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b1dy
YXBwZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyAkaW1wbFR5cGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkaW1wbFR5cGUqIHRvV3JhcHBl
ZChKU0M6OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTkxNSw3ICs5MTUs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUi
KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bztcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InB1YmxpYzpcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH1cblxuIik7CiAg
ICAgfSBlbHNlIHsKQEAgLTE5MzYsOSArMTkzNiw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCVjb25kaXRpb25hbHMsICRqdXN0
R2VuZXJhdGVWYWx1ZUFycmF5KTsKIAogICAgIGlmICgkanVzdEdlbmVyYXRlVmFsdWVBcnJheSkg
ewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZh
Y2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBc
IiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsKICAgICB9
IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJ
bnRlcmZhY2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJv
dG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9
O1xuXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtj
bGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Q
cm90b3R5cGVcIiwgJkJhc2U6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CiAgICAg
fQogCiAgICAgaWYgKFByb3RvdHlwZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgkaW50ZXJm
YWNlKSkgewpAQCAtMTk5OSw3ICsxOTk5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICB9CiAKICAgICAjIC0gSW5pdGlhbGl6ZSBzdGF0aWMgQ2xhc3NJbmZvIG9iamVjdAotICAg
IHB1c2goQGltcGxDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICRjbGFz
c05hbWUiIC4gIjo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNl
OjpzX2luZm8sICIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICRj
bGFzc05hbWUiIC4gIjo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZC
YXNlOjpzX2luZm8sICIpOwogCiAgICAgaWYgKCRudW1JbnN0YW5jZUF0dHJpYnV0ZXMgPiAwKSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJiR7Y2xhc3NOYW1lfVRhYmxlIik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0QWN0aXZlCiAgICAgeyAicG9zdE1lc3NhZ2UiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKSwgKGlu
dHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RBY3Rp
dmVET01PYmplY3RQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmplY3RQcm90
b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lk
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6ZmluCiAgICAgcmVpZnlTdGF0aWNQcm9w
ZXJ0aWVzKHZtLCBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9N
T2JqZWN0OjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEFj
dGl2ZURPTU9iamVjdCkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RBY3RpdmVET01PYmplY3Q6
OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
QWN0aXZlRE9NT2JqZWN0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9N
T2JqZWN0KSB9OwogCiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OkpTVGVzdEFjdGl2ZURPTU9iamVj
dChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgJ
KHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVj
dCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKQEAgLTM4LDcgKzM4LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSk7CisgICAgc3RhdGljIFRlc3RBY3RpdmVET01PYmplY3QqIHRvV3JhcHBlZChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEFj
dGl2ZURPTU9iamVjdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjIsNyArMTIyLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEN1c3RvbQog
ICAgIHsgImFub3RoZXJGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9LAogfTsK
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBKU1Rl
c3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6ZgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGll
cyh2bSwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMp
OwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXI6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RDdXN0b21OYW1lZEdldHRlclRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcikgfTsKIAogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCiAgICAg
OiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xh
c3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgOiBwdWJsaWMgSlNET01X
cmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI+JiYgaW1wbCkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEN1
c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dEV2ZW50QwogICAgIHsgImF0dHIyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNj
ZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogewpAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1
Y3RvclByb3RvdHlwZTo6ZmkKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JF
X0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3IpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3Ip
IH07CiAKIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNEaWN0aW9uYXJ5OwogCi1jbGFzcyBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJD
T1JFX0VYUE9SVCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBlciB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4m
JiBpbXBsKQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1
Y3RvciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RFdmVudENvbnN0
cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdEV2ZW50VAogICAgIHsgImRpc3BhdGNoRXZlbnQiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudCksIChpbnRwdHJfdCkgKDEpIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldFByb3RvdHlwZSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RFdmVudFRhcmdldFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTE0Miw3
ICsxNDIsNyBAQCB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpmaW5pc2hDCiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZVRhYmxl
VmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RFdmVudFRhcmdldDo6c19pbmZvID0geyAiVGVzdEV2ZW50VGFyZ2V0IiwgJkJhc2U6OnNfaW5m
bywgJkpTVGVzdEV2ZW50VGFyZ2V0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZl
bnRUYXJnZXQpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXQ6OnNfaW5mbyA9
IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RFdmVudFRhcmdldFRh
YmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0KSB9OwogCiBKU1Rlc3RF
dmVudFRhcmdldDo6SlNUZXN0RXZlbnRUYXJnZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRUYXJnZXQ+JiYgaW1wbCkK
ICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEV2
ZW50VGFyZ2V0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBK
U1Rlc3RFdmVudFRhcmdldCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50VGFyZ2V0KiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RFdmVudFRhcmdldD4mJiBpbXBsKQpAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdl
dFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3
ICsxMTksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXhjZXB0CiAgICAg
eyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFeGNlcHRp
b25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXhjZXB0aW9uUHJvdG90
eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRp
b25Qcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0RXhjZXB0aW9uUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0x
MjcsNyArMTI3LDcgQEAgdm9pZCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OmZpbmlzaENyZQog
ICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlVGFi
bGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEV4Y2VwdGlvbjo6c19pbmZvID0geyAiVGVzdEV4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RFeGNlcHRpb25UYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNlcHRp
b24pIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uOjpzX2luZm8gPSB7ICJUZXN0
RXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEV4Y2VwdGlvblRhYmxlLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbikgfTsKIAogSlNUZXN0RXhjZXB0aW9uOjpKU1Rl
c3RFeGNlcHRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9uPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIo
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RFeGNlcHRpb24gOiBwdWJsaWMgSlNET01XcmFw
cGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEV4Y2VwdGlvbiA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAg
c3RhdGljIEpTVGVzdEV4Y2VwdGlvbiogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9uPiYmIGlt
cGwpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RFeGNlcHRpb24qIHRvV3Jh
cHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RFeGNlcHRpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5jcHAJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RH
ZW5lcmEKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJDT1JFX0VY
UE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90
b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZToKICAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6c19pbmZvID0g
eyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUpIH07CiAKIEpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKQEAg
LTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRv
V3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAzLDcgKzQwMyw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJ
bnRlcmYKICNlbmRpZgogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEludGVyZmFjZVByb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdEludGVyZmFjZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtNDExLDcg
KzQxMSw3IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpmaW5pc2hDcmUKICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJ
bnRlcmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAmSlNU
ZXN0SW50ZXJmYWNlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZTo6c19pbmZvID0geyAiVGVzdEludGVy
ZmFjZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RJbnRlcmZhY2UpIH07CiAKIEpTVGVzdEludGVyZmFjZTo6SlNUZXN0SW50
ZXJmYWNlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdEludGVyZmFjZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMTgw
MjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0SW50ZXJmYWNlIDogcHVibGljIEpTRE9NV3JhcHBlciB7
CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFw
cGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3RJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEludGVyZmFjZT4mJiBpbXBsKQpA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
OSw3ICsxMDksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TWVkaWFRCiAg
ICAgeyAibWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQ
T1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMTcs
NyArMTE3LDcgQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eQogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpzX2luZm8gPSB7ICJUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcikgfTsKIAogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyAr
MTczLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkQwogICAgIHsg
ImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFtZWRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFt
ZWRDb25zdHJ1Y3RvclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRD
b25zdHJ1Y3RvclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xODEs
NyArMTgxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaQogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25z
dHJ1Y3RvcikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0TmFtZWRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvcikgfTsKIAogSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvcjo6SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYm
IGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3JhcHBl
ciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsK
ICAgICBzdGF0aWMgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGlj
IFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0
b3IoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE5vZGVQcgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Tm9kZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3ROb2RlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZVByb3RvdHlw
ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZVByb3Rv
dHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0Tm9kZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0Tm9kZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBKU1Rlc3RO
b2RlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2
bSwgSlNUZXN0Tm9kZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVf
RVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZSkgfTsKK2Nv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZSkgfTsKIAogSlNUZXN0Tm9k
ZTo6SlNUZXN0Tm9kZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPFRlc3ROb2RlPiYmIGltcGwpCiAgICAgOiBKU05vZGUoc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAkocmV2aXNpb24g
MTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTTm9kZSBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROb2RlKiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3ROb2RlPiYmIGltcGwpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3Bw
CShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3
ICsxMzEsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Tm9uZGV0CiAgICAg
eyAibm9uZGV0ZXJtaW5pc3RpY1plcm9BcmdGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vbmRl
dGVybWluaXN0aWNQcm90b3R5cGVGdW5jdGlvbk5vbmRldGVybWluaXN0aWNaZXJvQXJnRnVuY3Rp
b24pLCAoaW50cHRyX3QpICgwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROb25k
ZXRlcm1pbmlzdGljUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROb25kZXRl
cm1pbmlzdGljUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5vbmRl
dGVybWluaXN0aWNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzOSw3
ICsxMzksNyBAQCB2b2lkIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGU6OmZpCiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBl
VGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnNfaW5mbyA9IHsgIlRlc3ROb25kZXRlcm1pbmlzdGlj
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROb25kZXRlcm1p
bmlzdGljKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnNfaW5m
byA9IHsgIlRlc3ROb25kZXRlcm1pbmlzdGljIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROb25kZXRlcm1pbmlzdGljKSB9OwogCiBKU1Rlc3ROb25kZXRlcm1p
bmlzdGljOjpKU1Rlc3ROb25kZXRlcm1pbmlzdGljKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vbmRldGVybWluaXN0aWM+JiYg
aW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0
aWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEpTVGVzdE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROb25k
ZXRlcm1pbmlzdGljPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRl
c3ROb25kZXRlcm1pbmlzdGljKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMg
VGVzdE5vbmRldGVybWluaXN0aWMqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2Jq
UHJvCiAgICAgeyAiYW55IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Bbnkp
LCAoaW50cHRyX3QpICgyKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9iamVjdFByb3RvdHlwZSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqUHJvdG90eXBlKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9i
amVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0T2JqUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbigKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVz
dE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RPYmo6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3QiLCAmQmFzZTo6
c19pbmZvLCAmSlNUZXN0T2JqVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZC
YXNlOjpzX2luZm8sICZKU1Rlc3RPYmpUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RP
YmopIH07CiAKIEpTVGVzdE9iajo6SlNUZXN0T2JqKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE9iaj4mJiBpbXBsKQogICAgIDog
SlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNp
b24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0T2JqIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RPYmogOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RPYmoq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdE9iaj4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBUZXN0T2JqKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVz
dE9iaiogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKICAgICB+SlNUZXN0T2JqKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0T3ZlcmxvCiAgICAgeyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8
IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKSB9Owog
CiB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKIHsKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAot
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnNfaW5mbyA9
IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKSB9OwogCiBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1dyYXBwZWQoSlNDOjpKU1Zh
bHVlKTsKKyAgICBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvV3JhcHBlZChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAg
ICB+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2aXNp
b24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U2VyaWFs
CiAgICAgeyAiY2FjaGVkUmVhZG9ubHlWYWx1ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
YWNoZWRSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5m
byA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lk
IEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjCiAgICAgcmVpZnlTdGF0aWNQcm9w
ZXJ0aWVzKHZtLCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpzX2luZm8gPSB7ICJUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpIH07Citjb25z
dCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpzX2luZm8g
PSB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UpIH07CiAKIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT4mJiBpbXBsKQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAg
ICBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9XcmFwcGVkKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQsNyArMjA0LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFR5cGVkZQog
ICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDApIH0sCiB9Owog
Ci1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmc1Byb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUpIH07Citjb25zdCBDbGFz
c0luZm8gSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmc1By
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlw
ZWRlZnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIEpTVGVzdFR5cGVk
ZWZzUHJvdG90eXBlOjpmaW5pc2hDcmVhCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBK
U1Rlc3RUeXBlZGVmc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVf
RVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmczo6c19pbmZvID0geyAiVGVzdFR5
cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdFR5cGVkZWZzVGFibGUsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0VHlwZWRlZnMpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlwZWRl
ZnM6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmcyIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RUeXBl
ZGVmc1RhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzKSB9OwogCiBKU1Rl
c3RUeXBlZGVmczo6SlNUZXN0VHlwZWRlZnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdFR5cGVkZWZzIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RUeXBlZGVmcyA6IHB1
YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJh
c2U7CiAgICAgc3RhdGljIEpTVGVzdFR5cGVkZWZzKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RUeXBlZGVm
cz4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0VHlwZWRlZnMq
IHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0VHlwZWRlZnMqIHRvV3Jh
cHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAg
ICAgfkpTVGVzdFR5cGVkZWZzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNhdHRyaWJ1dGVQCiAgICAgeyAicmVhZG9ubHkiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNhdHRyaWJ1dGVSZWFkb25seSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNhdHRyaWJ1dGVQcm90b3R5
cGU6OnNfaW5mbyA9IHsgImF0dHJpYnV0ZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNhdHRyaWJ1dGVQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNhdHRyaWJ1dGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgImF0dHJpYnV0ZVByb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNhdHRyaWJ1dGVQcm90b3R5
cGUpIH07CiAKIHZvaWQgSlNhdHRyaWJ1dGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIHsKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEpTYXR0cmlidXRlUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU2F0dHJpYnV0ZVByb3Rv
dHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNz
SW5mbyBKU2F0dHJpYnV0ZTo6c19pbmZvID0geyAiYXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U2F0dHJpYnV0ZTo6c19pbmZvID0geyAiYXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZSkgfTsKIAogSlNhdHRyaWJ1dGU6OkpTYXR0cmli
dXRlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWY8YXR0cmlidXRlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBK
U2F0dHJpYnV0ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
SlNhdHRyaWJ1dGUgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU2F0dHJpYnV0ZSogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxhdHRyaWJ1dGU+JiYgaW1wbCkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYXR0
cmlidXRlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgYXR0cmlidXRlKiB0
b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTYXR0cmlidXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3Jl
YWRvbmx5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU3JlYWRvbmx5UHIKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRF
bnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzcmVhZG9ubHlDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1X
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seVByb3RvdHlwZTo6c19pbmZv
ID0geyAicmVhZG9ubHlQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTcmVhZG9ubHlQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNyZWFkb25s
eVByb3RvdHlwZTo6c19pbmZvID0geyAicmVhZG9ubHlQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTcmVhZG9ubHlQcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNyZWFkb25seVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTA5LDcg
KzEwOSw3IEBAIHZvaWQgSlNyZWFkb25seVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24KICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTcmVhZG9ubHlQcm90b3R5cGVUYWJsZVZhbHVlcywg
KnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seTo6
c19pbmZvID0geyAicmVhZG9ubHkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTcmVhZG9ubHkpIH07Citjb25zdCBDbGFzc0luZm8gSlNyZWFkb25seTo6c19pbmZvID0g
eyAicmVhZG9ubHkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTcmVh
ZG9ubHkpIH07CiAKIEpTcmVhZG9ubHk6OkpTcmVhZG9ubHkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFkb25seT4mJiBpbXBsKQog
ICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
CShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNyZWFkb25seSA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNyZWFkb25seSA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGlj
IEpTcmVhZG9ubHkqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8cmVhZG9ubHk+JiYgaW1wbCkKQEAgLTM4LDcgKzM4
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgcmVhZG9ubHkqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyByZWFkb25seSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU3JlYWRvbmx5KCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCShyZXZpc2lvbiAxODAyNDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgUnVudGltZU1ldGhv
ZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRp
bWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKQEAgLTU4LDEyICs1OCwxMiBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUnVudGltZU1ldGhvZChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2QqKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7CisgICAgUnVu
dGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2Qq
KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Cisg
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHJl
dmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVz
cGFjZSBCaW5kaW5ncyB7CiAKLWNsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVj
dGlibGVPYmplY3QgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0
aWJsZU9iamVjdCBCYXNlOwogCkBAIC00MywxNiArNDMsMTYgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gb2JqZWN0OwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDZWxsKik7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCos
IEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEpTVmFsdWUg
ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0
aXZlVHlwZSk7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CisgICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApAQCAtNzMsOCArNzMsOCBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdChW
TSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CisgICAgUnVudGltZU9iamVjdChWTSYsIFN0cnVj
dHVyZSosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
Jik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2Vf
bmFtZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwJ
KHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4p
KSB7CiAgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRl
cnMpOwogCiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJXBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRu
YW1lKVxuIjsKKyAgICAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRu
YW1lKVxuIjsKICAgICB9CiAKICAgICBwcmludEluaXQoJEYsIDApOwpAQCAtNzE2LDE2ICs3MTYs
MTYgQEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFj
ZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCiAgICAgcHJpbnQg
RiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYgImV4dGVybiBjb25zdCBXVEY6OkF0b21p
Y1N0cmluZyAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7Cisg
ICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IFdURjo6QXRvbWljU3RyaW5n
ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxuIjsKIAogICAgIGlm
IChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIFRhZ3NcbiI7Ci0gICAgICAg
IHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OiRwYXJhbWV0ZXJze25hbWVz
cGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIsIFwlYWxsVGFncyk7CisgICAgICAgIHByaW50TWFj
cm9zKCRGLCAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OiRwYXJhbWV0ZXJz
e25hbWVzcGFjZX1RdWFsaWZpZWROYW1lIiwgIlRhZyIsIFwlYWxsVGFncyk7CiAgICAgfQogCiAg
ICAgaWYgKGtleXMgJWFsbEF0dHJzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIEF0dHJpYnV0ZXNc
biI7Ci0gICAgICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OlF1YWxp
ZmllZE5hbWUiLCAiQXR0ciIsIFwlYWxsQXR0cnMpOworICAgICAgICBwcmludE1hY3JvcygkRiwg
IldFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lIiwgIkF0
dHIiLCBcJWFsbEF0dHJzKTsKICAgICB9CiAgICAgcHJpbnQgRiAiI2VuZGlmXG5cbiI7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgJKHJldmlzaW9uIDE4MDI0NikKKysr
IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAt
NTcsNyArNTcsNyBAQCBlbnVtIGNsYXNzIFBydW5pbmdSZWFzb247CiAKIHR5cGVkZWYgVmVjdG9y
PFJlZjxIaXN0b3J5SXRlbT4+IEhpc3RvcnlJdGVtVmVjdG9yOwogCi1leHRlcm4gdm9pZCAoKm5v
dGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCkoSGlzdG9yeUl0ZW0qKTsKK1dFQkNPUkVfRVhQT1JUIGV4
dGVybiB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSopOwogCiBj
bGFzcyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7CiAgICAg
ZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAyLDcgKzQwMiw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIG1fcXVpY2tSZWRpcmVjdENvbWluZzsKICAgICBib29sIG1fc2VudFJlZGlyZWN0Tm90aWZp
Y2F0aW9uOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOworICAg
IGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOwogCiAgICAgU3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJl
cjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgJKHJldmlzaW9u
IDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCwxMSArNDAsMTEgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9hZGVyU3RyYXRlZ3kgewogcHVibGljOgotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hl
ZHVsZXIoKTsKKyAgICB2aXJ0dWFsIFJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2Fk
U2NoZWR1bGVyKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENy
ZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9y
PGNoYXI+JiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3ks
IFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgQmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVn
aXN0cnkoKTsKKyAgICB2aXJ0dWFsIEJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7
CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2FkZXJTdHJhdGVneSgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCShyZXZpc2lvbiAx
ODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgU3VicmVzb3VyY2VMb2FkZXI7
CiBjbGFzcyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFJlc291cmNlTG9hZFNjaGVkdWxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxl
cigpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJl
c291cmNlTG9hZFNjaGVkdWxlcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBQYXNz
UmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVsZVN1YnJlc291cmNlTG9hZChGcmFtZSos
IENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VM
b2FkZXJPcHRpb25zJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBQYXNzUmVmUHRyPE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUq
LCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHJl
dmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICBQYXNz
UmVmUHRyPEljb25SZWNvcmQ+IGdldE9yQ3JlYXRlSWNvblJlY29yZChjb25zdCBTdHJpbmcmIGlj
b25VUkwpOwogICAgIFBhZ2VVUkxSZWNvcmQqIGdldE9yQ3JlYXRlUGFnZVVSTFJlY29yZChjb25z
dCBTdHJpbmcmIHBhZ2VVUkwpOwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbV9pc0Vu
YWJsZWQ7CisgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZDsKIAogICAgIG11dGFibGUgTXV0ZXggbV9zeW5jTG9jazsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFN5bmNocm9u
b3VzIGNhbGxzIHVzZWQgaW50ZXJuYWxseSBieSBXZWJDb3JlLgogICAgIC8vIFVzYWdlIHNob3Vs
ZCBiZSByZXBsYWNlZCBieSBhc3luY2hyb25vdXMgY2FsbHMuCi0gICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCBTdHJpbmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJ
Y29uVVJMKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBJY29u
TG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJp
bmcmLCBEb2N1bWVudExvYWRlciopIHsgcmV0dXJuIEljb25Mb2FkTm87IH0KICAgICB2aXJ0dWFs
IEltYWdlKiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IElu
dFNpemUmKSB7IHJldHVybiAwOyB9CkBAIC0yMDAsNyArMjAwLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wg
b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbElj
b25zKCkgeyB9CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChJY29uRGF0YWJhc2VDbGllbnQqKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgaXNPcGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIFN0cmluZyBkYXRhYmFzZVBhdGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBk
YXRhYmFzZVBhdGgoKSBjb25zdDsKIAogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9E
YXRhYmFzZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EYXRh
YmFzZVByb3ZpZGVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGF0YWJhc2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNz
IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBEYXRh
YmFzZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VQcm92aWRlcj4gewogcHVi
bGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRhdGFiYXNlUHJvdmlkZXIoKTsKKyAg
ICB2aXJ0dWFsIH5EYXRhYmFzZVByb3ZpZGVyKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeUJhY2tlbmQo
KTsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVmUHRyPElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9y
eUJhY2tlbmQoKSA9IDA7CiAKICAgICBib29sIG1fZGlkQ3JlYXRlSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFj
ZT4gbV9iYWNrZW5kSW50ZXJmYWNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NzAs
NyArNDcwLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxQb2ludGVyTG9ja0NvbnRyb2xsZXI+IG1fcG9pbnRlckxvY2tDb250
cm9sbGVyOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOworICAgIFJlZlB0cjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKIAogICAgIGNvbnN0IFJlZlB0cjxTZXR0
aW5ncz4gbV9zZXR0aW5nczsKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3Jlc3NUcmFj
a2VyPiBtX3Byb2dyZXNzOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQYWdlQ29uc29sZUNsaWVudChQYWdlJik7CiAgICAgdmlydHVhbCB+UGFnZUNvbnNv
bGVDbGllbnQoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNob3VsZFBy
aW50RXhjZXB0aW9ucyhib29sKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlv
bnMoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7CiAK
ICAgICBzdGF0aWMgdm9pZCBtdXRlKCk7CiAgICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0
cjxQYWdlT3ZlcmxheT4gY3JlYXRlKENsaWVudCYsIE92ZXJsYXlUeXBlID0gT3ZlcmxheVR5cGU6
OlZpZXcpOwotICAgIHZpcnR1YWwgflBhZ2VPdmVybGF5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+UGFnZU92ZXJsYXkoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VPdmVybGF5
Q29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsNyBAQCB1aW50
NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKFdJTikKLVN0cmluZyBsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKK1dF
QkNPUkVfRVhQT1JUIFN0cmluZyBsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsK
IFN0cmluZyByb2FtaW5nVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpOwogI2VuZGlmCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNyAr
ODIsOSBAQCBXRUJDT1JFX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMCiAKICN1bmRl
ZiBERUNMQVJFX0xPR19DSEFOTkVMCiAKKyNpZiAhUExBVEZPUk0oV0lOKQogICAgIFdFQkNPUkVf
RVhQT1JUIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ05vdFlldEltcGxlbWVudGVkOworI2VuZGlm
CiAKICAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKTsKICAgICBib29sIGlzTG9nQ2hhbm5lbEVu
YWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01lbW9yeVByZXNzdXJlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgY2hhciogbV9sb2dT
dHJpbmc7CiAgICAgICAgIHNpemVfdCBtX2luaXRpYWxNZW1vcnk7CiAKLSAgICAgICAgc3RhdGlj
IGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgc19sb2dnaW5nRW5hYmxlZDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFRocmVhZEdsb2JhbERhdGEqIHNoYXJlZE1haW5UaHJlYWRT
dGF0aWNEYXRhOwogI2VuZGlmCi0gICAgICAgIGZyaWVuZCBUaHJlYWRHbG9iYWxEYXRhJiB0aHJl
YWRHbG9iYWxEYXRhKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBUaHJlYWRHbG9i
YWxEYXRhJiB0aHJlYWRHbG9iYWxEYXRhKCk7CiAgICAgfTsKIAogI2lmIFVTRShXRUJfVEhSRUFE
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsOSArMTU0LDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0RnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKLSAgICBmcmllbmQgYm9vbCBl
cXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBib29sIGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50
aWZpZXIoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CiAKLSAgICBmcmllbmQgYm9vbCBwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgZnJpZW5kIGJvb2wgcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYpOwogCiAgICAgdW5zaWduZWQgaG9zdFN0YXJ0KCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgaG9zdEVuZCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcs
NyArMTA3LDcgQEAgY2xhc3MgRm9udENhY2hlIHsKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEZvbnRDYWNoZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGZyaWVu
ZCBGb250Q2FjaGUmIGZvbnRDYWNoZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBGb250
Q2FjaGUmIGZvbnRDYWNoZSgpOwogCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQg
YnkgdGhlIHBsYXRmb3JtLgogICAgIFJlZlB0cjxGb250PiBzeXN0ZW1GYWxsYmFja0ZvckNoYXJh
Y3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9udCogb3JpZ2luYWxGb250RGF0
YSwgYm9vbCBpc1BsYXRmb3JtRm9udCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5n
dGgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUxheWVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCSh3b3JraW5nIGNvcHkpCkBA
IC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IGNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCopIGNvbnN0ID0gMDsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXllcigpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtQ0FMYXllcigpOwogCiAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklE
IGxheWVySUQoKSBjb25zdCB7IHJldHVybiBtX2xheWVySUQ7IH0KIApAQCAtOTcsNyArOTcsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHBhc3NlcyB0aGUgbGF5ZXIgYXMgYSB2
b2lkKiByYXRoZXIgdGhhbiBhIFBsYXRmb3JtTGF5ZXIgYmVjYXVzZSBQbGF0Zm9ybUxheWVyCiAg
ICAgLy8gaXMgZGVmaW5lZCBkaWZmZXJlbnRseSBmb3IgT2JqIEMgYW5kIEMrKy4gVGhpcyBhbGxv
d3MgY2FsbGVycyBmcm9tIGJvdGggbGFuZ3VhZ2VzLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllcih2b2lkKiBwbGF0Zm9ybUxheWVyKTsK
KyAgICBzdGF0aWMgUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZv
cm1MYXllcik7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAKQEAgLTI1MSwxNCArMjUxLDE0IEBAIHB1
YmxpYzoKICAgICAgICAgCiAgICAgLy8gRnVuY3Rpb25zIGFsbG93cyB1cyB0byBzaGFyZSBpbXBs
ZW1lbnRhdGlvbiBhY3Jvc3MgV2ViVGlsZWRMYXllciBhbmQgV2ViTGF5ZXIKICAgICBzdGF0aWMg
UmVwYWludFJlY3RMaXN0IGNvbGxlY3RSZWN0c1RvUGFpbnQoQ0dDb250ZXh0UmVmLCBQbGF0Zm9y
bUNBTGF5ZXIqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBkcmF3TGF5ZXJDb250
ZW50cyhDR0NvbnRleHRSZWYsIFBsYXRmb3JtQ0FMYXllciosIFJlcGFpbnRSZWN0TGlzdCYgZGly
dHlSZWN0cyk7CisgICAgc3RhdGljIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVm
LCBQbGF0Zm9ybUNBTGF5ZXIqLCBSZXBhaW50UmVjdExpc3QmIGRpcnR5UmVjdHMpOwogICAgIHN0
YXRpYyB2b2lkIGRyYXdSZXBhaW50SW5kaWNhdG9yKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxh
eWVyKiwgaW50IHJlcGFpbnRDb3VudCwgQ0dDb2xvclJlZiBjdXN0b21CYWNrZ3JvdW5kQ29sb3Ip
OwogICAgIHN0YXRpYyBDR1JlY3QgZnJhbWVGb3JMYXllcihjb25zdCBQbGF0Zm9ybUxheWVyKik7
CiAKICAgICB2b2lkIG1vdmVUb0xheWVyUG9vbCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgUGxhdGZvcm1DQUxheWVyKExheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBvd25lcik7CisgICAgUGxhdGZvcm1DQUxheWVyKExheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVy
Q2xpZW50KiBvd25lcik7CiAKICAgICB2aXJ0dWFsIExheWVyUG9vbCYgbGF5ZXJQb29sKCk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJl
bmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
RGF0YUZpbGVSZWZlcmVuY2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMzksMTEgKzM5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKTsKKyAgICB2aXJ0dWFsIH5CbG9iRGF0
YUZpbGVSZWZlcmVuY2UoKTsKIAogICAgIHZvaWQgc3RhcnRUcmFja2luZ01vZGlmaWNhdGlvbnMo
KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFN0cmluZyYgcGF0aCgpOworICAgIGNvbnN0
IFN0cmluZyYgcGF0aCgpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKCk7CiAgICAgZG91
YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSgpOwogCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcmV2b2tlRmlsZUFjY2VzcygpOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0
aCk7CisgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1FTlQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgJKHJldmlzaW9uIDE4MDI0NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Js
b2JSZWdpc3RyeUltcGwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QmxvYlJlZ2lzdHJ5KCk7CisgICAgdmlydHVhbCB+
QmxvYlJlZ2lzdHJ5KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAko
cmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV0VC
Q09SRV9FWFBPUlQgQmxvYlJlZ2lzdHJ5SW1wbCBmaQogcHVibGljOgogICAgIHZpcnR1YWwgfkJs
b2JSZWdpc3RyeUltcGwoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhKiBnZXRCbG9i
RGF0YUZyb21VUkwoY29uc3QgVVJMJikgY29uc3Q7CisgICAgQmxvYkRhdGEqIGdldEJsb2JEYXRh
RnJvbVVSTChjb25zdCBVUkwmKSBjb25zdDsKIAogICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0
IEBAIGNsYXNzIERhdGFiYXNlQXV0aG9yaXplcjsKIGNsYXNzIFNRTGl0ZVN0YXRlbWVudDsKIGNs
YXNzIFNRTGl0ZVRyYW5zYWN0aW9uOwogCi1leHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdERvbmU7
CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdERvbmU7CiBleHRlcm4g
Y29uc3QgaW50IFNRTFJlc3VsdEVycm9yOwotZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRPazsK
LWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Um93OworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNv
bnN0IGludCBTUUxSZXN1bHRPazsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBpbnQgU1FM
UmVzdWx0Um93OwogZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWE7CiBleHRlcm4gY29u
c3QgaW50IFNRTFJlc3VsdEZ1bGw7CiBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdEludGVycnVw
dDsKLWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29uc3RyYWludDsKK1dFQkNPUkVfRVhQT1JU
IGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0Q29uc3RyYWludDsKIAogY2xhc3MgU1FMaXRlRGF0
YWJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNRTGl0ZURhdGFiYXNlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCShyZXZpc2lvbiAxODAy
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsOCArNjIsOCBAQCBzdHJ1Y3QgU2Nyb2xsQWxpZ25tZW50IHsKICAgICBz
dGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNj
cm9sbEFsaWdubWVudCBhbGlnbkNlbnRlcklmTmVlZGVkOwotICAgIHN0YXRpYyBjb25zdCBTY3Jv
bGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJZk5lZWRlZDsKLSAgICBzdGF0aWMgY29uc3QgU2Nyb2xs
QWxpZ25tZW50IGFsaWduQ2VudGVyQWx3YXlzOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBj
b25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub0VkZ2VJZk5lZWRlZDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduQ2VudGVyQWx3YXlzOwogICAg
IHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25Ub3BBbHdheXM7CiAgICAgc3RhdGlj
IGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblJpZ2h0QWx3YXlzOwogICAgIHN0YXRpYyBjb25z
dCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25MZWZ0QWx3YXlzOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IHN0YXRpYyBjb25zdCBVQ2hhciBhc2NpaUxpbmVCcmVha1RhYmxlRmkKIHN0YXRpYyBjb25zdCBV
Q2hhciBhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgPSAxMjc7CiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgYXNjaWlMaW5lQnJlYWtUYWJsZUNvbHVtbkNvdW50ID0gKGFzY2lpTGluZUJyZWFrVGFi
bGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFibGVGaXJzdENoYXIpIC8gOCArIDE7CiAKLWV4
dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGFzY2lpTGluZUJyZWFrVGFibGVbXVthc2NpaUxpbmVC
cmVha1RhYmxlQ29sdW1uQ291bnRdOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IHVuc2ln
bmVkIGNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZVtdW2FzY2lpTGluZUJyZWFrVGFibGVDb2x1bW5D
b3VudF07CiAKIGVudW0gY2xhc3MgTkJTUEJlaGF2aW9yIHsKICAgICBJZ25vcmVOQlNQLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246800</attachid>
            <date>2015-02-17 21:37:49 -0800</date>
            <delta_ts>2015-02-18 13:37:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141735-20150217213742.patch</filename>
            <type>text/plain</type>
            <size>75178</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDI1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDE1LTAyLTE3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJlcGFyZSB0
byB1c2UgV0VCQ09SRV9FWFBPUlQgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaDoK
KyAgICAgICAgKiBwYWdlL0RhdGFiYXNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9i
RGF0YUZpbGVSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9TY3JvbGxCZWhhdmlvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5o
OgorICAgICAgICBBZGQgYW5kIG1vdmUgc29tZSBXRUJDT1JFX0VYUE9SVCBtYWNyb3MuCisKIDIw
MTUtMDItMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTgwMjI0KTogUmVtb3ZlIHVudXNlZCBnZW5lcmF0ZS1leHBvcnQtZmlsZSBz
Y3JpcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBHQ0NvbnRyb2xsZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShHQ0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgZnJpZW5k
IEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGZy
aWVuZCBHQ0NvbnRyb2xsZXImIGdjQ29udHJvbGxlcigpOwogCiAgICAgcHVibGljOgogICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdhcmJhZ2VDb2xsZWN0U29vbigpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAx
ODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmll
cjxKU0M6OlN0cnVjdHVyZT4+IEpTRE9NU3RydWN0dXJlTWFwOwogICAgIHR5cGVkZWYgSGFzaE1h
cDxjb25zdCBKU0M6OkNsYXNzSW5mbyosIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNPYmplY3Q+
PiBKU0RPTUNvbnN0cnVjdG9yTWFwOwogCi0gICAgY2xhc3MgSlNET01HbG9iYWxPYmplY3QgOiBw
dWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNE
T01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIHR5
cGVkZWYgSlNDOjpKU0dsb2JhbE9iamVjdCBCYXNlOwogICAgIHByb3RlY3RlZDoKICAgICAgICAg
c3RydWN0IEpTRE9NR2xvYmFsT2JqZWN0RGF0YTsKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcygpIHsgcmV0
dXJuIG1fc3RydWN0dXJlczsgfQogICAgICAgICBKU0RPTUNvbnN0cnVjdG9yTWFwJiBjb25zdHJ1
Y3RvcnMoKSB7IHJldHVybiBtX2NvbnN0cnVjdG9yczsgfQogCi0gICAgICAgIFdFQkNPUkVfRVhQ
T1JUIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dDsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0OwogCiAgICAgICAgIC8vIE1ha2UgYmluZGluZyBjb2RlIGdlbmVyYXRpb24gZWFz
aWVyLgogICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4g
dGhpczsgfQpAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgd29ybGRJc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ybGRJc05vcm1hbDsgfQogCiAg
ICAgcHJvdGVjdGVkOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOworICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19p
bmZvOwogCiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8q
IGluZm8oKSB7IHJldHVybiAmc19pbmZvOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTgwMjQ2KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTgwMSw3ICs4MDEsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBB
ZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgiSlNEaWN0aW9uYXJ5IikgaWYgJGNvZGVHZW5lcmF0b3It
PklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkaW50ZXJmYWNlLCAiRXZlbnQiKTsKIAogICAgICMgQ2xh
c3MgZGVjbGFyYXRpb24KLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJGNsYXNzTmFt
ZSA6IHB1YmxpYyAkcGFyZW50Q2xhc3NOYW1lIHtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJjbGFzcyBXRUJDT1JFX0VYUE9SVCAkY2xhc3NOYW1lIDogcHVibGljICRwYXJlbnRDbGFz
c05hbWUge1xuIik7CiAKICAgICAjIFN0YXRpYyBjcmVhdGUgbWV0aG9kcwogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKQEAgLTg1OCw3ICs4NTgsNyBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xp
c3QiKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvV3JhcHBlZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljICRpbXBsVHlwZSogdG9XcmFwcGVkKEpT
Qzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljICRpbXBsVHlwZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7XG4iKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtOTE1LDcgKzkxNSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90ZWN0ZWQ6XG4iKTsK
LSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBpbmZvKCkgeyBy
ZXR1cm4gJnNfaW5mbzsgfVxuXG4iKTsKICAgICB9IGVsc2UgewpAQCAtMTkzNiw5ICsxOTM2LDkg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcJWNvbmRpdGlvbmFscywgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpOwogCiAgICAgaWYg
KCRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19p
bmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05h
bWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5
cGVcIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2NsYXNzTmFtZX1Q
cm90b3R5cGUpIH07XG5cbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNl
OjpzX2luZm8sICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJM
RSgke2NsYXNzTmFtZX1Qcm90b3R5cGUpIH07XG5cbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsg
XCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtj
bGFzc05hbWV9UHJvdG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9
UHJvdG90eXBlKSB9O1xuXG4iKTsKICAgICB9CiAKICAgICBpZiAoUHJvdG90eXBlT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90KCRpbnRlcmZhY2UpKSB7CkBAIC0xOTk5LDcgKzE5OTksNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgICMgLSBJbml0aWFsaXplIHN0
YXRpYyBDbGFzc0luZm8gb2JqZWN0Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJXRUJDT1JFX0VY
UE9SVCBjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2aXNp
YmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsICJjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2
aXNpYmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CiAKICAgICBpZiAoJG51
bUluc3RhbmNlQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIm
JHtjbGFzc05hbWV9VGFibGUiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5
LDcgKzEyOSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RBY3RpdmUKICAg
ICB7ICJwb3N0TWVzc2FnZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlw
ZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpLCAoaW50cHRyX3QpICgxKSB9LAogfTsKIAotV0VCQ09SRV9F
WFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlKSB9Owor
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6c19pbmZvID0g
eyAiVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlKSB9OwogCiB2b2lk
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ewpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBl
OjpmaW4KICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEFjdGl2ZURPTU9iamVj
dFByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnNfaW5mbyA9IHsgIlRlc3RBY3RpdmVE
T01PYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0QWN0aXZlRE9NT2JqZWN0VGFibGUsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0KSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6c19pbmZvID0geyAiVGVzdEFjdGl2ZURPTU9iamVj
dCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RBY3RpdmVET01PYmplY3RUYWJsZSwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3QpIH07CiAKIEpTVGVzdEFjdGl2ZURPTU9i
amVjdDo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEFjdGl2ZURPTU9iamVjdD4mJiBpbXBs
KQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RBY3RpdmVET01PYmplY3QgOiBwdWJsaWMgSlNET01XcmFw
cGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEFjdGl2ZURPTU9iamVj
dD4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0QWN0aXZlRE9N
T2JqZWN0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdEFjdGl2ZURP
TU9iamVjdCogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
OjpKU0NlbGwqKTsKICAgICB+SlNUZXN0QWN0aXZlRE9NT2JqZWN0KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0Q3VzdG9tCiAgICAgeyAiYW5vdGhlckZ1bmN0aW9uIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkFub3RoZXJGdW5jdGlv
biksIChpbnRwdHJfdCkgKDEpIH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDdXN0
b21OYW1lZEdldHRlclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDdXN0
b21OYW1lZEdldHRlclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAg
LTEzMCw3ICsxMzAsNyBAQCB2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpm
CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclBy
b3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6c19pbmZvID0geyAiVGVzdEN1c3RvbU5h
bWVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyVGFibGUs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpIH07Citjb25zdCBD
bGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21O
YW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RDdXN0b21OYW1lZEdldHRlclRhYmxl
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKSB9OwogCiBKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcjo6SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXI+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyIDog
cHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RDdXN0b21O
YW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQpAQCAtMzgsNyArMzgs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvV3JhcHBlZChKU0M6
OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvV3JhcHBlZChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6
SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxODAyNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRDCiAgICAgeyAiYXR0cjIiLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRDb25zdHJ1
Y3RvckF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1
Y3RvclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3Rv
clByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RFdmVudENvbnN0cnVj
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xNjUsNyArMTY1LDcg
QEAgdm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaQogICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcikg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvcikgfTsKIAogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RFdmVudENvbnN0cnVjdG9yPiYmIGltcGwpCiAg
ICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBKU0RpY3Rpb25hcnk7CiAKLWNsYXNzIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEV2ZW50Q29uc3RydWN0
b3IgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3Jh
cHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBjcmVhdGUoSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RFdmVudENvbnN0cnVjdG9yPiYmIGltcGwpCkBAIC00MCw3ICs0MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXZl
bnRDb25zdHJ1Y3RvcigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlz
aW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsxMzQsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRUCiAgICAgeyAiZGlzcGF0Y2hF
dmVudCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25EaXNwYXRj
aEV2ZW50KSwgKGludHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlIiwg
JkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFdmVudFRhcmdldFBy
b3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgSlNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGU6OmZpbmlzaEMKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVz
dEV2ZW50VGFyZ2V0UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9F
WFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0OjpzX2luZm8gPSB7ICJUZXN0
RXZlbnRUYXJnZXQiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RXZlbnRUYXJnZXRUYWJsZSwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFdmVudFRhcmdldCkgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U1Rlc3RFdmVudFRhcmdldDo6c19pbmZvID0geyAiVGVzdEV2ZW50VGFyZ2V0IiwgJkJhc2U6OnNf
aW5mbywgJkpTVGVzdEV2ZW50VGFyZ2V0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
RXZlbnRUYXJnZXQpIH07CiAKIEpTVGVzdEV2ZW50VGFyZ2V0OjpKU1Rlc3RFdmVudFRhcmdldChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3RFdmVudFRhcmdldD4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0RXZlbnRUYXJnZXQgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEV2ZW50VGFyZ2V0IDogcHVibGljIEpTRE9N
V3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBz
dGF0aWMgSlNUZXN0RXZlbnRUYXJnZXQqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYm
IGltcGwpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RFdmVudFRhcmdldCog
dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RFdmVudFRhcmdldCogdG9X
cmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3RFeGNlcHQKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVh
ZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNP
UkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OnNfaW5m
byA9IHsgIlRlc3RFeGNlcHRpb25Qcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb25Qcm90
b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBK
U1Rlc3RFeGNlcHRpb25Qcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JF
X0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uOjpzX2luZm8gPSB7ICJUZXN0
RXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEV4Y2VwdGlvblRhYmxlLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
eGNlcHRpb246OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCAmSlNU
ZXN0RXhjZXB0aW9uVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uKSB9
OwogCiBKU1Rlc3RFeGNlcHRpb246OkpTVGVzdEV4Y2VwdGlvbihTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RFeGNlcHRpb24+JiYg
aW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdEV4
Y2VwdGlvbiA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNU
ZXN0RXhjZXB0aW9uIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0RXhjZXB0aW9uKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPFRlc3RFeGNlcHRpb24+JiYgaW1wbCkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlND
OjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgVGVzdEV4Y2VwdGlvbiogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGlj
IFRlc3RFeGNlcHRpb24qIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV4Y2VwdGlvbigpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdlbmVyYQogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9u
dEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBA
IC0xMDksNyArMTA5LDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBl
OgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpzX2luZm8gPSB7ICJUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlOjpzX2luZm8gPSB7ICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSkgfTsKIAogSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdy
YXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIDogcHVibGljIEpTRE9N
V3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBz
dGF0aWMgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZT4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE4
MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDMsNyArNDAzLDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZgogI2VuZGlmCiB9OwogCi1XRUJDT1JFX0VY
UE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0SW50ZXJmYWNlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlUHJvdG90eXBl
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiB7CkBAIC00MTEsNyArNDExLDcgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGU6OmZpbmlzaENyZQogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBP
UlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZTo6c19pbmZvID0geyAiVGVzdEludGVy
ZmFjZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RJbnRlcmZhY2UpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJm
YWNlOjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdElu
dGVyZmFjZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZSkgfTsKIAog
SlNUZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZhY2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0SW50ZXJmYWNlPiYmIGltcGwp
CiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RJbnRlcmZh
Y2UgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdElu
dGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNE
T01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEludGVyZmFjZSogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxUZXN0SW50ZXJmYWNlPiYmIGltcGwpCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFRlc3RJbnRlcmZhY2UqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0
SW50ZXJmYWNlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RNZWRpYVEKICAgICB7ICJtZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QpLCAoaW50cHRyX3Qp
ICgxKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKSB9
OwogCiB2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJQcm90b3R5CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0K
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OnNfaW5mbyA9IHsgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnNfaW5m
byA9IHsgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKSB9OwogCiBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgOiBwdWJs
aWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNl
OwogICAgIHN0YXRpYyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBjcmVhdGUoSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1dyYXBwZWQoSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvV3JhcHBl
ZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsK
ICAgICB+SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0TmFtZWRDCiAgICAgeyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRP
bmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsKIAot
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlIiwgJkJhc2U6
OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJv
dG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90
eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JQcm90b3R5cGU6OmZpCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VC
Q09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKSB9OworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdE5hbWVkQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yIiwg
JkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yKSB9OwogCiBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdE5hbWVkQ29uc3RydWN0b3I+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyAr
MjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYmIGltcGwpCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRvV3JhcHBl
ZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsK
ICAgICB+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCShyZXZp
c2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Tm9kZVByCiAgICAgeyAiY29uc3RydWN0b3IiLCBE
b250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROb2RlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsK
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5vZGVQcm90b3R5cGU6OnNf
aW5mbyA9IHsgIlRlc3ROb2RlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROb2RlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dE5vZGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROb2RlUHJvdG90eXBlIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROb2RlUHJvdG90eXBlKSB9OwogCiB2
b2lkIEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEy
Nyw3ICsxMjcsNyBAQCB2b2lkIEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uCiAg
ICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROb2RlUHJvdG90eXBlVGFibGVWYWx1
ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5v
ZGU6OnNfaW5mbyA9IHsgIlRlc3ROb2RlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROb2RlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5vZGU6OnNfaW5m
byA9IHsgIlRlc3ROb2RlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3ROb2RlKSB9OwogCiBKU1Rlc3ROb2RlOjpKU1Rlc3ROb2RlKFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vZGU+JiYgaW1w
bCkKICAgICA6IEpTTm9kZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwp
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0Tm9kZSA6IHB1
YmxpYyBKU05vZGUgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBK
U05vZGUgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb2RlIEJhc2U7CiAgICAgc3RhdGljIEpT
VGVzdE5vZGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vZGU+JiYgaW1wbCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3ROb25kZXQKICAgICB7ICJub25kZXRlcm1pbmlzdGljWmVyb0FyZ0Z1bmN0
aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZUZ1bmN0aW9uTm9u
ZGV0ZXJtaW5pc3RpY1plcm9BcmdGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0sCiB9OwogCi1X
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90
b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5
cGUpIH07CiAKIHZvaWQgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgSlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY1Byb3RvdHlwZTo6ZmkKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVz
dE5vbmRldGVybWluaXN0aWNQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJD
T1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6c19pbmZv
ID0geyAiVGVzdE5vbmRldGVybWluaXN0aWMiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE5vbmRldGVybWluaXN0aWMpIH07Citjb25zdCBDbGFzc0luZm8gSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6c19pbmZvID0geyAiVGVzdE5vbmRldGVybWluaXN0aWMiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vbmRldGVybWluaXN0
aWMpIH07CiAKIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OkpTVGVzdE5vbmRldGVybWluaXN0aWMo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5o
CShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5vbmRldGVybWluaXN0
aWMqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vbmRldGVybWluaXN0aWM+JiYgaW1wbCkKQEAgLTM4LDcg
KzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE5vbmRldGVybWluaXN0aWMqIHRvV3JhcHBlZChK
U0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9XcmFwcGVk
KEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwog
ICAgIH5KU1Rlc3ROb25kZXRlcm1pbmlzdGljKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lv
biAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm8KICAgICB7ICJhbnkiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSksIChpbnRwdHJfdCkgKDIpIH0sCiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0T2JqZWN0UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RPYmpQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0T2JqZWN0UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNU
ZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC02NTMsNyArNjUz
LDcgQEAgdm9pZCBKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKAogICAgIHJlaWZ5
U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlz
KTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZv
ID0geyAiVGVzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RPYmpUYWJsZSwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RPYmopIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqOjpz
X2luZm8gPSB7ICJUZXN0T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE9ialRhYmxlLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iaikgfTsKIAogSlNUZXN0T2JqOjpKU1Rlc3RPYmoo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxUZXN0T2JqPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RPYmogOiBw
dWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE9iaiA6IHB1
YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJh
c2U7CiAgICAgc3RhdGljIEpTVGVzdE9iaiogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T2JqPiYmIGltcGwp
CkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RPYmoqIHRvV3JhcHBlZChKU0M6
OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0T2JqKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPYmooKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlz
aW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcg
KzE4Miw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPdmVybG8KICAgICB7
ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25z
dCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90
b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1By
b3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUi
LCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTkwLDcgKzE5MCw3
IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHkKICAgICByZWlmeVN0
YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6c19pbmZvID0geyAiVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yczo6c19pbmZvID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMi
LCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMpIH07CiAKIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OkpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4mJiBpbXBs
KQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCShyZXZpc2lvbiAxODAyNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyA6
IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+JiYgaW1w
bCkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RTZXJpYWwKICAgICB7ICJjYWNoZWRSZWFkb25seVZhbHVlIiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsKIAot
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKSB9OworY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ewpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWMKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNP
UkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSkgfTsKIAogSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdy
YXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCShyZXZpc2lvbiAxODAyNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdy
YXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3Rh
dGljIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY3JlYXRlKEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPiYmIGltcGwpCkBAIC00MCw3ICs0MCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRv
V3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAJKHJldmlzaW9uIDE4MDI0NikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw3ICsyMDQsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlCiAgICAgeyAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9u
KSwgKGludHB0cl90KSAoMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5m
byBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFR5cGVkZWZzUHJvdG90
eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdFR5cGVkZWZzUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMjEyLDcg
KzIxMiw3IEBAIHZvaWQgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmZpbmlzaENyZWEKICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlVGFibGVWYWx1
ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFR5
cGVkZWZzOjpzX2luZm8gPSB7ICJUZXN0VHlwZWRlZnMiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
VHlwZWRlZnNUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RUeXBlZGVmcykgfTsKK2Nv
bnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmczo6c19pbmZvID0geyAiVGVzdFR5cGVkZWZzIiwg
JkJhc2U6OnNfaW5mbywgJkpTVGVzdFR5cGVkZWZzVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0VHlwZWRlZnMpIH07CiAKIEpTVGVzdFR5cGVkZWZzOjpKU1Rlc3RUeXBlZGVmcyhTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RUeXBlZGVmcz4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFR5cGVkZWZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgSlNUZXN0VHlwZWRlZnMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIEpTVGVzdFR5cGVkZWZzIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0VHlwZWRlZnMq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdFR5cGVkZWZzPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFRlc3RUeXBlZGVmcyogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAg
c3RhdGljIFRlc3RUeXBlZGVmcyogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0VHlwZWRlZnMoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0
cmlidXRlLmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcg
KzEwNiw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU2F0dHJpYnV0ZVAKICAgICB7
ICJyZWFkb25seSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc2F0dHJpYnV0ZVJlYWRvbmx5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU2F0dHJpYnV0ZVByb3RvdHlwZTo6c19pbmZvID0geyAiYXR0cmlidXRlUHJvdG90
eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZVBy
b3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU2F0dHJpYnV0ZVByb3RvdHlwZTo6c19pbmZv
ID0geyAiYXR0cmlidXRlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU2F0dHJpYnV0ZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU2F0dHJpYnV0ZVByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQg
SlNhdHRyaWJ1dGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW8KICAgICByZWlmeVN0YXRpY1Byb3Bl
cnRpZXModm0sIEpTYXR0cmlidXRlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAot
V0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTYXR0cmlidXRlOjpzX2luZm8gPSB7ICJh
dHRyaWJ1dGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTYXR0cmli
dXRlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTYXR0cmlidXRlOjpzX2luZm8gPSB7ICJhdHRyaWJ1
dGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTYXR0cmlidXRlKSB9
OwogCiBKU2F0dHJpYnV0ZTo6SlNhdHRyaWJ1dGUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxhdHRyaWJ1dGU+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTYXR0cmlidXRlIDogcHVibGljIEpTRE9NV3JhcHBl
ciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU2F0dHJpYnV0ZSA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGlj
IEpTYXR0cmlidXRlKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPGF0dHJpYnV0ZT4mJiBpbXBsKQpAQCAtMzksNyAr
MzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBhdHRyaWJ1dGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUp
OworICAgIHN0YXRpYyBhdHRyaWJ1dGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNhdHRyaWJ1dGUoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU3JlYWRvbmx5LmNwcAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDEsNyArMTAxLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTcmVhZG9ubHlQcgog
ICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNyZWFkb25s
eUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBK
U3JlYWRvbmx5UHJvdG90eXBlOjpzX2luZm8gPSB7ICJyZWFkb25seVByb3RvdHlwZSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNyZWFkb25seVByb3RvdHlwZSkgfTsK
K2NvbnN0IENsYXNzSW5mbyBKU3JlYWRvbmx5UHJvdG90eXBlOjpzX2luZm8gPSB7ICJyZWFkb25s
eVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNyZWFk
b25seVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU3JlYWRvbmx5UHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiB7CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBKU3JlYWRvbmx5UHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNyZWFk
b25seVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNv
bnN0IENsYXNzSW5mbyBKU3JlYWRvbmx5OjpzX2luZm8gPSB7ICJyZWFkb25seSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNyZWFkb25seSkgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU3JlYWRvbmx5OjpzX2luZm8gPSB7ICJyZWFkb25seSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNyZWFkb25seSkgfTsKIAogSlNyZWFkb25seTo6SlNyZWFk
b25seShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPHJlYWRvbmx5PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNyZWFkb25seS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU3Jl
YWRvbmx5IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU3Jl
YWRvbmx5IDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RP
TVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNyZWFkb25seSogY3JlYXRlKEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFk
b25seT4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlND
OjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyByZWFkb25seSog
dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIHJlYWRvbmx5KiB0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAg
ICAgfkpTcmVhZG9ubHkoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCi1jbGFzcyBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewor
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIApAQCAt
NTgsMTIgKzU4LDEyIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JF
X0VYUE9SVCBSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQmluZGlu
Z3M6Ok1ldGhvZCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBjb25zdCBTdHJpbmcmKTsKKyAgICBSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgQmluZGluZ3M6Ok1ldGhvZCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1
Y3R1cmVGbGFnczsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToK
ICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcg
QEAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAotY2xhc3MgUnVudGlt
ZU9iamVjdCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CitjbGFzcyBXRUJDT1JFX0VY
UE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKQEAgLTQzLDE2ICs0
MywxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKyAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQ2VsbCopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBKU1ZhbHVl
IGRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1p
dGl2ZVR5cGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOworICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAg
c3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBzdGF0aWMgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CisgICAgc3RhdGlj
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
CkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBXRUJD
T1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxJbnN0
YW5jZT4pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKKyAg
ICBSdW50aW1lT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL21ha2VfbmFtZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBA
QCBpZiAobGVuZ3RoKCRmb250TmFtZXNJbikpIHsKICAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6
R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7CiAKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQg
a2V5cyAlcGFyYW1ldGVycykgewotICAgICAgICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBERUZJ
TkVfR0xPQkFMKEF0b21pY1N0cmluZywgJG5hbWUpXG4iOworICAgICAgICBwcmludCBGICJERUZJ
TkVfR0xPQkFMKEF0b21pY1N0cmluZywgJG5hbWUpXG4iOwogICAgIH0KIAogICAgIHByaW50SW5p
dCgkRiwgMCk7CkBAIC03MTYsMTYgKzcxNiwxNiBAQCBzdWIgcHJpbnROYW1lc0hlYWRlckZpbGUK
ICAgICBteSAkbG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4ID0gbGMoJHBhcmFtZXRlcnN7bmFtZXNw
YWNlUHJlZml4fSk7CiAKICAgICBwcmludCBGICIvLyBOYW1lc3BhY2VcbiI7Ci0gICAgcHJpbnQg
RiAiZXh0ZXJuIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJl
Zml4fU5hbWVzcGFjZVVSSTtcblxuIjsKKyAgICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBleHRl
cm4gY29uc3QgV1RGOjpBdG9taWNTdHJpbmcgJHtsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXh9TmFt
ZXNwYWNlVVJJO1xuXG4iOwogCiAgICAgaWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAgcHJp
bnQgRiAiLy8gVGFnc1xuIjsKLSAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gY29uc3Qg
V2ViQ29yZTo6JHBhcmFtZXRlcnN7bmFtZXNwYWNlfVF1YWxpZmllZE5hbWUiLCAiVGFnIiwgXCVh
bGxUYWdzKTsKKyAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJXRUJDT1JFX0VYUE9SVCBleHRlcm4g
Y29uc3QgV2ViQ29yZTo6JHBhcmFtZXRlcnN7bmFtZXNwYWNlfVF1YWxpZmllZE5hbWUiLCAiVGFn
IiwgXCVhbGxUYWdzKTsKICAgICB9CiAKICAgICBpZiAoa2V5cyAlYWxsQXR0cnMpIHsKICAgICAg
ICAgcHJpbnQgRiAiLy8gQXR0cmlidXRlc1xuIjsKLSAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJl
eHRlcm4gY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSIsICJBdHRyIiwgXCVhbGxBdHRycyk7
CisgICAgICAgIHByaW50TWFjcm9zKCRGLCAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IFdl
YkNvcmU6OlF1YWxpZmllZE5hbWUiLCAiQXR0ciIsIFwlYWxsQXR0cnMpOwogICAgIH0KICAgICBw
cmludCBGICIjZW5kaWZcblxuIjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIGVudW0gY2xhc3MgUHJ1bmlu
Z1JlYXNvbjsKIAogdHlwZWRlZiBWZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4gSGlzdG9yeUl0ZW1W
ZWN0b3I7CiAKLWV4dGVybiB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5
SXRlbSopOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgKCpub3RpZnlIaXN0b3J5SXRlbUNo
YW5nZWQpKEhpc3RvcnlJdGVtKik7CiAKIGNsYXNzIEhpc3RvcnlJdGVtIDogcHVibGljIFJlZkNv
dW50ZWQ8SGlzdG9yeUl0ZW0+IHsKICAgICBmcmllbmQgY2xhc3MgUGFnZUNhY2hlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDIsNyAr
NDAyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9xdWlja1JlZGlyZWN0Q29taW5nOwogICAg
IGJvb2wgbV9zZW50UmVkaXJlY3ROb3RpZmljYXRpb247Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBtX2luU3RvcEFsbExvYWRlcnM7CisgICAgYm9vbCBtX2luU3RvcEFsbExvYWRlcnM7CiAKICAg
ICBTdHJpbmcgbV9vdXRnb2luZ1JlZmVycmVyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTG9hZGVyU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TG9hZGVyU3RyYXRlZ3kuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDExICs0MCwxMSBAQCBj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBMb2FkZXJTdHJh
dGVneSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpOworICAgIHZpcnR1YWwgUmVzb3VyY2VM
b2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250
ZXh0KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
dG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgUmVzb3VyY2VFcnJvciYs
IFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOworICAgIHZpcnR1YWwgdm9p
ZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFs
cywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9u
c2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBC
bG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpOworICAgIHZpcnR1YWwgQmxvYlJlZ2lz
dHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkxv
YWRlclN0cmF0ZWd5KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBA
QCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJlc291cmNlTG9hZFNjaGVkdWxlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VMb2FkU2NoZWR1bGVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZnJpZW5kIFJlc291cmNlTG9hZFNjaGVk
dWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgZnJpZW5k
IFJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFBhc3NSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHNjaGVk
dWxlU3VicmVzb3VyY2VMb2FkKEZyYW1lKiwgQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+IHNjaGVk
dWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSosIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xp
ZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw3ICsx
MzgsNyBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SWNvblJlY29yZD4gZ2V0T3JDcmVhdGVJ
Y29uUmVjb3JkKGNvbnN0IFN0cmluZyYgaWNvblVSTCk7CiAgICAgUGFnZVVSTFJlY29yZCogZ2V0
T3JDcmVhdGVQYWdlVVJMUmVjb3JkKGNvbnN0IFN0cmluZyYgcGFnZVVSTCk7CiAgICAgCi0gICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBtX2lzRW5hYmxlZDsKKyAgICBib29sIG1faXNFbmFibGVkOwog
ICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCiAgICAgbXV0YWJsZSBNdXRleCBt
X3N5bmNMb2NrOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRh
YmFzZUJhc2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAg
cHVibGljOgogCiAgICAgLy8gU3luY2hyb25vdXMgY2FsbHMgdXNlZCBpbnRlcm5hbGx5IGJ5IFdl
YkNvcmUuCiAgICAgLy8gVXNhZ2Ugc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGFzeW5jaHJvbm91cyBj
YWxscy4KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFN0cmluZyBzeW5jaHJvbm91c0ljb25V
UkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgU3RyaW5nIHN5bmNocm9u
b3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHN5
bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVj
aXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4g
SWNvbkxvYWRObzsgfQogICAgIHZpcnR1YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KQEAgLTIwMCw3
ICsyMDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcFRocmVhZEFj
dGl2aXR5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUpOworICAgIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBj
b25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsSWNvbnMoKSB7IH0KIApAQCAtMjA4LDcgKzIwOCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KEljb25EYXRhYmFzZUNsaWVudCop
IHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc09wZW4oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgU3RyaW5nIGRhdGFiYXNlUGF0aCgpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIGRhdGFiYXNlUGF0aCgpIGNvbnN0OwogCiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaAkocmV2aXNpb24gMTgwMjQ2
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAK
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIERhdGFiYXNlUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxEYXRhYmFzZVByb3ZpZGVyPiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+RGF0YWJhc2VQcm92aWRlcigpOworICAgIHZpcnR1YWwgfkRhdGFiYXNlUHJvdmlkZXIoKTsK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlKiBpZGJGYWN0b3J5QmFja2VuZCgpOwpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZh
Y3RvcnlCYWNrZW5kKCkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpID0gMDsKIAogICAgIGJvb2wgbV9k
aWRDcmVhdGVJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSB7IGZhbHNlIH07CiAgICAgUmVmUHRy
PElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmRJbnRlcmZhY2U7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3MCw3ICs0NzAsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPFBvaW50ZXJMb2NrQ29u
dHJvbGxlcj4gbV9wb2ludGVyTG9ja0NvbnRyb2xsZXI7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VY
UE9SVCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7
CisgICAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
OwogCiAgICAgY29uc3QgUmVmUHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgIGNvbnN0IHN0
ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jlc3M7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDggKzUwLDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFBhZ2VDb25zb2xlQ2xpZW50KFBhZ2Um
KTsKICAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUNsaWVudCgpOwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOworICAgIHN0YXRp
YyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3Vs
ZFByaW50RXhjZXB0aW9ucyhib29sKTsKIAogICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKICAgICBz
dGF0aWMgdm9pZCB1bm11dGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJs
YXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgJKHJl
dmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuaAkod29y
a2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBjcmVhdGUoQ2xpZW50Jiwg
T3ZlcmxheVR5cGUgPSBPdmVybGF5VHlwZTo6Vmlldyk7Ci0gICAgdmlydHVhbCB+UGFnZU92ZXJs
YXkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5QYWdlT3ZlcmxheSgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgUGFnZU92ZXJsYXlDb250cm9sbGVyKiBjb250cm9sbGVyKCkgY29uc3Q7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5
KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHVpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChj
b25zdCAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotU3RyaW5nIGxvY2FsVXNlclNwZWNp
ZmljU3RvcmFnZURpcmVjdG9yeSgpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxvY2FsVXNlclNw
ZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpOwogU3RyaW5nIHJvYW1pbmdVc2VyU3BlY2lmaWNTdG9y
YWdlRGlyZWN0b3J5KCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiBtX2xvZ1N0
cmluZzsKICAgICAgICAgc2l6ZV90IG1faW5pdGlhbE1lbW9yeTsKIAotICAgICAgICBzdGF0aWMg
Ym9vbCBzX2xvZ2dpbmdFbmFibGVkOworICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBzX2xvZ2dpbmdFbmFibGVkOwogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFVTRShXRUJfVEhSRUFEKQogICAgICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgVGhyZWFkR2xvYmFsRGF0YSogc2hhcmVkTWFpblRocmVhZFN0
YXRpY0RhdGE7CiAjZW5kaWYKLSAgICAgICAgZnJpZW5kIFRocmVhZEdsb2JhbERhdGEmIHRocmVh
ZEdsb2JhbERhdGEoKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgZnJpZW5kIFRocmVhZEdsb2Jh
bERhdGEmIHRocmVhZEdsb2JhbERhdGEoKTsKICAgICB9OwogCiAjaWYgVVNFKFdFQl9USFJFQUQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw5ICsxNTQsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRGcmFnbWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCByZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKIAotICAgIGZyaWVuZCBib29sIGVx
dWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgZnJpZW5kIGJvb2wgZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRp
Zmllcihjb25zdCBVUkwmLCBjb25zdCBVUkwmKTsKIAotICAgIGZyaWVuZCBib29sIHByb3RvY29s
SG9zdEFuZFBvcnRBcmVFcXVhbChjb25zdCBVUkwmLCBjb25zdCBVUkwmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBmcmllbmQgYm9vbCBwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoY29uc3QgVVJM
JiwgY29uc3QgVVJMJik7CiAKICAgICB1bnNpZ25lZCBob3N0U3RhcnQoKSBjb25zdDsKICAgICB1
bnNpZ25lZCBob3N0RW5kKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3
ICsxMDcsNyBAQCBjbGFzcyBGb250Q2FjaGUgewogCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Rm9udENhY2hlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZnJpZW5k
IEZvbnRDYWNoZSYgZm9udENhY2hlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgZnJpZW5kIEZvbnRD
YWNoZSYgZm9udENhY2hlKCk7CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBi
eSB0aGUgcGxhdGZvcm0uCiAgICAgUmVmUHRyPEZvbnQ+IHN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFj
dGVycyhjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250KiBvcmlnaW5hbEZvbnREYXRh
LCBib29sIGlzUGxhdGZvcm1Gb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0
aCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
TGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBTGF5ZXIuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDcgKzg3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gY2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3QgPSAwOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UGxhdGZvcm1DQUxheWVyKCk7CisgICAgdmlydHVhbCB+
UGxhdGZvcm1DQUxheWVyKCk7CiAKICAgICBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
bGF5ZXJJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJJRDsgfQogCkBAIC05Nyw3ICs5Nyw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZv
aWQqIHJhdGhlciB0aGFuIGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAg
ICAvLyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93
cyBjYWxsZXJzIGZyb20gYm90aCBsYW5ndWFnZXMuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOwor
ICAgIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllcih2b2lkKiBwbGF0Zm9y
bUxheWVyKTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KIApAQCAtMjUxLDE0ICsyNTEsMTQgQEAgcHVi
bGljOgogICAgICAgICAKICAgICAvLyBGdW5jdGlvbnMgYWxsb3dzIHVzIHRvIHNoYXJlIGltcGxl
bWVudGF0aW9uIGFjcm9zcyBXZWJUaWxlZExheWVyIGFuZCBXZWJMYXllcgogICAgIHN0YXRpYyBS
ZXBhaW50UmVjdExpc3QgY29sbGVjdFJlY3RzVG9QYWludChDR0NvbnRleHRSZWYsIFBsYXRmb3Jt
Q0FMYXllciopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRyYXdMYXllckNvbnRl
bnRzKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKiwgUmVwYWludFJlY3RMaXN0JiBkaXJ0
eVJlY3RzKTsKKyAgICBzdGF0aWMgdm9pZCBkcmF3TGF5ZXJDb250ZW50cyhDR0NvbnRleHRSZWYs
IFBsYXRmb3JtQ0FMYXllciosIFJlcGFpbnRSZWN0TGlzdCYgZGlydHlSZWN0cyk7CiAgICAgc3Rh
dGljIHZvaWQgZHJhd1JlcGFpbnRJbmRpY2F0b3IoQ0dDb250ZXh0UmVmLCBQbGF0Zm9ybUNBTGF5
ZXIqLCBpbnQgcmVwYWludENvdW50LCBDR0NvbG9yUmVmIGN1c3RvbUJhY2tncm91bmRDb2xvcik7
CiAgICAgc3RhdGljIENHUmVjdCBmcmFtZUZvckxheWVyKGNvbnN0IFBsYXRmb3JtTGF5ZXIqKTsK
IAogICAgIHZvaWQgbW92ZVRvTGF5ZXJQb29sKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JF
X0VYUE9SVCBQbGF0Zm9ybUNBTGF5ZXIoTGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
IG93bmVyKTsKKyAgICBQbGF0Zm9ybUNBTGF5ZXIoTGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyKTsKIAogICAgIHZpcnR1YWwgTGF5ZXJQb29sJiBsYXllclBvb2woKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVu
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JE
YXRhRmlsZVJlZmVyZW5jZS5oCShyZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBC
bG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCkpOwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgfkJsb2JEYXRhRmlsZVJlZmVyZW5jZSgpOworICAgIHZpcnR1YWwgfkJsb2JEYXRh
RmlsZVJlZmVyZW5jZSgpOwogCiAgICAgdm9pZCBzdGFydFRyYWNraW5nTW9kaWZpY2F0aW9ucygp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBwYXRoKCk7CisgICAgY29uc3Qg
U3RyaW5nJiBwYXRoKCk7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUoKTsKICAgICBkb3Vi
bGUgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKCk7CiAKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZXZva2VGaWxlQWNjZXNzKCk7CiAKIHByb3RlY3RlZDoKLSAg
ICBXRUJDT1JFX0VYUE9SVCBCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBwYXRo
KTsKKyAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBwYXRoKTsKIAogcHJp
dmF0ZToKICNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAkocmV2aXNpb24gMTgwMjQ2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQmxv
YlJlZ2lzdHJ5SW1wbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5CbG9iUmVnaXN0cnkoKTsKKyAgICB2aXJ0dWFsIH5C
bG9iUmVnaXN0cnkoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCShy
ZXZpc2lvbiAxODAyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBXRUJD
T1JFX0VYUE9SVCBCbG9iUmVnaXN0cnlJbXBsIGZpCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Qmxv
YlJlZ2lzdHJ5SW1wbCgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgQmxvYkRhdGEqIGdldEJsb2JE
YXRhRnJvbVVSTChjb25zdCBVUkwmKSBjb25zdDsKKyAgICBCbG9iRGF0YSogZ2V0QmxvYkRhdGFG
cm9tVVJMKGNvbnN0IFVSTCYpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gY3JlYXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VI
YW5kbGVDbGllbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NR
TGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDE4MDI0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNCArNDQsMTQg
QEAgY2xhc3MgRGF0YWJhc2VBdXRob3JpemVyOwogY2xhc3MgU1FMaXRlU3RhdGVtZW50OwogY2xh
c3MgU1FMaXRlVHJhbnNhY3Rpb247CiAKLWV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0RG9uZTsK
K1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0RG9uZTsKIGV4dGVybiBj
b25zdCBpbnQgU1FMUmVzdWx0RXJyb3I7Ci1leHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdE9rOwot
ZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRSb3c7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29u
c3QgaW50IFNRTFJlc3VsdE9rOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGludCBTUUxS
ZXN1bHRSb3c7CiBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdFNjaGVtYTsKIGV4dGVybiBjb25z
dCBpbnQgU1FMUmVzdWx0RnVsbDsKIGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0SW50ZXJydXB0
OwotZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRDb25zdHJhaW50OworV0VCQ09SRV9FWFBPUlQg
ZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRDb25zdHJhaW50OwogCiBjbGFzcyBTUUxpdGVEYXRh
YmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU1FMaXRlRGF0YWJhc2UpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmgJKHJldmlzaW9uIDE4MDI0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Miw4ICs2Miw4IEBAIHN0cnVjdCBTY3JvbGxBbGlnbm1lbnQgewogICAgIHN0
YXRpYyBTY3JvbGxCZWhhdmlvciBnZXRIaWRkZW5CZWhhdmlvcihjb25zdCBTY3JvbGxBbGlnbm1l
bnQmIHMpIHsgcmV0dXJuIHMubV9yZWN0SGlkZGVuOyB9CiAKICAgICBzdGF0aWMgY29uc3QgU2Ny
b2xsQWxpZ25tZW50IGFsaWduQ2VudGVySWZOZWVkZWQ7Ci0gICAgc3RhdGljIGNvbnN0IFNjcm9s
bEFsaWdubWVudCBhbGlnblRvRWRnZUlmTmVlZGVkOwotICAgIHN0YXRpYyBjb25zdCBTY3JvbGxB
bGlnbm1lbnQgYWxpZ25DZW50ZXJBbHdheXM7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNv
bnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRvRWRnZUlmTmVlZGVkOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJBbHdheXM7CiAgICAg
c3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRvcEFsd2F5czsKICAgICBzdGF0aWMg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduUmlnaHRBbHdheXM7CiAgICAgc3RhdGljIGNvbnN0
IFNjcm9sbEFsaWdubWVudCBhbGlnbkxlZnRBbHdheXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvYnJlYWtfbGluZXMuaAkocmV2aXNpb24gMTgwMjQ2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAg
c3RhdGljIGNvbnN0IFVDaGFyIGFzY2lpTGluZUJyZWFrVGFibGVGaQogc3RhdGljIGNvbnN0IFVD
aGFyIGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhciA9IDEyNzsKIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBhc2NpaUxpbmVCcmVha1RhYmxlQ29sdW1uQ291bnQgPSAoYXNjaWlMaW5lQnJlYWtUYWJs
ZUxhc3RDaGFyIC0gYXNjaWlMaW5lQnJlYWtUYWJsZUZpcnN0Q2hhcikgLyA4ICsgMTsKIAotZXh0
ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZVtdW2FzY2lpTGluZUJy
ZWFrVGFibGVDb2x1bW5Db3VudF07CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgdW5zaWdu
ZWQgY2hhciBhc2NpaUxpbmVCcmVha1RhYmxlW11bYXNjaWlMaW5lQnJlYWtUYWJsZUNvbHVtbkNv
dW50XTsKIAogZW51bSBjbGFzcyBOQlNQQmVoYXZpb3IgewogICAgIElnbm9yZU5CU1AsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246842</attachid>
            <date>2015-02-18 13:37:31 -0800</date>
            <delta_ts>2015-02-18 14:39:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141735-20150218133725.patch</filename>
            <type>text/plain</type>
            <size>74466</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE1LTAyLTE4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJlcGFyZSB0
byB1c2UgV0VCQ09SRV9FWFBPUlQgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaDoK
KyAgICAgICAgKiBwYWdlL0RhdGFiYXNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9icmVha19saW5lcy5oOgorICAgICAgICBBZGQgYW5kIG1vdmUgc29tZSBXRUJDT1JFX0VYUE9S
VCBtYWNyb3MuCisKIDIwMTUtMDItMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb25zb2xpZGF0ZSBzb2Z0LWxpbmtlZCBDTVRpbWVNYWtlV2l0aFNlY29u
ZHMoKSBmdW5jdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dD
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIGNsYXNzIEdDQ29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEdDQ29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgICAg
ICBmcmllbmQgR0NDb250cm9sbGVyJiBnY0NvbnRyb2xsZXIoKTsKKyAgICAgICAgV0VCQ09SRV9F
WFBPUlQgZnJpZW5kIEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCk7CiAKICAgICBwdWJsaWM6
CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2FyYmFnZUNvbGxlY3RTb29uKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHJl
dmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBKU0M6OkNsYXNzSW5mbyosIEpTQzo6V3Jp
dGVCYXJyaWVyPEpTQzo6U3RydWN0dXJlPj4gSlNET01TdHJ1Y3R1cmVNYXA7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpK
U09iamVjdD4+IEpTRE9NQ29uc3RydWN0b3JNYXA7CiAKLSAgICBjbGFzcyBKU0RPTUdsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKKyAgICBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKICAg
ICAgICAgdHlwZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7CiAgICAgcHJvdGVjdGVkOgog
ICAgICAgICBzdHJ1Y3QgSlNET01HbG9iYWxPYmplY3REYXRhOwpAQCAtNTQsNyArNTQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTRE9NU3RydWN0dXJlTWFwJiBzdHJ1Y3R1cmVz
KCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmVzOyB9CiAgICAgICAgIEpTRE9NQ29uc3RydWN0b3JNYXAm
IGNvbnN0cnVjdG9ycygpIHsgcmV0dXJuIG1fY29uc3RydWN0b3JzOyB9CiAKLSAgICAgICAgV0VC
Q09SRV9FWFBPUlQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0OworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3Q7CiAKICAgICAgICAgLy8gTWFrZSBiaW5kaW5nIGNvZGUgZ2VuZXJh
dGlvbiBlYXNpZXIuCiAgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiB0aGlzOyB9CkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCB3b3JsZElzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV93b3JsZElzTm9ybWFs
OyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25z
dCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CisgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNz
SW5mbyBzX2luZm87CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAx
ODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQkod29ya2luZyBjb3B5KQpAQCAtODAxLDcgKzgwMSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgIEFkZENsYXNzRm9yd2FyZElmTmVlZGVkKCJKU0RpY3Rpb25hcnkiKSBpZiAkY29kZUdl
bmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRpbnRlcmZhY2UsICJFdmVudCIpOwogCiAg
ICAgIyBDbGFzcyBkZWNsYXJhdGlvbgotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAk
Y2xhc3NOYW1lIDogcHVibGljICRwYXJlbnRDbGFzc05hbWUge1xuIik7CisgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgImNsYXNzIFdFQkNPUkVfRVhQT1JUICRjbGFzc05hbWUgOiBwdWJsaWMgJHBh
cmVudENsYXNzTmFtZSB7XG4iKTsKIAogICAgICMgU3RhdGljIGNyZWF0ZSBtZXRob2RzCiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwpAQCAtODU4LDcgKzg1OCw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
U3RyaW5nTGlzdCIpIHsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9XcmFwcGVkKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgJGltcGxUeXBlKiB0b1dy
YXBwZWQoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgJGltcGxUeXBlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTtcbiIpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC05MTUsNyArOTE1LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlIikgewogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInByb3RlY3Rl
ZDpcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKKyAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8qIGlu
Zm8oKSB7IHJldHVybiAmc19pbmZvOyB9XG5cbiIpOwogICAgIH0gZWxzZSB7CkBAIC0xOTM3LDkg
KzE5MzcsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwlY29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSk7CiAK
ICAgICBpZiAoJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpIHsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90
eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5cGVcIiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2NsYXNzTmFtZX1Qcm90b3R5cGUp
IH07XG5cbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1l
fVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCR7Y2xh
c3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9
UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5cGVc
IiwgJkJhc2U6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19p
bmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9UHJvdG90eXBlXCIsICZCYXNlOjpzX2lu
Zm8sICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2Ns
YXNzTmFtZX1Qcm90b3R5cGUpIH07XG5cbiIpOwogICAgIH0KIAogICAgIGlmIChQcm90b3R5cGVP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGludGVyZmFjZSkpIHsKQEAgLTIwMDAsNyArMjAw
MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQogCiAgICAgIyAtIEluaXRp
YWxpemUgc3RhdGljIENsYXNzSW5mbyBvYmplY3QKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIldF
QkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyAkY2xhc3NOYW1lIiAuICI6OnNfaW5mbyA9IHsg
XCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAiKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAkY2xhc3NOYW1lIiAuICI6OnNfaW5mbyA9
IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAiKTsKIAogICAg
IGlmICgkbnVtSW5zdGFuY2VBdHRyaWJ1dGVzID4gMCkgewogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiYke2NsYXNzTmFtZX1UYWJsZSIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEFj
dGl2ZQogICAgIHsgInBvc3RNZXNzYWdlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0QWN0aXZlRE9NT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSksIChpbnRwdHJfdCkgKDEpIH0sCiB9OwogCi1X
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpz
X2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUpIH07
CiAKIHZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RQ
cm90b3R5cGU6OmZpbgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0QWN0aXZl
RE9NT2JqZWN0UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBP
UlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6c19pbmZvID0geyAiVGVz
dEFjdGl2ZURPTU9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RBY3RpdmVET01PYmplY3RU
YWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3QpIH07Citjb25z
dCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpzX2luZm8gPSB7ICJUZXN0QWN0aXZl
RE9NT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEFjdGl2ZURPTU9iamVjdCkgfTsKIAogSlNUZXN0QWN0
aXZlRE9NT2JqZWN0OjpKU1Rlc3RBY3RpdmVET01PYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0QWN0aXZlRE9NT2JqZWN0
PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCShyZXZpc2lvbiAxODAyODgpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBKU1Rlc3RBY3RpdmVET01PYmplY3QgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEFjdGl2ZURPTU9iamVjdCA6IHB1YmxpYyBK
U0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAg
ICAgc3RhdGljIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0QWN0aXZl
RE9NT2JqZWN0PiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RB
Y3RpdmVET01PYmplY3QqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0
QWN0aXZlRE9NT2JqZWN0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RBY3RpdmVET01PYmplY3QoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkocmV2aXNpb24gMTgwMjg4KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDdXN0b20KICAgICB7ICJhbm90aGVyRnVuY3Rpb24i
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhl
ckZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSwKIH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSkgfTsKK2NvbnN0
IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSkgfTsKIAogdm9p
ZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogewpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90
b3R5cGU6OmYKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQg
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpzX2luZm8gPSB7ICJUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlcikgfTsK
K2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6c19pbmZvID0geyAiVGVz
dEN1c3RvbU5hbWVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpIH07
CiAKIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJ
KHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCkBAIC0z
OCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9XcmFw
cGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9X
cmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RFdmVudEMKICAgICB7ICJhdHRyMiIs
IERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVu
dENvbnN0cnVjdG9yUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVudENv
bnN0cnVjdG9yUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEV2ZW50
Q29uc3RydWN0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTE2NSw3
ICsxNjUsNyBAQCB2b2lkIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OmZpCiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBl
VGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFdmVudENvbnN0cnVjdG9y
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFdmVudENvbnN0
cnVjdG9yKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3RFdmVudENvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RFdmVudENvbnN0cnVjdG9yKSB9OwogCiBKU1Rlc3RFdmVudENvbnN0
cnVjdG9yOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV2ZW50Q29uc3RydWN0b3I+JiYg
aW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEpTRGljdGlvbmFyeTsKIAotY2xhc3MgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciA6
IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXZlbnRD
b25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqIGNy
ZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBSZWY8VGVzdEV2ZW50Q29uc3RydWN0b3I+JiYgaW1wbCkKQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvV3JhcHBlZChKU0M6OkpT
VmFsdWUpOworICAgIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDcgKzEz
NCw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RFdmVudFQKICAgICB7ICJk
aXNwYXRjaEV2ZW50IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlv
bkRpc3BhdGNoRXZlbnQpLCAoaW50cHRyX3QpICgxKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQg
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJU
ZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRUYXJnZXRQcm90
b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBKU1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZTo6ZmluaXNoQwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2
bSwgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1X
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJnZXQ6OnNfaW5mbyA9
IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RFdmVudFRhcmdldFRh
YmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0KSB9OworY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0OjpzX2luZm8gPSB7ICJUZXN0RXZlbnRUYXJnZXQiLCAm
QmFzZTo6c19pbmZvLCAmSlNUZXN0RXZlbnRUYXJnZXRUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3RFdmVudFRhcmdldCkgfTsKIAogSlNUZXN0RXZlbnRUYXJnZXQ6OkpTVGVzdEV2ZW50
VGFyZ2V0KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAkocmV2aXNp
b24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RFdmVudFRhcmdldCA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXZlbnRUYXJnZXQgOiBwdWJs
aWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNl
OwogICAgIHN0YXRpYyBKU1Rlc3RFdmVudFRhcmdldCogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRU
YXJnZXQ+JiYgaW1wbCkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEV2ZW50
VGFyZ2V0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgVGVzdEV2ZW50VGFy
Z2V0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0M6OkpTQ2VsbCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDE4MDI4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEV4Y2VwdAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVu
dW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsK
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdEV4Y2VwdGlvblByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlKSB9OworY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0RXhjZXB0aW9uUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSlNU
ZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmUKICAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAK
LVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFeGNlcHRpb246OnNfaW5mbyA9
IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RXhjZXB0aW9uVGFibGUs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdEV4Y2VwdGlvbjo6c19pbmZvID0geyAiVGVzdEV4Y2VwdGlvbiIsICZCYXNlOjpzX2lu
Zm8sICZKU1Rlc3RFeGNlcHRpb25UYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFeGNl
cHRpb24pIH07CiAKIEpTVGVzdEV4Y2VwdGlvbjo6SlNUZXN0RXhjZXB0aW9uKFN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV4Y2Vw
dGlvbj4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
SlNUZXN0RXhjZXB0aW9uIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VY
UE9SVCBKU1Rlc3RFeGNlcHRpb24gOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFeGNlcHRpb24q
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdEV4Y2VwdGlvbj4mJiBpbXBsKQpAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdl
dFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAg
ICBzdGF0aWMgVGVzdEV4Y2VwdGlvbiogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXhjZXB0aW9uKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCShyZXZpc2lvbiAxODAy
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2VuZXJhCiAgICAgeyAiY29uc3RydWN0
b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKSB9OwogCiB2b2lk
IEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIHsKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQ
cm90b3R5cGU6CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9FWFBP
UlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnNfaW5mbyA9IHsg
IlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnNfaW5mbyA9IHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKSB9OwogCiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpKU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgOiBwdWJs
aWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNl
OwogICAgIHN0YXRpYyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlPiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvV3JhcHBlZChKU0M6OkpTVmFs
dWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2
aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw3ICs0MDMsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmCiAjZW5kaWYKIH07CiAKLVdF
QkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNf
aW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VQ
cm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdElu
dGVyZmFjZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTQxMSw3ICs0MTEsNyBAQCB2b2lkIEpTVGVzdElu
dGVyZmFjZVByb3RvdHlwZTo6ZmluaXNoQ3JlCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZt
LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJD
T1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlOjpzX2luZm8gPSB7ICJU
ZXN0SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEludGVyZmFjZVRhYmxlLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RJbnRlcmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAm
SlNUZXN0SW50ZXJmYWNlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNl
KSB9OwogCiBKU1Rlc3RJbnRlcmZhY2U6OkpTVGVzdEludGVyZmFjZShTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RJbnRlcmZhY2U+
JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVz
dEludGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
SlNUZXN0SW50ZXJmYWNlIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0SW50ZXJmYWNlKiBjcmVh
dGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RJbnRlcmZhY2U+JiYgaW1wbCkKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIFRlc3RJbnRlcmZhY2UqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJ
bmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTgwMjg4KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE1lZGlhUQogICAgIHsgIm1ldGhvZCIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVGdW5jdGlvbk1ldGhvZCksIChp
bnRwdHJfdCkgKDEpIH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUpIH07Citjb25z
dCBDbGFzc0luZm8gSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90
b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHkKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXMo
dm0sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6c19pbmZvID0geyAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6c19pbmZvID0geyAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpIH07
CiAKIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4mJiBpbXBsKQogICAgIDogSlNET01X
cmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBKU0RPTVdy
YXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFw
cGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGNyZWF0
ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+JiYgaW1wbCkKQEAgLTM4LDcgKzM4
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvV3JhcHBl
ZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciog
dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpT
Q2VsbCopOwogICAgIH5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZEMKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVt
IHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1
Y3RvclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUi
LCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3JQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
clByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSlNUZXN0
TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZTo6ZmkKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXMo
dm0sIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwog
fQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQ29uc3RydWN0b3IpIH07Citjb25zdCBDbGFz
c0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3Ry
dWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVk
Q29uc3RydWN0b3IpIH07CiAKIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OkpTVGVzdE5hbWVkQ29u
c3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZjxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQogICAgIDogSlNET01XcmFw
cGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvci5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNUZXN0TmFt
ZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5hbWVk
Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5hbWVkQ29uc3RydWN0b3I+JiYgaW1wbCkK
QEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRv
V3JhcHBlZChKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBUZXN0TmFtZWRDb25zdHJ1Y3Rvciog
dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpT
Q2VsbCopOwogICAgIH5KU1Rlc3ROYW1lZENvbnN0cnVjdG9yKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5j
cHAJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROb2RlUHIKICAgICB7ICJjb25zdHJ1
Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5vZGVDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0sCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9kZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE5vZGVQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vZGVQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0Tm9kZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5vZGVQcm90b3R5cGUiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vZGVQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ewpAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24KICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE5vZGVQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0Tm9kZTo6c19pbmZvID0geyAiVGVzdE5vZGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vZGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9k
ZTo6c19pbmZvID0geyAiVGVzdE5vZGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE5vZGUpIH07CiAKIEpTVGVzdE5vZGU6OkpTVGVzdE5vZGUoU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9k
ZT4mJiBpbXBsKQogICAgIDogSlNOb2RlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6Om1v
dmUoaW1wbCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RO
b2RlIDogcHVibGljIEpTTm9kZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3ROb2RlIDog
cHVibGljIEpTTm9kZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vZGUgQmFzZTsKICAgICBz
dGF0aWMgSlNUZXN0Tm9kZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9kZT4mJiBpbXBsKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWlu
aXN0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAkocmV2aXNpb24gMTgwMjg4KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWlu
aXN0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5vbmRldAogICAgIHsgIm5vbmRldGVybWluaXN0aWNaZXJv
QXJnRnVuY3Rpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlRnVu
Y3Rpb25Ob25kZXRlcm1pbmlzdGljWmVyb0FyZ0Z1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSwK
IH07CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpY1Byb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Y1Byb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBKU1Rlc3RO
b25kZXRlcm1pbmlzdGljUHJvdG90eXBlOjpmaQogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2
bSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9
CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
OjpzX2luZm8gPSB7ICJUZXN0Tm9uZGV0ZXJtaW5pc3RpYyIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYykgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpzX2luZm8gPSB7ICJUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpYykgfTsKIAogSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6SlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3ROb25kZXRlcm1pbmlzdGljPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBw
ZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3ROb25k
ZXRlcm1pbmlzdGljIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9S
VCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpYyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4mJiBpbXBsKQpA
QCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9X
cmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0
b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTVGVzdE5vbmRldGVybWluaXN0aWMoKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJ
KHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDUsNyArNjQ1LDcgQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBybwogICAgIHsgImFueSIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KSwgKGludHB0cl90KSAoMikgfSwKIH07
CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNf
aW5mbyA9IHsgIlRlc3RPYmplY3RQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdE9ialByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3RQcm90b3R5cGUiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9ialByb3RvdHlwZSkgfTsKIAog
dm9pZCBKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTY1
Myw3ICs2NTMsNyBAQCB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oCiAg
ICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVl
cywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2Jq
OjpzX2luZm8gPSB7ICJUZXN0T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE9ialRhYmxl
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iaikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RPYmo6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0T2Jq
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqKSB9OwogCiBKU1Rlc3RPYmo6OkpT
VGVzdE9iaihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RPYmo+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5
KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVz
dE9iaiA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0
T2JqIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdy
YXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T2JqKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPYmo+
JiYgaW1wbCkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE9iaiogdG9XcmFw
cGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RPYmoqIHRvV3JhcHBlZChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE9i
aigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xODIsNyArMTgyLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE92ZXJs
bwogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKIH07CiAKLVdFQkNPUkVfRVhQ
T1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1Byb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1By
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xOTAs
NyArMTkwLDcgQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eQogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1By
b3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpzX2luZm8gPSB7ICJUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycyIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycykgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycykgfTsKIAogSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgJKHJldmlzaW9u
IDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cz4mJiBpbXBsKQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNlcmlhbAogICAgIHsgImNhY2hlZFJlYWRvbmx5
VmFsdWUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhYwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0K
IAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKSB9OwogCiBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgJKHJldmlzaW9u
IDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgV0VC
Q09SRV9FWFBPUlQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsK
ICAgICBzdGF0aWMgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+JiYgaW1wbCkKQEAgLTQw
LDcgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkocmV2aXNpb24g
MTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RUeXBlZGUKICAgICB7ICJtZXRob2RXaXRoRXhjZXB0
aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhF
eGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0VHlwZWRl
ZnNQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dFR5cGVkZWZzUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFR5cGVkZWZzUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0VHlwZWRlZnNQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKSB9OwogCiB2
b2lkIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBA
IC0yMTIsNyArMjEyLDcgQEAgdm9pZCBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZTo6ZmluaXNoQ3Jl
YQogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
SlNUZXN0VHlwZWRlZnM6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmcyIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RUeXBlZGVmc1RhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZz
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFR5cGVkZWZzOjpzX2luZm8gPSB7ICJUZXN0VHlw
ZWRlZnMiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0VHlwZWRlZnNUYWJsZSwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RUeXBlZGVmcykgfTsKIAogSlNUZXN0VHlwZWRlZnM6OkpTVGVzdFR5cGVk
ZWZzKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWY8VGVzdFR5cGVkZWZzPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAkocmV2aXNpb24gMTgwMjg4KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBKU1Rlc3RUeXBlZGVmcyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgSlNUZXN0VHlwZWRlZnMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RU
eXBlZGVmcyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKQEAgLTM4LDcgKzM4
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdFR5cGVkZWZzKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVl
KTsKKyAgICBzdGF0aWMgVGVzdFR5cGVkZWZzKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RUeXBlZGVmcygpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTYXR0cmlidXRl
UAogICAgIHsgInJlYWRvbmx5IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzYXR0cmlidXRlUmVhZG9ubHkpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQg
Y29uc3QgQ2xhc3NJbmZvIEpTYXR0cmlidXRlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJhdHRyaWJ1
dGVQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTYXR0
cmlidXRlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTYXR0cmlidXRlUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJhdHRyaWJ1dGVQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTYXR0cmlidXRlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTYXR0cmli
dXRlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CkBAIC0xMTQsNyArMTE0LDcg
QEAgdm9pZCBKU2F0dHJpYnV0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpbwogICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNhdHRyaWJ1dGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMp
OwogfQogCi1XRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNhdHRyaWJ1dGU6OnNfaW5m
byA9IHsgImF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNhdHRyaWJ1dGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNhdHRyaWJ1dGU6OnNfaW5mbyA9IHsg
ImF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNhdHRy
aWJ1dGUpIH07CiAKIEpTYXR0cmlidXRlOjpKU2F0dHJpYnV0ZShTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPGF0dHJpYnV0ZT4mJiBpbXBs
KQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNhdHRyaWJ1dGUgOiBwdWJsaWMgSlNE
T01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEpTYXR0cmlidXRlIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAg
ICBzdGF0aWMgSlNhdHRyaWJ1dGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8YXR0cmlidXRlPiYmIGltcGwpCkBA
IC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVh
dGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGF0dHJpYnV0ZSogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7CisgICAgc3RhdGljIGF0dHJpYnV0ZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU2F0dHJpYnV0
ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNy
ZWFkb25seS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNyZWFk
b25seVByCiAgICAgeyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c3JlYWRvbmx5Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogfTsKIAotV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xh
c3NJbmZvIEpTcmVhZG9ubHlQcm90b3R5cGU6OnNfaW5mbyA9IHsgInJlYWRvbmx5UHJvdG90eXBl
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU3JlYWRvbmx5UHJvdG90
eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTcmVhZG9ubHlQcm90b3R5cGU6OnNfaW5mbyA9IHsg
InJlYWRvbmx5UHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU3JlYWRvbmx5UHJvdG90eXBlKSB9OwogCiB2b2lkIEpTcmVhZG9ubHlQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEpTcmVhZG9u
bHlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZt
LCBKU3JlYWRvbmx5UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotV0VCQ09SRV9F
WFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTcmVhZG9ubHk6OnNfaW5mbyA9IHsgInJlYWRvbmx5Iiwg
JkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU3JlYWRvbmx5KSB9OworY29u
c3QgQ2xhc3NJbmZvIEpTcmVhZG9ubHk6OnNfaW5mbyA9IHsgInJlYWRvbmx5IiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU3JlYWRvbmx5KSB9OwogCiBKU3JlYWRvbmx5
OjpKU3JlYWRvbmx5KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8cmVhZG9ubHk+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAkocmV2aXNpb24gMTgwMjg4KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEpTcmVhZG9ubHkgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIEpTcmVhZG9ubHkgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU3JlYWRvbmx5KiBjcmVhdGUoSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPHJlYWRvbmx5PiYmIGltcGwpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHJl
YWRvbmx5KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgcmVhZG9ubHkqIHRv
V3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNyZWFkb25seSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFJ1bnRpbWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwogCkBAIC01OCwxMiArNTgsMTIgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAg
IFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBCaW5kaW5nczo6TWV0aG9kKik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIGNvbnN0IFN0cmluZyYpOworICAgIFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6TWV0aG9kKik7CisgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVybmFsRnVuY3Rp
b246OlN0cnVjdHVyZUZsYWdzOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCiBw
cml2YXRlOgogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRl
KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQmluZGluZ3MgewogCi1jbGFz
cyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKIApAQCAt
NDMsMTYgKzQzLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOworICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7
CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShjb25zdCBKU09i
amVjdCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpOworICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVj
dCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKKyAg
ICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CiAKQEAgLTczLDggKzczLDggQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgot
ICAgIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqLCBQYXNzUmVm
UHRyPEluc3RhbmNlPik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYpOworICAgIFJ1bnRpbWVPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3Rh
bmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0
ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCShyZXZpc2lvbiAxODAyODgpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcg
KzEyMCw3IEBAIGlmIChsZW5ndGgoJGZvbnROYW1lc0luKSkgewogICAgIHByaW50IEYgU3RhdGlj
U3RyaW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVwYXJhbWV0ZXJzKTsKIAogICAgIGZvciBteSAkbmFt
ZSAoc29ydCBrZXlzICVwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIHByaW50IEYgIldFQkNPUkVfRVhQ
T1JUIERFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFtZSlcbiI7CisgICAgICAgIHByaW50
IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFtZSlcbiI7CiAgICAgfQogCiAgICAg
cHJpbnRJbml0KCRGLCAwKTsKQEAgLTcxNiwxNiArNzE2LDE2IEBAIHN1YiBwcmludE5hbWVzSGVh
ZGVyRmlsZQogICAgIG15ICRsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXggPSBsYygkcGFyYW1ldGVy
c3tuYW1lc3BhY2VQcmVmaXh9KTsKIAogICAgIHByaW50IEYgIi8vIE5hbWVzcGFjZVxuIjsKLSAg
ICBwcmludCBGICJleHRlcm4gY29uc3QgV1RGOjpBdG9taWNTdHJpbmcgJHtsb3dlcmNhc2VOYW1l
c3BhY2VQcmVmaXh9TmFtZXNwYWNlVVJJO1xuXG4iOworICAgIHByaW50IEYgIldFQkNPUkVfRVhQ
T1JUIGV4dGVybiBjb25zdCBXVEY6OkF0b21pY1N0cmluZyAke2xvd2VyY2FzZU5hbWVzcGFjZVBy
ZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAg
ICAgICBwcmludCBGICIvLyBUYWdzXG4iOwotICAgICAgICBwcmludE1hY3JvcygkRiwgImV4dGVy
biBjb25zdCBXZWJDb3JlOjokcGFyYW1ldGVyc3tuYW1lc3BhY2V9UXVhbGlmaWVkTmFtZSIsICJU
YWciLCBcJWFsbFRhZ3MpOworICAgICAgICBwcmludE1hY3JvcygkRiwgIldFQkNPUkVfRVhQT1JU
IGV4dGVybiBjb25zdCBXZWJDb3JlOjokcGFyYW1ldGVyc3tuYW1lc3BhY2V9UXVhbGlmaWVkTmFt
ZSIsICJUYWciLCBcJWFsbFRhZ3MpOwogICAgIH0KIAogICAgIGlmIChrZXlzICVhbGxBdHRycykg
ewogICAgICAgICBwcmludCBGICIvLyBBdHRyaWJ1dGVzXG4iOwotICAgICAgICBwcmludE1hY3Jv
cygkRiwgImV4dGVybiBjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lIiwgIkF0dHIiLCBcJWFs
bEF0dHJzKTsKKyAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJXRUJDT1JFX0VYUE9SVCBleHRlcm4g
Y29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSIsICJBdHRyIiwgXCVhbGxBdHRycyk7CiAgICAg
fQogICAgIHByaW50IEYgIiNlbmRpZlxuXG4iOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0hpc3RvcnlJdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgZW51bSBjbGFz
cyBQcnVuaW5nUmVhc29uOwogCiB0eXBlZGVmIFZlY3RvcjxSZWY8SGlzdG9yeUl0ZW0+PiBIaXN0
b3J5SXRlbVZlY3RvcjsKIAotZXh0ZXJuIHZvaWQgKCpub3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQp
KEhpc3RvcnlJdGVtKik7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCAoKm5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZCkoSGlzdG9yeUl0ZW0qKTsKIAogY2xhc3MgSGlzdG9yeUl0ZW0gOiBwdWJs
aWMgUmVmQ291bnRlZDxIaXN0b3J5SXRlbT4gewogICAgIGZyaWVuZCBjbGFzcyBQYWdlQ2FjaGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAkocmV2aXNpb24gMTgwMjg4KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwMiw3ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3F1aWNrUmVkaXJlY3RDb21p
bmc7CiAgICAgYm9vbCBtX3NlbnRSZWRpcmVjdE5vdGlmaWNhdGlvbjsKLSAgICBXRUJDT1JFX0VY
UE9SVCBib29sIG1faW5TdG9wQWxsTG9hZGVyczsKKyAgICBib29sIG1faW5TdG9wQWxsTG9hZGVy
czsKIAogICAgIFN0cmluZyBtX291dGdvaW5nUmVmZXJyZXI7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTEgKzQw
LDExIEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIExv
YWRlclN0cmF0ZWd5IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFJlc291
cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CisgICAgdmlydHVhbCBS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29y
a2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJj
ZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CisgICAgdmly
dHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENy
ZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3Vy
Y2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIEJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CisgICAgdmlydHVhbCBC
bG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB+TG9hZGVyU3RyYXRlZ3koKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZFNjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3
ICs0OCw3IEBAIGNsYXNzIFN1YnJlc291cmNlTG9hZGVyOwogY2xhc3MgUmVzb3VyY2VMb2FkU2No
ZWR1bGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXNvdXJjZUxvYWRTY2hlZHVsZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBmcmllbmQgUmVzb3VyY2VM
b2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBmcmllbmQgUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUGFzc1JlZlB0cjxTdWJyZXNvdXJjZUxvYWRl
cj4gc2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoRnJhbWUqLCBDYWNoZWRSZXNvdXJjZSosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cj4gc2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkKEZyYW1lKiwgTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXJDbGllbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxJY29uUmVjb3JkPiBnZXRP
ckNyZWF0ZUljb25SZWNvcmQoY29uc3QgU3RyaW5nJiBpY29uVVJMKTsKICAgICBQYWdlVVJMUmVj
b3JkKiBnZXRPckNyZWF0ZVBhZ2VVUkxSZWNvcmQoY29uc3QgU3RyaW5nJiBwYWdlVVJMKTsKICAg
ICAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1faXNFbmFibGVkOworICAgIGJvb2wgbV9pc0Vu
YWJsZWQ7CiAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiAKICAgICBtdXRhYmxl
IE11dGV4IG1fc3luY0xvY2s7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2VCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkRhdGFiYXNlQmFzZS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsx
NzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeW5jaHJvbm91cyBjYWxscyB1c2VkIGludGVybmFs
bHkgYnkgV2ViQ29yZS4KICAgICAvLyBVc2FnZSBzaG91bGQgYmUgcmVwbGFjZWQgYnkgYXN5bmNo
cm9ub3VzIGNhbGxzLgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgU3RyaW5nIHN5bmNocm9u
b3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcg
c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNpc2lvbiBzeW5jaHJvbm91
c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRMb2FkZXIqKSB7
IHJldHVybiBJY29uTG9hZE5vOyB9CiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJY29u
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyByZXR1cm4gMDsgfQpA
QCAtMjAwLDcgKzIwMCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9w
VGhyZWFkQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSk7CisgICAgdmlydHVhbCBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBkaXJl
Y3RvcnksIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxJY29ucygpIHsgfQogCkBAIC0yMDgsNyAr
MjA4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoSWNvbkRhdGFiYXNl
Q2xpZW50KikgeyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzT3BlbigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTdHJpbmcgZGF0YWJhc2VQ
YXRoKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZGF0YWJhc2VQYXRoKCkgY29uc3Q7CiAK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCShyZXZpc2lv
biAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBJREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgRGF0YWJhc2VQcm92aWRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPERhdGFiYXNlUHJvdmlkZXI+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIH5EYXRhYmFzZVByb3ZpZGVyKCk7CisgICAgdmlydHVhbCB+RGF0YWJhc2VQcm92
aWRlcigpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UqIGlkYkZhY3RvcnlCYWNrZW5kKCk7CkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIFJlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlSURCRmFjdG9yeUJhY2tlbmQoKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkgPSAwOwogCiAgICAg
Ym9vbCBtX2RpZENyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIHsgZmFsc2UgfTsKICAg
ICBSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZEludGVyZmFjZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDcgKzQ3MCw3IEBAIHByaXZhdGU6CiAj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8UG9pbnRl
ckxvY2tDb250cm9sbGVyPiBtX3BvaW50ZXJMb2NrQ29udHJvbGxlcjsKICNlbmRpZgotICAgIFdF
QkNPUkVfRVhQT1JUIFJlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29y
ZGluYXRvcjsKKyAgICBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3I7CiAKICAgICBjb25zdCBSZWZQdHI8U2V0dGluZ3M+IG1fc2V0dGluZ3M7CiAgICAg
Y29uc3Qgc3RkOjp1bmlxdWVfcHRyPFByb2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgJKHJldmlzaW9uIDE4MDI4OCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsOCArNTAsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUGFnZUNvbnNvbGVDbGll
bnQoUGFnZSYpOwogICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlQ2xpZW50KCk7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAgc3RhdGljIHZvaWQg
c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgbXV0ZSgp
OwogICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJs
YXkuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+IGNyZWF0ZShD
bGllbnQmLCBPdmVybGF5VHlwZSA9IE92ZXJsYXlUeXBlOjpWaWV3KTsKLSAgICB2aXJ0dWFsIH5Q
YWdlT3ZlcmxheSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflBhZ2VPdmVybGF5KCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBQYWdlT3ZlcmxheUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIo
KSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAkocmV2aXNp
b24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTgsNyArMTk4LDcgQEAgdWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVG
b3JQYXRoKGNvbnN0IAogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi1TdHJpbmcgbG9jYWxV
c2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbG9j
YWxVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCk7CiBTdHJpbmcgcm9hbWluZ1VzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTgwMjg4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIq
IG1fbG9nU3RyaW5nOwogICAgICAgICBzaXplX3QgbV9pbml0aWFsTWVtb3J5OwogCi0gICAgICAg
IHN0YXRpYyBib29sIHNfbG9nZ2luZ0VuYWJsZWQ7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIHNfbG9nZ2luZ0VuYWJsZWQ7CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
ODYsNyArODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgVVNFKFdFQl9USFJFQUQpCiAg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUaHJlYWRHbG9iYWxEYXRhKiBzaGFyZWRNYWlu
VGhyZWFkU3RhdGljRGF0YTsKICNlbmRpZgotICAgICAgICBmcmllbmQgVGhyZWFkR2xvYmFsRGF0
YSYgdGhyZWFkR2xvYmFsRGF0YSgpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCBmcmllbmQgVGhy
ZWFkR2xvYmFsRGF0YSYgdGhyZWFkR2xvYmFsRGF0YSgpOwogICAgIH07CiAKICNpZiBVU0UoV0VC
X1RIUkVBRCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCShyZXZpc2lvbiAxODAyODgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDkgKzE1
NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwogCi0gICAgZnJpZW5k
IGJvb2wgZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihjb25zdCBVUkwmLCBjb25zdCBV
UkwmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBmcmllbmQgYm9vbCBlcXVhbElnbm9yaW5nRnJhZ21l
bnRJZGVudGlmaWVyKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogCi0gICAgZnJpZW5kIGJvb2wg
cHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOworICAg
IFdFQkNPUkVfRVhQT1JUIGZyaWVuZCBib29sIHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChj
b25zdCBVUkwmLCBjb25zdCBVUkwmKTsKIAogICAgIHVuc2lnbmVkIGhvc3RTdGFydCgpIGNvbnN0
OwogICAgIHVuc2lnbmVkIGhvc3RFbmQoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCShyZXZpc2lv
biAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjbG9uZShQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqKSBjb25zdCA9IDA7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5QbGF0
Zm9ybUNBTGF5ZXIoKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXIoKTsKIAogICAgIEdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9s
YXllcklEOyB9CiAKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhpcyBmdW5j
dGlvbiBwYXNzZXMgdGhlIGxheWVyIGFzIGEgdm9pZCogcmF0aGVyIHRoYW4gYSBQbGF0Zm9ybUxh
eWVyIGJlY2F1c2UgUGxhdGZvcm1MYXllcgogICAgIC8vIGlzIGRlZmluZWQgZGlmZmVyZW50bHkg
Zm9yIE9iaiBDIGFuZCBDKysuIFRoaXMgYWxsb3dzIGNhbGxlcnMgZnJvbSBib3RoIGxhbmd1YWdl
cy4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNB
TGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcik7CisgICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciog
cGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOwogCiAgICAgdmlydHVhbCBQbGF0
Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXllci5nZXQoKTsg
fQogCkBAIC0yNTEsMTQgKzI1MSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgIC8vIEZ1bmN0
aW9ucyBhbGxvd3MgdXMgdG8gc2hhcmUgaW1wbGVtZW50YXRpb24gYWNyb3NzIFdlYlRpbGVkTGF5
ZXIgYW5kIFdlYkxheWVyCiAgICAgc3RhdGljIFJlcGFpbnRSZWN0TGlzdCBjb2xsZWN0UmVjdHNU
b1BhaW50KENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVmLCBQbGF0Zm9ybUNB
TGF5ZXIqLCBSZXBhaW50UmVjdExpc3QmIGRpcnR5UmVjdHMpOworICAgIHN0YXRpYyB2b2lkIGRy
YXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKiwgUmVwYWludFJl
Y3RMaXN0JiBkaXJ0eVJlY3RzKTsKICAgICBzdGF0aWMgdm9pZCBkcmF3UmVwYWludEluZGljYXRv
cihDR0NvbnRleHRSZWYsIFBsYXRmb3JtQ0FMYXllciosIGludCByZXBhaW50Q291bnQsIENHQ29s
b3JSZWYgY3VzdG9tQmFja2dyb3VuZENvbG9yKTsKICAgICBzdGF0aWMgQ0dSZWN0IGZyYW1lRm9y
TGF5ZXIoY29uc3QgUGxhdGZvcm1MYXllciopOwogCiAgICAgdm9pZCBtb3ZlVG9MYXllclBvb2wo
KTsKIAogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtQ0FMYXllcihMYXll
clR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpOworICAgIFBsYXRmb3JtQ0FMYXll
cihMYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpOwogCiAgICAgdmlydHVh
bCBMYXllclBvb2wmIGxheWVyUG9vbCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgJKHJldmlzaW9u
IDE4MDI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxl
UmVmZXJlbmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDExICszOSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoKSk7
CiAgICAgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QmxvYkRhdGFGaWxlUmVmZXJl
bmNlKCk7CisgICAgdmlydHVhbCB+QmxvYkRhdGFGaWxlUmVmZXJlbmNlKCk7CiAKICAgICB2b2lk
IHN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBTdHJpbmcmIHBhdGgoKTsKKyAgICBjb25zdCBTdHJpbmcmIHBhdGgoKTsKICAgICB1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSgpOwogICAgIGRvdWJsZSBleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUo
KTsKIApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJldm9rZUZp
bGVBY2Nlc3MoKTsKIAogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhRmls
ZVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZShjb25zdCBTdHJpbmcmIHBhdGgpOwogCiBwcml2YXRlOgogI2lmIEVOQUJMRShGSUxFX1JFUExB
Q0VNRU5UKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oCShyZXZpc2lvbiAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9iUmVnaXN0cnlJbXBsKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkJs
b2JSZWdpc3RyeSgpOworICAgIHZpcnR1YWwgfkJsb2JSZWdpc3RyeSgpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgJKHJldmlzaW9uIDE4MDI4OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEJsb2JSZWdpc3RyeUltcGwg
ZmkKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5CbG9iUmVnaXN0cnlJbXBsKCk7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBCbG9iRGF0YSogZ2V0QmxvYkRhdGFGcm9tVVJMKGNvbnN0IFVSTCYpIGNvbnN0
OworICAgIEJsb2JEYXRhKiBnZXRCbG9iRGF0YUZyb21VUkwoY29uc3QgVVJMJikgY29uc3Q7CiAK
ICAgICBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCopOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTgw
Mjg4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDE0ICs0NCwxNCBAQCBjbGFzcyBEYXRhYmFzZUF1dGhvcml6ZXI7
CiBjbGFzcyBTUUxpdGVTdGF0ZW1lbnQ7CiBjbGFzcyBTUUxpdGVUcmFuc2FjdGlvbjsKIAotZXh0
ZXJuIGNvbnN0IGludCBTUUxSZXN1bHREb25lOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0
IGludCBTUUxSZXN1bHREb25lOwogZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRFcnJvcjsKLWV4
dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0T2s7Ci1leHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdFJv
dzsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBpbnQgU1FMUmVzdWx0T2s7CitXRUJDT1JF
X0VYUE9SVCBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdFJvdzsKIGV4dGVybiBjb25zdCBpbnQg
U1FMUmVzdWx0U2NoZW1hOwogZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRGdWxsOwogZXh0ZXJu
IGNvbnN0IGludCBTUUxSZXN1bHRJbnRlcnJ1cHQ7Ci1leHRlcm4gY29uc3QgaW50IFNRTFJlc3Vs
dENvbnN0cmFpbnQ7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgaW50IFNRTFJlc3VsdENv
bnN0cmFpbnQ7CiAKIGNsYXNzIFNRTGl0ZURhdGFiYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTUUxpdGVEYXRhYmFzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuaAkocmV2aXNpb24gMTgwMjg4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Njcm9sbEJlaGF2aW9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDggKzYyLDggQEAgc3Ry
dWN0IFNjcm9sbEFsaWdubWVudCB7CiAgICAgc3RhdGljIFNjcm9sbEJlaGF2aW9yIGdldEhpZGRl
bkJlaGF2aW9yKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgcykgeyByZXR1cm4gcy5tX3JlY3RIaWRk
ZW47IH0KIAogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5l
ZWRlZDsKLSAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOZWVk
ZWQ7Ci0gICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5czsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9F
ZGdlSWZOZWVkZWQ7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdu
bWVudCBhbGlnbkNlbnRlckFsd2F5czsKICAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50
IGFsaWduVG9wQWx3YXlzOwogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25S
aWdodEFsd2F5czsKICAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduTGVmdEFs
d2F5czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCShyZXZpc2lv
biAxODAyODgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgY29uc3QgVUNoYXIgYXNjaWlMaW5l
QnJlYWtUYWJsZUZpCiBzdGF0aWMgY29uc3QgVUNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZUxhc3RD
aGFyID0gMTI3Owogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGFzY2lpTGluZUJyZWFrVGFibGVDb2x1
bW5Db3VudCA9IChhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgLSBhc2NpaUxpbmVCcmVha1Rh
YmxlRmlyc3RDaGFyKSAvIDggKyAxOwogCi1leHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciBhc2Np
aUxpbmVCcmVha1RhYmxlW11bYXNjaWlMaW5lQnJlYWtUYWJsZUNvbHVtbkNvdW50XTsKK1dFQkNP
UkVfRVhQT1JUIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGFzY2lpTGluZUJyZWFrVGFibGVb
XVthc2NpaUxpbmVCcmVha1RhYmxlQ29sdW1uQ291bnRdOwogCiBlbnVtIGNsYXNzIE5CU1BCZWhh
dmlvciB7CiAgICAgSWdub3JlTkJTUCwK
</data>

          </attachment>
      

    </bug>

</bugzilla>