<?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>79301</bug_id>
          
          <creation_ts>2012-02-22 16:34:41 -0800</creation_ts>
          <short_desc>[chromium] Move WebGraphicsContext3D header into the Platform directory</short_desc>
          <delta_ts>2012-02-24 14:38:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          <dependson>79296</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>562539</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-22 16:34:41 -0800</bug_when>
    <thetext>[chromium] Move WebGraphicsContext3D header into the Platform directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562543</commentid>
    <comment_count>1</comment_count>
      <attachid>128329</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-22 16:35:52 -0800</bug_when>
    <thetext>Created attachment 128329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564549</commentid>
    <comment_count>2</comment_count>
      <attachid>128783</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-24 12:31:40 -0800</bug_when>
    <thetext>Created attachment 128783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564550</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-24 12:32:44 -0800</bug_when>
    <thetext>$ git diff master:Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h Source/Platform/chromium/public/WebGraphicsContext3D.h
diff --git a/Source/Platform/chromium/public/WebGraphicsContext3D.h b/Source/Platform/chromium/public/WebGraphicsContext3D.h
index 3b21164..2f804d5 100644
--- a/Source/Platform/chromium/public/WebGraphicsContext3D.h
+++ b/Source/Platform/chromium/public/WebGraphicsContext3D.h
@@ -136,7 +136,7 @@ public:
     };
 
     // This destructor needs to be public so that using classes can destroy instances if initialization fails.
-    virtual ~WebGraphicsContext3D() {}
+    virtual ~WebGraphicsContext3D() { }
 
     // Makes the OpenGL context current on the current thread. Returns true on
     // success.
@@ -378,7 +378,7 @@ public:
     virtual void deleteShader(WebGLId) = 0;
     virtual void deleteTexture(WebGLId) = 0;
 
-    virtual void setContextLostCallback(WebGraphicsContextLostCallback* callback) {}
+    virtual void setContextLostCallback(WebGraphicsContextLostCallback* callback) { }
     virtual void setErrorMessageCallback(WebGraphicsErrorMessageCallback* callback) { }
     // GL_ARB_robustness
     //
$ git diff master:Source/WebKit/chromium/public/platform/WebNonCopyable.h Source/Platform/chromium/public/WebNonCopyable.h
$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564551</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 12:36:01 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564552</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 12:36:19 -0800</bug_when>
    <thetext>Attachment 128783 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/Platform/chromium/public/WebGraphicsContext3D.h:195:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/Platform/chromium/public/WebGraphicsContext3D.h:230:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/Platform/chromium/public/WebGraphicsContext3D.h:231:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/Platform/chromium/public/WebGraphicsContext3D.h:342:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/Platform/chromium/public/WebGraphicsContext3D.h:344:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/Platform/chromium/public/WebGraphicsContext3D.h:359:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564651</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-24 14:38:36 -0800</bug_when>
    <thetext>Committed r108848: &lt;http://trac.webkit.org/changeset/108848&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128329</attachid>
            <date>2012-02-22 16:35:52 -0800</date>
            <delta_ts>2012-02-24 12:31:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79301-20120222163551.patch</filename>
            <type>text/plain</type>
            <size>56537</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA0NWM4NTA0ZWRlZTEy
M2EyNDY3NjczYTE0Yjc2YjQ1NDgwZTRhYzZhLi5mMTVlMGIxMzMyZTA2NzZkNGM0MTc0ZDI0Mjk1
YjkwYzJjMTAyZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMi0wMi0yMiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJHcmFwaGljc0NvbnRleHQzRCBoZWFkZXIgaW50byB0aGUgUGxhdGZvcm0gZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTMwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChBY3RpdmVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXM6OkF0dHJpYnV0ZXMpOgorICAg
ICAgICAoQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6V2ViR3JhcGhpY3ND
b250ZXh0TG9zdENhbGxiYWNrOjp+V2ViR3JhcGhpY3NDb250ZXh0TG9zdENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkdyYXBoaWNzRXJyb3JNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6V2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VDYWxsYmFjazo6
fldlYkdyYXBoaWNzRXJyb3JNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViR3JhcGhpY3NT
d2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEOjpXZWJHcmFwaGljc1N3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFj
a0NIUk9NSVVNOjp+V2ViR3JhcGhpY3NTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlV
TSk6CisgICAgICAgIChXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tD
SFJPTUlVTSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpXZWJHcmFw
aGljc01lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTTo6fldlYkdyYXBoaWNz
TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKToKKyAgICAgICAgKFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6On5XZWJHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpzZXRNZW1vcnlBbGxvY2F0aW9uQ2hhbmdl
ZENhbGxiYWNrQ0hST01JVU0pOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RDo6c2V0UGFyZW50Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4
dDNEOjpzZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpyYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hS
T01JVU0pOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4
dExvc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpz
ZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0Q6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEQ0hS
T01JVU0pOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6dGV4U3RvcmFn
ZTJERVhUKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6Om9uQ3JlYXRl
R3JHTEludGVyZmFjZSk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYk5vbkNvcHlhYmxl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dl
Yk5vbkNvcHlhYmxlLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTm9uQ29weWFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb25Db3B5YWJsZTo6V2ViTm9uQ29weWFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb25Db3B5YWJsZTo6fldlYk5vbkNvcHlhYmxlKToKKwogMjAx
Mi0wMi0wOCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IHIxMDcwNDIgY2F1c2VkIGNvbXBpbGUgYnJlYWthZ2VzIG9uIGNocm9taXVtIHRyeSBib3RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDE4MTQ3N2QyMGVmNTExY2I5N2M3Y2Y2MWIzN2Y5
Njk4MGFhMzc1NWIuLjFkZjliZTdkNDFkZjA0NDVjM2ZkZWFkNGU4MjJmNzY3ODIyYzU4ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTItMDItMjIgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1d
IE1vdmUgV2ViR3JhcGhpY3NDb250ZXh0M0QgaGVhZGVyIGludG8gdGhlIFBsYXRmb3JtIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkz
MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1
YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHB1YmxpYy9w
bGF0Zm9ybS9XZWJOb25Db3B5YWJsZS5oOgorCisyMDEyLTAyLTIyICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgZGVwcmVj
YXRlZCBhbmQgdW51c2VkIFdlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0aWFsaXplIGNhbGwKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5Mjk2CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3Jt
L1BsYXRmb3JtLmd5cGkKaW5kZXggYzRkYTRkOWRjNDJhY2Y3NGZmOThjYmZhODYyMjZlZGZjNWRj
MzIwYy4uOGQ1OWZjNDIzMGU4NTA1N2YwODZjYWIxM2Y5YTM4NjIzNjlhMjM3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtLmd5cGkKQEAgLTM2LDcgKzM2LDkgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViRmxvYXRQb2ludC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViRmxv
YXRRdWFkLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJGbG9hdFJlY3QuaCcs
CisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNaW1lUmVnaXN0cnkuaCcsCisgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYk5vbkNvcHlhYmxlLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMv
V2ViUmVjdC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU2l6ZS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZjgwNGQ1M2JhMWMzZTA4ZmU5ODRlODM1ZGEyZDY5MGQ3NzBm
MmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJHcmFwaGljc0NvbnRleHQzRC5oCkBAIC0wLDAgKzEsNDE1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHcmFwaGlj
c0NvbnRleHQzRF9oCisjZGVmaW5lIFdlYkdyYXBoaWNzQ29udGV4dDNEX2gKKworI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCisKKyNkZWZpbmUgVVNFX1dHQzNEX1RZUEVTCisKKyNpZiBXRUJLSVRfVVNJTkdf
U0tJQQorc3RydWN0IEdyR0xJbnRlcmZhY2U7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKy8vIFdHQzNEIHR5cGVzIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIEdMIHR5cGVzIGFzIGRl
ZmluZWQgaW4gT3BlbkdMIEVTIDIuMAorLy8gaGVhZGVyIGZpbGUgZ2wyLmggZnJvbSBraHJvbm9z
Lm9yZy4KK3R5cGVkZWYgY2hhciBXR0MzRGNoYXI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0Mz
RGVudW07Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgV0dDM0Rib29sZWFuOwordHlwZWRlZiB1bnNp
Z25lZCBpbnQgV0dDM0RiaXRmaWVsZDsKK3R5cGVkZWYgc2lnbmVkIGNoYXIgV0dDM0RieXRlOwor
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIFdHQzNEdWJ5dGU7Cit0eXBlZGVmIHNob3J0IFdHQzNEc2hv
cnQ7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFdHQzNEdXNob3J0OwordHlwZWRlZiBpbnQgV0dD
M0RpbnQ7Cit0eXBlZGVmIGludCBXR0MzRHNpemVpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgV0dD
M0R1aW50OwordHlwZWRlZiBmbG9hdCBXR0MzRGZsb2F0OwordHlwZWRlZiBmbG9hdCBXR0MzRGNs
YW1wZjsKK3R5cGVkZWYgc2lnbmVkIGxvbmcgaW50IFdHQzNEaW50cHRyOwordHlwZWRlZiBzaWdu
ZWQgbG9uZyBpbnQgV0dDM0RzaXplaXB0cjsKKworLy8gVHlwZWRlZiBmb3Igc2VydmVyLXNpZGUg
b2JqZWN0cyBsaWtlIE9wZW5HTCB0ZXh0dXJlcyBhbmQgcHJvZ3JhbSBvYmplY3RzLgordHlwZWRl
ZiBXR0MzRHVpbnQgV2ViR0xJZDsKKworLy8gVGhpcyBpbnRlcmZhY2UgYWJzdHJhY3RzIHRoZSBv
cGVyYXRpb25zIHBlcmZvcm1lZCBieSB0aGUKKy8vIEdyYXBoaWNzQ29udGV4dDNEIGluIG9yZGVy
IHRvIGltcGxlbWVudCBXZWJHTC4gTmVhcmx5IGFsbCBvZiB0aGUKKy8vIG1ldGhvZHMgZXhwb3Nl
ZCBvbiB0aGlzIGludGVyZmFjZSBtYXAgZGlyZWN0bHkgdG8gZW50cnkgcG9pbnRzIGluCisvLyB0
aGUgT3BlbkdMIEVTIDIuMCBBUEkuCisvLworLy8gQ3JlYXRpbmcgYSBXZWJHcmFwaGljc0NvbnRl
eHQgZG9lcyBub3QgbWFrZSBpdCBjdXJyZW50LCBvciBndWFyYW50ZWUKKy8vIHRoYXQgdGhlIGNv
bnRleHQgaGFzIGJlZW4gY3JlYXRlZCBzdWNjZXNzZnVsbHkuIFVzZQorLy8gbWFrZUNvbnRleHRD
dXJyZW50KCkgdG8gY29tcGxldGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbnRleHQsIHRyZWF0
aW5nCisvLyBhIGZhbHNlIHJldHVybiB2YWx1ZSBhcyBpbmRpY2F0aW9uIHRoYXQgdGhlIGNvbnRl
eHQgY291bGQgbm90IGJlIGNyZWF0ZWQKKy8vIHN1Y2Nlc3NmdWxseS4KK2NsYXNzIFdlYkdyYXBo
aWNzQ29udGV4dDNEIDogcHVibGljIFdlYk5vbkNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICAvLyBS
ZXR1cm4gdmFsdWUgZnJvbSBnZXRBY3RpdmVVbmlmb3JtIGFuZCBnZXRBY3RpdmVBdHRyaWIuCisg
ICAgc3RydWN0IEFjdGl2ZUluZm8geworICAgICAgICBXZWJTdHJpbmcgbmFtZTsKKyAgICAgICAg
V0dDM0RlbnVtIHR5cGU7CisgICAgICAgIFdHQzNEaW50IHNpemU7CisgICAgfTsKKworICAgIC8v
IENvbnRleHQgY3JlYXRpb24gYXR0cmlidXRlcy4KKyAgICBzdHJ1Y3QgQXR0cmlidXRlcyB7Cisg
ICAgICAgIEF0dHJpYnV0ZXMoKQorICAgICAgICAgICAgOiBhbHBoYSh0cnVlKQorICAgICAgICAg
ICAgLCBkZXB0aCh0cnVlKQorICAgICAgICAgICAgLCBzdGVuY2lsKHRydWUpCisgICAgICAgICAg
ICAsIGFudGlhbGlhcyh0cnVlKQorICAgICAgICAgICAgLCBwcmVtdWx0aXBsaWVkQWxwaGEodHJ1
ZSkKKyAgICAgICAgICAgICwgY2FuUmVjb3ZlckZyb21Db250ZXh0TG9zcyh0cnVlKQorICAgICAg
ICAgICAgLCBub0V4dGVuc2lvbnMoZmFsc2UpCisgICAgICAgICAgICAsIHNoYXJlUmVzb3VyY2Vz
KHRydWUpCisgICAgICAgICAgICAsIGZvclVzZU9uQW5vdGhlclRocmVhZChmYWxzZSkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBhbHBoYTsKKyAgICAgICAgYm9vbCBkZXB0
aDsKKyAgICAgICAgYm9vbCBzdGVuY2lsOworICAgICAgICBib29sIGFudGlhbGlhczsKKyAgICAg
ICAgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGJvb2wgY2FuUmVjb3ZlckZyb21D
b250ZXh0TG9zczsKKyAgICAgICAgYm9vbCBub0V4dGVuc2lvbnM7CisgICAgICAgIGJvb2wgc2hh
cmVSZXNvdXJjZXM7CisgICAgICAgIGJvb2wgZm9yVXNlT25Bbm90aGVyVGhyZWFkOworICAgIH07
CisKKyAgICBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2sgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgdmlydHVhbCB2b2lkIG9uQ29udGV4dExvc3QoKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgfldlYkdyYXBoaWNzQ29udGV4dExvc3RDYWxsYmFjaygpIHsgfQorICAgIH07CisKKyAg
ICBjbGFzcyBXZWJHcmFwaGljc0Vycm9yTWVzc2FnZUNhbGxiYWNrIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmLCBXR0Mz
RGludCkgPSAwOworICAgICAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc0Vycm9yTWVzc2FnZUNhbGxi
YWNrKCkgeyB9CisgICAgfTsKKworICAgIGNsYXNzIFdlYkdyYXBoaWNzU3dhcEJ1ZmZlcnNDb21w
bGV0ZUNhbGxiYWNrQ0hST01JVU0geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lk
IG9uU3dhcEJ1ZmZlcnNDb21wbGV0ZSgpID0gMDsKKyAgICAgICAgdmlydHVhbCB+V2ViR3JhcGhp
Y3NTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTSgpIHsgfQorICAgIH07CisKKyAg
ICBjbGFzcyBXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlV
TSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIHZvaWQgb25NZW1vcnlBbGxvY2F0aW9u
Q2hhbmdlZChzaXplX3QgZ3B1UmVzb3VyY2VTaXplSW5CeXRlcykgPSAwOworCisgICAgcHJvdGVj
dGVkOgorICAgICAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb25DaGFuZ2Vk
Q2FsbGJhY2tDSFJPTUlVTSgpIHsgfQorICAgIH07CisKKyAgICAvLyBUaGlzIGRlc3RydWN0b3Ig
bmVlZHMgdG8gYmUgcHVibGljIHNvIHRoYXQgdXNpbmcgY2xhc3NlcyBjYW4gZGVzdHJveSBpbnN0
YW5jZXMgaWYgaW5pdGlhbGl6YXRpb24gZmFpbHMuCisgICAgdmlydHVhbCB+V2ViR3JhcGhpY3ND
b250ZXh0M0QoKSB7IH0KKworICAgIC8vIE1ha2VzIHRoZSBPcGVuR0wgY29udGV4dCBjdXJyZW50
IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gUmV0dXJucyB0cnVlIG9uCisgICAgLy8gc3VjY2Vzcy4K
KyAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgPSAwOworCisgICAgLy8gVGhl
IHNpemUgb2YgdGhlIHJlZ2lvbiBpbnRvIHdoaWNoIHRoaXMgV2ViR3JhcGhpY3NDb250ZXh0M0Qg
aXMgcmVuZGVyaW5nLgorICAgIC8vIFJldHVybnMgdGhlIGxhc3QgdmFsdWVzIHBhc3NlZCB0byBy
ZXNoYXBlKCkuCisgICAgdmlydHVhbCBpbnQgd2lkdGgoKSA9IDA7CisgICAgdmlydHVhbCBpbnQg
aGVpZ2h0KCkgPSAwOworCisgICAgLy8gUmVzaXplcyB0aGUgcmVnaW9uIGludG8gd2hpY2ggdGhp
cyBXZWJHcmFwaGljc0NvbnRleHQzRCBpcyBkcmF3aW5nLgorICAgIHZpcnR1YWwgdm9pZCByZXNo
YXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkgPSAwOworCisgICAgLy8gR0xfQ0hST01JVU1fc2V0
VmlzaWJpbGl0eSAtIENoYW5nZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGJhY2tidWZmZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eUNIUk9NSVVNKGJvb2wgdmlzaWJsZSkgPSAwOwor
CisgICAgLy8gR0xfQ0hST01JVU1fZ3B1X21lbW9yeV9tYW5hZ2VyIC0gc2V0cyBjYWxsYmFjayB0
byBvYnNlcnZlIGNoYW5nZXMgdG8gbWVtb3J5IGFsbG9jYXRpb24gbGltaXRzLgorICAgIHZpcnR1
YWwgdm9pZCBzZXRNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQ0hST01JVU0oV2ViR3Jh
cGhpY3NNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQ0hST01JVU0qIGNhbGxiYWNrKSB7
IH0KKworICAgIC8vIFF1ZXJ5IHdoZXRoZXIgaXQgaXMgYnVpbHQgb24gdG9wIG9mIGNvbXBsaWFu
dCBHTEVTMiBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIGJvb2wgaXNHTEVTMkNvbXBsaWFu
dCgpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBzZXRQYXJlbnRDb250ZXh0KFdlYkdyYXBoaWNz
Q29udGV4dDNEKiBwYXJlbnRDb250ZXh0KSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgLy8gSGVs
cGVyIGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZyBwYXRoLiBSZWFkcyBiYWNrIHRoZSBmcmFtZSBi
dWZmZXIgaW50bworICAgIC8vIHRoZSBtZW1vcnkgcmVnaW9uIHBvaW50ZWQgdG8gYnkgInBpeGVs
cyIgd2l0aCBzaXplICJidWZmZXJTaXplIi4gSXQgaXMKKyAgICAvLyBleHBlY3RlZCB0aGF0IHRo
ZSBzdG9yYWdlIGZvciAicGl4ZWxzIiBjb3ZlcnMgKDQgKiB3aWR0aCAqIGhlaWdodCkgYnl0ZXMu
CisgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgdmlydHVhbCBib29sIHJlYWRC
YWNrRnJhbWVidWZmZXIodW5zaWduZWQgY2hhciogcGl4ZWxzLCBzaXplX3QgYnVmZmVyU2l6ZSwg
V2ViR0xJZCBmcmFtZWJ1ZmZlciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA9IDA7CisKKyAgICAv
LyBSZXR1cm5zIHRoZSBpZCBvZiB0aGUgdGV4dHVyZSB3aGljaCBpcyB1c2VkIGZvciBzdG9yaW5n
IHRoZSBjb250ZW50cyBvZgorICAgIC8vIHRoZSBmcmFtZWJ1ZmZlciBhc3NvY2lhdGVkIHdpdGgg
dGhpcyBjb250ZXh0LiBUaGlzIHRleHR1cmUgaXMgYWNjZXNzaWJsZQorICAgIC8vIGJ5IHRoZSBn
cHUtYmFzZWQgcGFnZSBjb21wb3NpdG9yLgorICAgIHZpcnR1YWwgV2ViR0xJZCBnZXRQbGF0Zm9y
bVRleHR1cmVJZCgpID0gMDsKKworICAgIC8vIENvcGllcyB0aGUgY29udGVudHMgb2YgdGhlIG9m
Zi1zY3JlZW4gcmVuZGVyIHRhcmdldCB1c2VkIGJ5IHRoZSBXZWJHTAorICAgIC8vIGNvbnRleHQg
dG8gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dHVyZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yLgorICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlVGV4dHVyZSgpID0gMDsKKworICAgIC8vIEdMX0NIUk9NSVVN
X3Bvc3Rfc3ViX2J1ZmZlciAtIENvcGllcyBwYXJ0IG9mIHRoZSBiYWNrIGJ1ZmZlciB0byB0aGUg
ZnJvbnQgYnVmZmVyLgorICAgIHZpcnR1YWwgdm9pZCBwb3N0U3ViQnVmZmVyQ0hST01JVU0oaW50
IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpID0gMDsKKworICAgIC8vIFN5bnRoZXNp
emVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20gYQorICAgIC8v
IGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRlIE9wZW5HTCBF
UworICAgIC8vIDIuMCBiZWhhdmlvciBvbiB0aGUgZGVza3RvcCBhbmQgdG8gZW5mb3JjZSBhZGRp
dGlvbmFsIGVycm9yCisgICAgLy8gY2hlY2tpbmcgbWFuZGF0ZWQgYnkgV2ViR0wuCisgICAgLy8K
KyAgICAvLyBQZXIgdGhlIGJlaGF2aW9yIG9mIGdsR2V0RXJyb3IsIHRoaXMgc3RvcmVzIGF0IG1v
c3Qgb25lCisgICAgLy8gaW5zdGFuY2Ugb2YgYW55IGdpdmVuIGVycm9yLCBhbmQgcmV0dXJucyB0
aGVtIGZyb20gY2FsbHMgdG8KKyAgICAvLyBnZXRFcnJvciBpbiB0aGUgb3JkZXIgdGhleSB3ZXJl
IGFkZGVkLgorICAgIHZpcnR1YWwgdm9pZCBzeW50aGVzaXplR0xFcnJvcihXR0MzRGVudW0pID0g
MDsKKworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRMb3N0KCkgPSAwOworCisgICAgLy8gR0xf
Q0hST01JVU1fbWFwX3N1YgorICAgIHZpcnR1YWwgdm9pZCogbWFwQnVmZmVyU3ViRGF0YUNIUk9N
SVVNKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50cHRyIG9mZnNldCwgV0dDM0RzaXplaXB0ciBz
aXplLCBXR0MzRGVudW0gYWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVubWFwQnVmZmVy
U3ViRGF0YUNIUk9NSVVNKGNvbnN0IHZvaWQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkKiBtYXBU
ZXhTdWJJbWFnZTJEQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdH
QzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNE
c2l6ZWkgaGVpZ2h0LCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RlbnVt
IGFjY2VzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bm1hcFRleFN1YkltYWdlMkRDSFJPTUlV
TShjb25zdCB2b2lkKikgPSAwOworCisgICAgLy8gR0xfQ0hST01JVU1fcmVxdWVzdF9leHRlbnNp
b24KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRSZXF1ZXN0YWJsZUV4dGVuc2lvbnNDSFJPTUlV
TSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4dGVuc2lvbkNIUk9NSVVNKGNvbnN0
IGNoYXIqKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZQorICAgIHZpcnR1YWwgdm9pZCBibGl0RnJhbWVidWZmZXJDSFJPTUlVTShXR0MzRGludCBzcmNY
MCwgV0dDM0RpbnQgc3JjWTAsIFdHQzNEaW50IHNyY1gxLCBXR0MzRGludCBzcmNZMSwgV0dDM0Rp
bnQgZHN0WDAsIFdHQzNEaW50IGRzdFkwLCBXR0MzRGludCBkc3RYMSwgV0dDM0RpbnQgZHN0WTEs
IFdHQzNEYml0ZmllbGQgbWFzaywgV0dDM0RlbnVtIGZpbHRlcikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTShXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRHNpemVpIHNhbXBsZXMsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0Rz
aXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKKworICAgIC8vIEdMX0NIUk9NSVVN
X3N3YXBidWZmZXJzX2NvbXBsZXRlX2NhbGxiYWNrCisgICAgdmlydHVhbCB2b2lkIHNldFN3YXBC
dWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKFdlYkdyYXBoaWNzU3dhcEJ1ZmZlcnNDb21w
bGV0ZUNhbGxiYWNrQ0hST01JVU0qIGNhbGxiYWNrKSB7IH0KKworICAgIC8vIEdMX0NIUk9NSVVN
X3JhdGVfbGltaXRfb2Zmc2NyZWVuX2NvbnRleHQKKyAgICB2aXJ0dWFsIHZvaWQgcmF0ZUxpbWl0
T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVNKCkgeyB9CisKKyAgICAvLyBUaGUgZW50cnkgcG9pbnRz
IGJlbG93IG1hcCBkaXJlY3RseSB0byB0aGUgT3BlbkdMIEVTIDIuMCBBUEkuCisgICAgLy8gU2Vl
OiBodHRwOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L2dsZXMvCisgICAgLy8gYW5kOiBodHRw
Oi8vd3d3Lmtocm9ub3Mub3JnL29wZW5nbGVzL3Nkay9kb2NzL21hbi8KKyAgICB2aXJ0dWFsIHZv
aWQgYWN0aXZlVGV4dHVyZShXR0MzRGVudW0gdGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBXZWJHTElkIHNoYWRlcikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBXR0MzRHVp
bnQgaW5kZXgsIGNvbnN0IFdHQzNEY2hhciogbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBi
aW5kQnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgYnVmZmVyKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIGZyYW1l
YnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRSZW5kZXJidWZmZXIoV0dDM0RlbnVt
IHRhcmdldCwgV2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmlu
ZFRleHR1cmUoV0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJsZW5kQ29sb3IoV0dDM0RjbGFtcGYgcmVkLCBXR0MzRGNsYW1wZiBncmVlbiwg
V0dDM0RjbGFtcGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYmxlbmRFcXVhdGlvbihXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBi
bGVuZEVxdWF0aW9uU2VwYXJhdGUoV0dDM0RlbnVtIG1vZGVSR0IsIFdHQzNEZW51bSBtb2RlQWxw
aGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRGdW5jKFdHQzNEZW51bSBzZmFjdG9yLCBX
R0MzRGVudW0gZGZhY3RvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0
ZShXR0MzRGVudW0gc3JjUkdCLCBXR0MzRGVudW0gZHN0UkdCLCBXR0MzRGVudW0gc3JjQWxwaGEs
IFdHQzNEZW51bSBkc3RBbHBoYSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEo
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBX
R0MzRGVudW0gdXNhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YShXR0Mz
RGVudW0gdGFyZ2V0LCBXR0MzRGludHB0ciBvZmZzZXQsIFdHQzNEc2l6ZWlwdHIgc2l6ZSwgY29u
c3Qgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCBXR0MzRGVudW0gY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhXR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
KFdHQzNEYml0ZmllbGQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbG9yKFdH
QzNEY2xhbXBmIHJlZCwgV0dDM0RjbGFtcGYgZ3JlZW4sIFdHQzNEY2xhbXBmIGJsdWUsIFdHQzNE
Y2xhbXBmIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRGVwdGgoV0dDM0RjbGFt
cGYgZGVwdGgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGVuY2lsKFdHQzNEaW50IHMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29sb3JNYXNrKFdHQzNEYm9vbGVhbiByZWQsIFdHQzNE
Ym9vbGVhbiBncmVlbiwgV0dDM0Rib29sZWFuIGJsdWUsIFdHQzNEYm9vbGVhbiBhbHBoYSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFdlYkdMSWQgc2hhZGVyKSA9IDA7CisK
KyAgICB2aXJ0dWFsIHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwg
V0dDM0RpbnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0
aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEaW50IGJvcmRlciwgV0dDM0RzaXplaSBpbWFnZVNp
emUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHJlc3NlZFRl
eFN1YkltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhv
ZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVp
Z2h0LCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCog
ZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0LCBXR0MzRGludCB4
LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUZXhTdWJJbWFnZTJEKFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5
b2Zmc2V0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNp
emVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjdWxsRmFjZShXR0MzRGVudW0gbW9k
ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXB0aEZ1bmMoV0dDM0RlbnVtIGZ1bmMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKFdHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcHRoUmFuZ2UoV0dDM0RjbGFtcGYgek5lYXIsIFdHQzNEY2xhbXBmIHpG
YXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwg
V2ViR0xJZCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShXR0MzRGVudW0g
Y2FwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShXR0Mz
RHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5cyhXR0MzRGVudW0g
bW9kZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNEc2l6ZWkgY291bnQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51bSBtb2RlLCBXR0MzRHNpemVpIGNvdW50LCBXR0Mz
RGVudW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4
QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbmlz
aCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRh
Y2htZW50LCBXR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChXR0MzRGVudW0g
dGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dDM0RlbnVtIHRleHRhcmdldCwgV2ViR0xJ
ZCB0ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZh
Y2UoV0dDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAo
V0dDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJp
YihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShXZWJHTElkIHByb2dyYW0sIFdHQzNEdWlu
dCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRT
aGFkZXJzKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RzaXplaSBtYXhDb3VudCwgV0dDM0RzaXplaSog
Y291bnQsIFdlYkdMSWQqIHNoYWRlcnMpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0
dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEJvb2xlYW52KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rib29s
ZWFuKiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwor
ICAgIHZpcnR1YWwgQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpID0gMDsKKyAgICB2
aXJ0dWFsIFdHQzNEZW51bSBnZXRFcnJvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmxv
YXR2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdl
dCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVl
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFByb2dyYW1pdihXZWJHTElk
IHByb2dyYW0sIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xJZCBwcm9ncmFtKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldFNoYWRlcml2KFdlYkdMSWQgc2hhZGVyLCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50
KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlckluZm9Mb2coV2Vi
R0xJZCBzaGFkZXIpID0gMDsKKworICAgIC8vIFRCRAorICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQgKEdMZW51bSBzaGFkZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwg
R0xpbnQqIHJhbmdlLCBHTGludCogcHJlY2lzaW9uKTsKKworICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikgPSAwOworICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRU
ZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxv
YXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihXZWJHTElkIHByb2dyYW0sIFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRVbmlmb3Jt
aXYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCBXR0MzRGludCBnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xJZCBwcm9n
cmFtLCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVy
dGV4QXR0cmliZnYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQq
IHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KFdHQzNEdWlu
dCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIFdHQzNEc2l6ZWlwdHIgZ2V0VmVydGV4QXR0cmliT2Zmc2V0KFdHQzNEdWludCBpbmRleCwg
V0dDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGludChXR0MzRGVudW0g
dGFyZ2V0LCBXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlz
QnVmZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNF
bmFibGVkKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0Zy
YW1lYnVmZmVyKFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9v
bGVhbiBpc1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJv
b2xlYW4gaXNSZW5kZXJidWZmZXIoV2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0
dWFsIFdHQzNEYm9vbGVhbiBpc1NoYWRlcihXZWJHTElkIHNoYWRlcikgPSAwOworICAgIHZpcnR1
YWwgV0dDM0Rib29sZWFuIGlzVGV4dHVyZShXZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbGluZVdpZHRoKFdHQzNEZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGlu
a1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3Rv
cmVpKFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcG9seWdvbk9mZnNldChXR0MzRGZsb2F0IGZhY3RvciwgV0dDM0RmbG9hdCB1bml0cykgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHJlYWRQaXhlbHMoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwg
V0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdH
QzNEZW51bSB0eXBlLCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlU2hhZGVyQ29tcGlsZXIoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVy
U3RvcmFnZShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNE
c2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNh
bXBsZUNvdmVyYWdlKFdHQzNEY2xhbXBmIHZhbHVlLCBXR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0Rz
aXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hh
ZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyLCBjb25zdCBXR0MzRGNoYXIqIHN0cmluZykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuYyhXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVm
LCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFy
YXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVp
bnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFzayhXR0MzRHVpbnQgbWFz
aykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKFdHQzNEZW51bSBm
YWNlLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dD
M0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFpbCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0g
ZmFpbCwgV0dDM0RlbnVtIHpmYWlsLCBXR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCB0ZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0
LCBXR0MzRGludCBib3JkZXIsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25z
dCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdH
QzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCBwYXJhbSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51
bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJ
bWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0
LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwg
V0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0Rm
bG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRp
b24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdW5pZm9ybTFpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkg
Y291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0y
ZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBj
b3VudCwgY29uc3QgV0dDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MmkoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgsIFdHQzNEaW50IHkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTJpdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3Vu
dCwgY29uc3QgV0dDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdH
QzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdH
QzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBX
R0MzRGludCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9j
YXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVuaWZvcm00ZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0Mz
RGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVuaWZvcm00ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0
IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6LCBXR0MzRGludCB3
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdH
QzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm1NYXRyaXgyZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdH
QzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6
ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVl
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRp
b24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElk
IHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQg
cHJvZ3JhbSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKFdHQzNEdWlu
dCBpbmRleCwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjFmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQg
eCwgV0dDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJmdihX
R0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dD
M0RmbG9hdCB5LCBXR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliM2Z2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9h
dCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVy
KFdHQzNEdWludCBpbmRleCwgV0dDM0RpbnQgc2l6ZSwgV0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9v
bGVhbiBub3JtYWxpemVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdH
QzNEc2l6ZWkgc3RyaWRlLCBXR0MzRGludHB0ciBvZmZzZXQpID0gMDsKKworICAgIHZpcnR1YWwg
dm9pZCB2aWV3cG9ydChXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBX
R0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgLy8gU3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0
aW9uIGFuZCBkZWxldGlvbi4KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlQnVmZmVyKCkgPSAw
OworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0
dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIo
V0dDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVRleHR1cmUoKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVu
ZGVyYnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdl
YkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJHTElkKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGV4dExvc3RDYWxsYmFjayhXZWJHcmFwaGljc0Nv
bnRleHRMb3N0Q2FsbGJhY2sqIGNhbGxiYWNrKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXJy
b3JNZXNzYWdlQ2FsbGJhY2soV2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VDYWxsYmFjayogY2FsbGJh
Y2spIHsgfQorICAgIC8vIEdMX0FSQl9yb2J1c3RuZXNzCisgICAgLy8KKyAgICAvLyBUaGlzIGVu
dHJ5IHBvaW50IG11c3QgcHJvdmlkZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzIHRoYW4K
KyAgICAvLyB0aGUgR0xfQVJCX3JvYnVzdG5lc3MgZXh0ZW5zaW9uOyBzcGVjaWZpY2FsbHksIHRo
ZSBsb3N0IGNvbnRleHQKKyAgICAvLyBzdGF0ZSBpcyBzdGlja3ksIHJhdGhlciB0aGFuIHJlcG9y
dGVkIG9ubHkgb25jZS4KKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3Rh
dHVzQVJCKCkgeyByZXR1cm4gMDsgLyogR0xfTk9fRVJST1IgKi8gfQorCisgICAgLy8gRklYTUU6
IG1ha2UgdGhpcyBmdW5jdGlvbiBwdXJlIHZpcnR1YWwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZCBp
bgorICAgIC8vIGJvdGggY29tbWFuZCBidWZmZXIgcG9ydCBhbmQgaW4tcHJvY2VzcyBwb3J0Lgor
ICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShXZWJH
TElkIHNoYWRlcikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KKworICAgIC8vIEdMX0NIUk9NSVVN
X2lvc3VyZmFjZQorICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZUlPU3VyZmFjZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgd2lkdGgsIFdHQzNEaW50IGhlaWdodCwgV0dDM0R1
aW50IGlvU3VyZmFjZUlkLCBXR0MzRHVpbnQgcGxhbmUpIHsgfQorCisgICAgLy8gR0xfRVhUX3Rl
eHR1cmVfc3RvcmFnZQorICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlMkRFWFQoV0dDM0RlbnVt
IHRhcmdldCwgV0dDM0RpbnQgbGV2ZWxzLCBXR0MzRHVpbnQgaW50ZXJuYWxmb3JtYXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVp
Z2h0KSB7IH0KKworCisjaWYgV0VCS0lUX1VTSU5HX1NLSUEKKyAgICBHckdMSW50ZXJmYWNlKiBj
cmVhdGVHckdMSW50ZXJmYWNlKCk7CisjZW5kaWYKKworcHJvdGVjdGVkOgorI2lmIFdFQktJVF9V
U0lOR19TS0lBCisgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBvbkNyZWF0ZUdyR0xJbnRlcmZh
Y2UoKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJOb25Db3B5YWJsZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJOb25D
b3B5YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwYmQ0NTY1YzIzOGIwYTY5ZjQ3YzE2NjVhNzVkOTg0ZjI2
MTc3ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYk5vbkNvcHlhYmxlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm9uQ29weWFibGVf
aAorI2RlZmluZSBXZWJOb25Db3B5YWJsZV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBB
IGJhc2UgY2xhc3MgdG8gZXh0ZW5kIGZyb20gaWYgeW91IGRvIG5vdCBzdXBwb3J0IGNvcHlpbmcu
CitjbGFzcyBXZWJOb25Db3B5YWJsZSB7Citwcm90ZWN0ZWQ6CisgICAgV2ViTm9uQ29weWFibGUo
KSB7IH0KKyAgICB+V2ViTm9uQ29weWFibGUoKSB7IH0KKworcHJpdmF0ZToKKyAgICBXZWJOb25D
b3B5YWJsZShjb25zdCBXZWJOb25Db3B5YWJsZSYpOworICAgIFdlYk5vbkNvcHlhYmxlJiBvcGVy
YXRvcj0oY29uc3QgV2ViTm9uQ29weWFibGUmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDNiMjExNjQxYTQyYmRj
ZmRiZTUyYzdmMjk0ZTg3Mjk3OTU4MGRkNjAuLjg3NmI1ZDliYmM5OTI3NDA4ZTM0ZTYwMjhkMGEx
ODFmNzVlZGQ2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMSw0MTUgKzEsMjYg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgogICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdyYXBoaWNzQ29udGV4dDNE
X2gKLSNkZWZpbmUgV2ViR3JhcGhpY3NDb250ZXh0M0RfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9u
LmgiCi0jaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKLSNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
LQotI2RlZmluZSBVU0VfV0dDM0RfVFlQRVMKLQotI2lmIFdFQktJVF9VU0lOR19TS0lBCi1zdHJ1
Y3QgR3JHTEludGVyZmFjZTsKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gV0dD
M0QgdHlwZXMgbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgR0wgdHlwZXMgYXMgZGVmaW5lZCBpbiBP
cGVuR0wgRVMgMi4wCi0vLyBoZWFkZXIgZmlsZSBnbDIuaCBmcm9tIGtocm9ub3Mub3JnLgotdHlw
ZWRlZiBjaGFyIFdHQzNEY2hhcjsKLXR5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEZW51bTsKLXR5
cGVkZWYgdW5zaWduZWQgY2hhciBXR0MzRGJvb2xlYW47Ci10eXBlZGVmIHVuc2lnbmVkIGludCBX
R0MzRGJpdGZpZWxkOwotdHlwZWRlZiBzaWduZWQgY2hhciBXR0MzRGJ5dGU7Ci10eXBlZGVmIHVu
c2lnbmVkIGNoYXIgV0dDM0R1Ynl0ZTsKLXR5cGVkZWYgc2hvcnQgV0dDM0RzaG9ydDsKLXR5cGVk
ZWYgdW5zaWduZWQgc2hvcnQgV0dDM0R1c2hvcnQ7Ci10eXBlZGVmIGludCBXR0MzRGludDsKLXR5
cGVkZWYgaW50IFdHQzNEc2l6ZWk7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBXR0MzRHVpbnQ7Ci10
eXBlZGVmIGZsb2F0IFdHQzNEZmxvYXQ7Ci10eXBlZGVmIGZsb2F0IFdHQzNEY2xhbXBmOwotdHlw
ZWRlZiBzaWduZWQgbG9uZyBpbnQgV0dDM0RpbnRwdHI7Ci10eXBlZGVmIHNpZ25lZCBsb25nIGlu
dCBXR0MzRHNpemVpcHRyOwotCi0vLyBUeXBlZGVmIGZvciBzZXJ2ZXItc2lkZSBvYmplY3RzIGxp
a2UgT3BlbkdMIHRleHR1cmVzIGFuZCBwcm9ncmFtIG9iamVjdHMuCi10eXBlZGVmIFdHQzNEdWlu
dCBXZWJHTElkOwotCi0vLyBUaGlzIGludGVyZmFjZSBhYnN0cmFjdHMgdGhlIG9wZXJhdGlvbnMg
cGVyZm9ybWVkIGJ5IHRoZQotLy8gR3JhcGhpY3NDb250ZXh0M0QgaW4gb3JkZXIgdG8gaW1wbGVt
ZW50IFdlYkdMLiBOZWFybHkgYWxsIG9mIHRoZQotLy8gbWV0aG9kcyBleHBvc2VkIG9uIHRoaXMg
aW50ZXJmYWNlIG1hcCBkaXJlY3RseSB0byBlbnRyeSBwb2ludHMgaW4KLS8vIHRoZSBPcGVuR0wg
RVMgMi4wIEFQSS4KLS8vCi0vLyBDcmVhdGluZyBhIFdlYkdyYXBoaWNzQ29udGV4dCBkb2VzIG5v
dCBtYWtlIGl0IGN1cnJlbnQsIG9yIGd1YXJhbnRlZQotLy8gdGhhdCB0aGUgY29udGV4dCBoYXMg
YmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4gVXNlCi0vLyBtYWtlQ29udGV4dEN1cnJlbnQoKSB0
byBjb21wbGV0ZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgY29udGV4dCwgdHJlYXRpbmcKLS8vIGEg
ZmFsc2UgcmV0dXJuIHZhbHVlIGFzIGluZGljYXRpb24gdGhhdCB0aGUgY29udGV4dCBjb3VsZCBu
b3QgYmUgY3JlYXRlZAotLy8gc3VjY2Vzc2Z1bGx5LgotY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0
M0QgOiBwdWJsaWMgV2ViTm9uQ29weWFibGUgewotcHVibGljOgotICAgIC8vIFJldHVybiB2YWx1
ZSBmcm9tIGdldEFjdGl2ZVVuaWZvcm0gYW5kIGdldEFjdGl2ZUF0dHJpYi4KLSAgICBzdHJ1Y3Qg
QWN0aXZlSW5mbyB7Ci0gICAgICAgIFdlYlN0cmluZyBuYW1lOwotICAgICAgICBXR0MzRGVudW0g
dHlwZTsKLSAgICAgICAgV0dDM0RpbnQgc2l6ZTsKLSAgICB9OwotCi0gICAgLy8gQ29udGV4dCBj
cmVhdGlvbiBhdHRyaWJ1dGVzLgotICAgIHN0cnVjdCBBdHRyaWJ1dGVzIHsKLSAgICAgICAgQXR0
cmlidXRlcygpCi0gICAgICAgICAgICA6IGFscGhhKHRydWUpCi0gICAgICAgICAgICAsIGRlcHRo
KHRydWUpCi0gICAgICAgICAgICAsIHN0ZW5jaWwodHJ1ZSkKLSAgICAgICAgICAgICwgYW50aWFs
aWFzKHRydWUpCi0gICAgICAgICAgICAsIHByZW11bHRpcGxpZWRBbHBoYSh0cnVlKQotICAgICAg
ICAgICAgLCBjYW5SZWNvdmVyRnJvbUNvbnRleHRMb3NzKHRydWUpCi0gICAgICAgICAgICAsIG5v
RXh0ZW5zaW9ucyhmYWxzZSkKLSAgICAgICAgICAgICwgc2hhcmVSZXNvdXJjZXModHJ1ZSkKLSAg
ICAgICAgICAgICwgZm9yVXNlT25Bbm90aGVyVGhyZWFkKGZhbHNlKQotICAgICAgICB7Ci0gICAg
ICAgIH0KLQotICAgICAgICBib29sIGFscGhhOwotICAgICAgICBib29sIGRlcHRoOwotICAgICAg
ICBib29sIHN0ZW5jaWw7Ci0gICAgICAgIGJvb2wgYW50aWFsaWFzOwotICAgICAgICBib29sIHBy
ZW11bHRpcGxpZWRBbHBoYTsKLSAgICAgICAgYm9vbCBjYW5SZWNvdmVyRnJvbUNvbnRleHRMb3Nz
OwotICAgICAgICBib29sIG5vRXh0ZW5zaW9uczsKLSAgICAgICAgYm9vbCBzaGFyZVJlc291cmNl
czsKLSAgICAgICAgYm9vbCBmb3JVc2VPbkFub3RoZXJUaHJlYWQ7Ci0gICAgfTsKLQotICAgIGNs
YXNzIFdlYkdyYXBoaWNzQ29udGV4dExvc3RDYWxsYmFjayB7Ci0gICAgcHVibGljOgotICAgICAg
ICB2aXJ0dWFsIHZvaWQgb25Db250ZXh0TG9zdCgpID0gMDsKLSAgICAgICAgdmlydHVhbCB+V2Vi
R3JhcGhpY3NDb250ZXh0TG9zdENhbGxiYWNrKCkgeyB9Ci0gICAgfTsKLQotICAgIGNsYXNzIFdl
YkdyYXBoaWNzRXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB2b2lkIG9uRXJyb3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYsIFdHQzNEaW50KSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgfldlYkdyYXBoaWNzRXJyb3JNZXNzYWdlQ2FsbGJhY2soKSB7IH0K
LSAgICB9OwotCi0gICAgY2xhc3MgV2ViR3JhcGhpY3NTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJh
Y2tDSFJPTUlVTSB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVm
ZmVyc0NvbXBsZXRlKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc1N3YXBCdWZm
ZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKCkgeyB9Ci0gICAgfTsKLQotICAgIGNsYXNzIFdl
YkdyYXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbk1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkKHNp
emVfdCBncHVSZXNvdXJjZVNpemVJbkJ5dGVzKSA9IDA7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIHZpcnR1YWwgfldlYkdyYXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NI
Uk9NSVVNKCkgeyB9Ci0gICAgfTsKLQotICAgIC8vIFRoaXMgZGVzdHJ1Y3RvciBuZWVkcyB0byBi
ZSBwdWJsaWMgc28gdGhhdCB1c2luZyBjbGFzc2VzIGNhbiBkZXN0cm95IGluc3RhbmNlcyBpZiBp
bml0aWFsaXphdGlvbiBmYWlscy4KLSAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc0NvbnRleHQzRCgp
IHt9Ci0KLSAgICAvLyBNYWtlcyB0aGUgT3BlbkdMIGNvbnRleHQgY3VycmVudCBvbiB0aGUgY3Vy
cmVudCB0aHJlYWQuIFJldHVybnMgdHJ1ZSBvbgotICAgIC8vIHN1Y2Nlc3MuCi0gICAgdmlydHVh
bCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpID0gMDsKLQotICAgIC8vIFRoZSBzaXplIG9mIHRo
ZSByZWdpb24gaW50byB3aGljaCB0aGlzIFdlYkdyYXBoaWNzQ29udGV4dDNEIGlzIHJlbmRlcmlu
Zy4KLSAgICAvLyBSZXR1cm5zIHRoZSBsYXN0IHZhbHVlcyBwYXNzZWQgdG8gcmVzaGFwZSgpLgot
ICAgIHZpcnR1YWwgaW50IHdpZHRoKCkgPSAwOwotICAgIHZpcnR1YWwgaW50IGhlaWdodCgpID0g
MDsKLQotICAgIC8vIFJlc2l6ZXMgdGhlIHJlZ2lvbiBpbnRvIHdoaWNoIHRoaXMgV2ViR3JhcGhp
Y3NDb250ZXh0M0QgaXMgZHJhd2luZy4KLSAgICB2aXJ0dWFsIHZvaWQgcmVzaGFwZShpbnQgd2lk
dGgsIGludCBoZWlnaHQpID0gMDsKLQotICAgIC8vIEdMX0NIUk9NSVVNX3NldFZpc2liaWxpdHkg
LSBDaGFuZ2VzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBiYWNrYnVmZmVyCi0gICAgdmlydHVhbCB2
b2lkIHNldFZpc2liaWxpdHlDSFJPTUlVTShib29sIHZpc2libGUpID0gMDsKLQotICAgIC8vIEdM
X0NIUk9NSVVNX2dwdV9tZW1vcnlfbWFuYWdlciAtIHNldHMgY2FsbGJhY2sgdG8gb2JzZXJ2ZSBj
aGFuZ2VzIHRvIG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0cy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKFdlYkdyYXBoaWNzTWVtb3J5
QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKiBjYWxsYmFjaykgeyB9Ci0KLSAgICAv
LyBRdWVyeSB3aGV0aGVyIGl0IGlzIGJ1aWx0IG9uIHRvcCBvZiBjb21wbGlhbnQgR0xFUzIgaW1w
bGVtZW50YXRpb24uCi0gICAgdmlydHVhbCBib29sIGlzR0xFUzJDb21wbGlhbnQoKSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIGJvb2wgc2V0UGFyZW50Q29udGV4dChXZWJHcmFwaGljc0NvbnRleHQzRCog
cGFyZW50Q29udGV4dCkgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIC8vIEhlbHBlciBmb3Igc29m
dHdhcmUgY29tcG9zaXRpbmcgcGF0aC4gUmVhZHMgYmFjayB0aGUgZnJhbWUgYnVmZmVyIGludG8K
LSAgICAvLyB0aGUgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5ICJwaXhlbHMiIHdpdGggc2l6
ZSAiYnVmZmVyU2l6ZSIuIEl0IGlzCi0gICAgLy8gZXhwZWN0ZWQgdGhhdCB0aGUgc3RvcmFnZSBm
b3IgInBpeGVscyIgY292ZXJzICg0ICogd2lkdGggKiBoZWlnaHQpIGJ5dGVzLgotICAgIC8vIFJl
dHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCByZWFkQmFja0ZyYW1lYnVm
ZmVyKHVuc2lnbmVkIGNoYXIqIHBpeGVscywgc2l6ZV90IGJ1ZmZlclNpemUsIFdlYkdMSWQgZnJh
bWVidWZmZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0
aGUgaWQgb2YgdGhlIHRleHR1cmUgd2hpY2ggaXMgdXNlZCBmb3Igc3RvcmluZyB0aGUgY29udGVu
dHMgb2YKLSAgICAvLyB0aGUgZnJhbWVidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udGV4
dC4gVGhpcyB0ZXh0dXJlIGlzIGFjY2Vzc2libGUKLSAgICAvLyBieSB0aGUgZ3B1LWJhc2VkIHBh
Z2UgY29tcG9zaXRvci4KLSAgICB2aXJ0dWFsIFdlYkdMSWQgZ2V0UGxhdGZvcm1UZXh0dXJlSWQo
KSA9IDA7Ci0KLSAgICAvLyBDb3BpZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBvZmYtc2NyZWVuIHJl
bmRlciB0YXJnZXQgdXNlZCBieSB0aGUgV2ViR0wKLSAgICAvLyBjb250ZXh0IHRvIHRoZSBjb3Jy
ZXNwb25kaW5nIHRleHR1cmUgdXNlZCBieSB0aGUgY29tcG9zaXRvci4KLSAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRleHR1cmUoKSA9IDA7Ci0KLSAgICAvLyBHTF9DSFJPTUlVTV9wb3N0X3N1Yl9i
dWZmZXIgLSBDb3BpZXMgcGFydCBvZiB0aGUgYmFjayBidWZmZXIgdG8gdGhlIGZyb250IGJ1ZmZl
ci4KLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFN1YkJ1ZmZlckNIUk9NSVVNKGludCB4LCBpbnQgeSwg
aW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA9IDA7Ci0KLSAgICAvLyBTeW50aGVzaXplcyBhbiBPcGVu
R0wgZXJyb3Igd2hpY2ggd2lsbCBiZSByZXR1cm5lZCBmcm9tIGEKLSAgICAvLyBsYXRlciBjYWxs
IHRvIGdldEVycm9yLiBUaGlzIGlzIHVzZWQgdG8gZW11bGF0ZSBPcGVuR0wgRVMKLSAgICAvLyAy
LjAgYmVoYXZpb3Igb24gdGhlIGRlc2t0b3AgYW5kIHRvIGVuZm9yY2UgYWRkaXRpb25hbCBlcnJv
cgotICAgIC8vIGNoZWNraW5nIG1hbmRhdGVkIGJ5IFdlYkdMLgotICAgIC8vCi0gICAgLy8gUGVy
IHRoZSBiZWhhdmlvciBvZiBnbEdldEVycm9yLCB0aGlzIHN0b3JlcyBhdCBtb3N0IG9uZQotICAg
IC8vIGluc3RhbmNlIG9mIGFueSBnaXZlbiBlcnJvciwgYW5kIHJldHVybnMgdGhlbSBmcm9tIGNh
bGxzIHRvCi0gICAgLy8gZ2V0RXJyb3IgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZC4KLSAg
ICB2aXJ0dWFsIHZvaWQgc3ludGhlc2l6ZUdMRXJyb3IoV0dDM0RlbnVtKSA9IDA7Ci0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNDb250ZXh0TG9zdCgpID0gMDsKLQotICAgIC8vIEdMX0NIUk9NSVVNX21h
cF9zdWIKLSAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1ZmZlclN1YkRhdGFDSFJPTUlVTShXR0MzRGVu
dW0gdGFyZ2V0LCBXR0MzRGludHB0ciBvZmZzZXQsIFdHQzNEc2l6ZWlwdHIgc2l6ZSwgV0dDM0Rl
bnVtIGFjY2VzcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bm1hcEJ1ZmZlclN1YkRhdGFDSFJP
TUlVTShjb25zdCB2b2lkKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCogbWFwVGV4U3ViSW1hZ2Uy
RENIUk9NSVVNKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zm
c2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdo
dCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIFdHQzNEZW51bSBhY2Nlc3MpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5tYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0oY29uc3Qgdm9p
ZCopID0gMDsKLQotICAgIC8vIEdMX0NIUk9NSVVNX3JlcXVlc3RfZXh0ZW5zaW9uCi0gICAgdmly
dHVhbCBXZWJTdHJpbmcgZ2V0UmVxdWVzdGFibGVFeHRlbnNpb25zQ0hST01JVU0oKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RFeHRlbnNpb25DSFJPTUlVTShjb25zdCBjaGFyKikgPSAw
OwotCi0gICAgLy8gR0xfQ0hST01JVU1fZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUKLSAgICB2aXJ0
dWFsIHZvaWQgYmxpdEZyYW1lYnVmZmVyQ0hST01JVU0oV0dDM0RpbnQgc3JjWDAsIFdHQzNEaW50
IHNyY1kwLCBXR0MzRGludCBzcmNYMSwgV0dDM0RpbnQgc3JjWTEsIFdHQzNEaW50IGRzdFgwLCBX
R0MzRGludCBkc3RZMCwgV0dDM0RpbnQgZHN0WDEsIFdHQzNEaW50IGRzdFkxLCBXR0MzRGJpdGZp
ZWxkIG1hc2ssIFdHQzNEZW51bSBmaWx0ZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVuZGVy
YnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dDM0Rz
aXplaSBzYW1wbGVzLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgs
IFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7Ci0KLSAgICAvLyBHTF9DSFJPTUlVTV9zd2FwYnVmZmVy
c19jb21wbGV0ZV9jYWxsYmFjawotICAgIHZpcnR1YWwgdm9pZCBzZXRTd2FwQnVmZmVyc0NvbXBs
ZXRlQ2FsbGJhY2tDSFJPTUlVTShXZWJHcmFwaGljc1N3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFj
a0NIUk9NSVVNKiBjYWxsYmFjaykgeyB9Ci0KLSAgICAvLyBHTF9DSFJPTUlVTV9yYXRlX2xpbWl0
X29mZnNjcmVlbl9jb250ZXh0Ci0gICAgdmlydHVhbCB2b2lkIHJhdGVMaW1pdE9mZnNjcmVlbkNv
bnRleHRDSFJPTUlVTSgpIHsgfQotCi0gICAgLy8gVGhlIGVudHJ5IHBvaW50cyBiZWxvdyBtYXAg
ZGlyZWN0bHkgdG8gdGhlIE9wZW5HTCBFUyAyLjAgQVBJLgotICAgIC8vIFNlZTogaHR0cDovL3d3
dy5raHJvbm9zLm9yZy9yZWdpc3RyeS9nbGVzLwotICAgIC8vIGFuZDogaHR0cDovL3d3dy5raHJv
bm9zLm9yZy9vcGVuZ2xlcy9zZGsvZG9jcy9tYW4vCi0gICAgdmlydHVhbCB2b2lkIGFjdGl2ZVRl
eHR1cmUoV0dDM0RlbnVtIHRleHR1cmUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hh
ZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2ViR0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgYmluZEF0dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0R1aW50IGluZGV4LCBj
b25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihX
R0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIGJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBi
aW5kRnJhbWVidWZmZXIoV0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJZCBmcmFtZWJ1ZmZlcikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdl
YkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJpbmRUZXh0dXJlKFdH
QzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgdGV4dHVyZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBi
bGVuZENvbG9yKFdHQzNEY2xhbXBmIHJlZCwgV0dDM0RjbGFtcGYgZ3JlZW4sIFdHQzNEY2xhbXBm
IGJsdWUsIFdHQzNEY2xhbXBmIGFscGhhKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1
YXRpb24oV0dDM0RlbnVtIG1vZGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRFcXVhdGlv
blNlcGFyYXRlKFdHQzNEZW51bSBtb2RlUkdCLCBXR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGJsZW5kRnVuYyhXR0MzRGVudW0gc2ZhY3RvciwgV0dDM0RlbnVtIGRm
YWN0b3IpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoV0dDM0RlbnVt
IHNyY1JHQiwgV0dDM0RlbnVtIGRzdFJHQiwgV0dDM0RlbnVtIHNyY0FscGhhLCBXR0MzRGVudW0g
ZHN0QWxwaGEpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBidWZmZXJEYXRhKFdHQzNEZW51bSB0
YXJnZXQsIFdHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwgV0dDM0RlbnVtIHVz
YWdlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJ1ZmZlclN1YkRhdGEoV0dDM0RlbnVtIHRhcmdl
dCwgV0dDM0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRh
dGEpID0gMDsKLQotICAgIHZpcnR1YWwgV0dDM0RlbnVtIGNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
V0dDM0RlbnVtIHRhcmdldCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcihXR0MzRGJpdGZp
ZWxkIG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb2xvcihXR0MzRGNsYW1wZiBy
ZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBXR0MzRGNsYW1wZiBibHVlLCBXR0MzRGNsYW1wZiBhbHBo
YSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhckRlcHRoKFdHQzNEY2xhbXBmIGRlcHRoKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyU3RlbmNpbChXR0MzRGludCBzKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbG9yTWFzayhXR0MzRGJvb2xlYW4gcmVkLCBXR0MzRGJvb2xlYW4gZ3Jl
ZW4sIFdHQzNEYm9vbGVhbiBibHVlLCBXR0MzRGJvb2xlYW4gYWxwaGEpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgY29tcGlsZVNoYWRlcihXZWJHTElkIHNoYWRlcikgPSAwOwotCi0gICAgdmlydHVh
bCB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxl
dmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6
ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIsIFdHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJE
KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0Mz
RGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rl
bnVtIGZvcm1hdCwgV0dDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29weVRleEltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0Rp
bnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RpbnQgeCwgV0dDM0RpbnQg
eSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEaW50IGJvcmRlcikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0RpbnQgeW9mZnNldCwgV0dD
M0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY3VsbEZhY2UoV0dDM0RlbnVtIG1vZGUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5jKFdHQzNEZW51bSBmdW5jKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRlcHRoTWFzayhXR0MzRGJvb2xlYW4gZmxhZykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBkZXB0aFJhbmdlKFdHQzNEY2xhbXBmIHpOZWFyLCBXR0MzRGNsYW1wZiB6RmFyKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRldGFjaFNoYWRlcihXZWJHTElkIHByb2dyYW0sIFdlYkdMSWQgc2hh
ZGVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoV0dDM0RlbnVtIGNhcCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdBcnJheXMoV0dDM0RlbnVtIG1vZGUsIFdHQzNE
aW50IGZpcnN0LCBXR0MzRHNpemVpIGNvdW50KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdF
bGVtZW50cyhXR0MzRGVudW0gbW9kZSwgV0dDM0RzaXplaSBjb3VudCwgV0dDM0RlbnVtIHR5cGUs
IFdHQzNEaW50cHRyIG9mZnNldCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGVuYWJsZShXR0Mz
RGVudW0gY2FwKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5
KFdHQzNEdWludCBpbmRleCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dD
M0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgV2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSB0ZXh0YXJnZXQsIFdlYkdMSWQgdGV4dHVyZSwg
V0dDM0RpbnQgbGV2ZWwpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZnJvbnRGYWNlKFdHQzNEZW51
bSBtb2RlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlTWlwbWFwKFdHQzNEZW51bSB0
YXJnZXQpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVBdHRyaWIoV2ViR0xJZCBw
cm9ncmFtLCBXR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xJZCBwcm9ncmFtLCBXR0MzRHVpbnQgaW5kZXgsIEFj
dGl2ZUluZm8mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhXZWJH
TElkIHByb2dyYW0sIFdHQzNEc2l6ZWkgbWF4Q291bnQsIFdHQzNEc2l6ZWkqIGNvdW50LCBXZWJH
TElkKiBzaGFkZXJzKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRGludCBnZXRBdHRyaWJMb2NhdGlv
bihXZWJHTElkIHByb2dyYW0sIGNvbnN0IFdHQzNEY2hhciogbmFtZSkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRCb29sZWFudihXR0MzRGVudW0gcG5hbWUsIFdHQzNEYm9vbGVhbiogdmFsdWUp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRh
cmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFs
IEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSA9IDA7Ci0gICAgdmlydHVhbCBXR0Mz
RGVudW0gZ2V0RXJyb3IoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEZsb2F0dihXR0MzRGVu
dW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51
bSBhdHRhY2htZW50LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBnZXRJbnRlZ2VydihXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1
ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9ncmFtaXYoV2ViR0xJZCBwcm9ncmFtLCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVu
dW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFk
ZXJpdihXZWJHTElkIHNoYWRlciwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0g
MDsKLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMSWQgc2hhZGVy
KSA9IDA7Ci0KLSAgICAvLyBUQkQKLSAgICAvLyB2b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9y
bWF0IChHTGVudW0gc2hhZGVydHlwZSwgR0xlbnVtIHByZWNpc2lvbnR5cGUsIEdMaW50KiByYW5n
ZSwgR0xpbnQqIHByZWNpc2lvbik7Ci0KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTaGFkZXJT
b3VyY2UoV2ViR0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTdHJp
bmcoV0dDM0RlbnVtIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVy
ZnYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGZsb2F0KiB2YWx1ZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBnZXRVbmlmb3JtZnYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGludCBsb2NhdGlvbiwgV0dDM0Rm
bG9hdCogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0VW5pZm9ybWl2KFdlYkdMSWQg
cHJvZ3JhbSwgV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZp
cnR1YWwgV0dDM0RpbnQgZ2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgY29uc3Qg
V0dDM0RjaGFyKiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYmZ2
KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBnZXRWZXJ0ZXhBdHRyaWJpdihXR0MzRHVpbnQgaW5kZXgsIFdH
QzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRHNp
emVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZW51bSBw
bmFtZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGhpbnQoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RlbnVtIG1vZGUpID0gMDsKLSAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0J1ZmZlcihXZWJH
TElkIGJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzRW5hYmxlZChXR0Mz
RGVudW0gY2FwKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihX
ZWJHTElkIGZyYW1lYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNQcm9n
cmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOwotICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUmVu
ZGVyYnVmZmVyKFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRGJv
b2xlYW4gaXNTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFsIFdHQzNEYm9v
bGVhbiBpc1RleHR1cmUoV2ViR0xJZCB0ZXh0dXJlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxp
bmVXaWR0aChXR0MzRGZsb2F0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxpbmtQcm9ncmFtKFdl
YkdMSWQgcHJvZ3JhbSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwaXhlbFN0b3JlaShXR0MzRGVu
dW0gcG5hbWUsIFdHQzNEaW50IHBhcmFtKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvbHlnb25P
ZmZzZXQoV0dDM0RmbG9hdCBmYWN0b3IsIFdHQzNEZmxvYXQgdW5pdHMpID0gMDsKLQotICAgIHZp
cnR1YWwgdm9pZCByZWFkUGl4ZWxzKFdHQzNEaW50IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6ZWkg
d2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlw
ZSwgdm9pZCogcGl4ZWxzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVNoYWRlckNv
bXBpbGVyKCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoV0dD
M0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRo
LCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVDb3ZlcmFn
ZShXR0MzRGNsYW1wZiB2YWx1ZSwgV0dDM0Rib29sZWFuIGludmVydCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzY2lzc29yKFdHQzNEaW50IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6ZWkgd2lkdGgs
IFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNoYWRlclNvdXJjZShX
ZWJHTElkIHNoYWRlciwgY29uc3QgV0dDM0RjaGFyKiBzdHJpbmcpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RlbmNpbEZ1bmMoV0dDM0RlbnVtIGZ1bmMsIFdHQzNEaW50IHJlZiwgV0dDM0R1aW50
IG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbEZ1bmNTZXBhcmF0ZShXR0MzRGVu
dW0gZmFjZSwgV0dDM0RlbnVtIGZ1bmMsIFdHQzNEaW50IHJlZiwgV0dDM0R1aW50IG1hc2spID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soV0dDM0R1aW50IG1hc2spID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShXR0MzRGVudW0gZmFjZSwgV0dDM0R1
aW50IG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKFdHQzNEZW51bSBmYWls
LCBXR0MzRGVudW0gemZhaWwsIFdHQzNEZW51bSB6cGFzcykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBzdGVuY2lsT3BTZXBhcmF0ZShXR0MzRGVudW0gZmFjZSwgV0dDM0RlbnVtIGZhaWwsIFdHQzNE
ZW51bSB6ZmFpbCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4
SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RpbnQg
Ym9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4
ZWxzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1ldGVyZihXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQgcGFyYW0pID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgdGV4UGFyYW1ldGVyaShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdH
QzNEaW50IHBhcmFtKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4U3ViSW1hZ2UyRChXR0Mz
RGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0RpbnQg
eW9mZnNldCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBm
b3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKLQotICAgIHZp
cnR1YWwgdm9pZCB1bmlmb3JtMWYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQgeCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNp
emVpIGNvdW50LCBjb25zdCBXR0MzRGZsb2F0KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0xaShXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQgeCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtMWl2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25z
dCBXR0MzRGludCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmYoV0dDM0RpbnQg
bG9jYXRpb24sIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHVuaWZvcm0yZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0
IFdHQzNEZmxvYXQqIHYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpKFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0yaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEaW50KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZihXR0MzRGludCBsb2Nh
dGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB1bmlmb3JtM2Z2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNv
dW50LCBjb25zdCBXR0MzRGZsb2F0KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0z
aShXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RpbnQgeikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2l2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0Mz
RHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGludCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtNGYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBX
R0MzRGZsb2F0IHosIFdHQzNEZmxvYXQgdykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
NGZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGZsb2F0
KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aShXR0MzRGludCBsb2NhdGlvbiwg
V0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RpbnQgeiwgV0dDM0RpbnQgdykgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB1bmlmb3JtNGl2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNv
dW50LCBjb25zdCBXR0MzRGludCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0
cml4MmZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGJvb2xlYW4g
dHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB1bmlmb3JtTWF0cml4M2Z2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBX
R0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNp
emVpIGNvdW50LCBXR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1
ZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHVzZVByb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0g
MDsKLQotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihXR0MzRHVpbnQgaW5kZXgsIFdH
QzNEZmxvYXQgeCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoV0dDM0R1
aW50IGluZGV4LCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgdmVydGV4QXR0cmliMmYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxv
YXQgeSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZnYoV0dDM0R1aW50IGlu
ZGV4LCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVy
dGV4QXR0cmliM2YoV0dDM0R1aW50IGluZGV4LCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwg
V0dDM0RmbG9hdCB6KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmdihXR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB2ZXJ0ZXhBdHRyaWI0ZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0Rm
bG9hdCB5LCBXR0MzRGZsb2F0IHosIFdHQzNEZmxvYXQgdykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB2ZXJ0ZXhBdHRyaWI0ZnYoV0dDM0R1aW50IGluZGV4LCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1
ZXMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihXR0MzRHVpbnQg
aW5kZXgsIFdHQzNEaW50IHNpemUsIFdHQzNEZW51bSB0eXBlLCBXR0MzRGJvb2xlYW4gbm9ybWFs
aXplZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXR0MzRHNpemVpIHN0
cmlkZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdmlld3Bv
cnQoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBo
ZWlnaHQpID0gMDsKLQotICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVs
ZXRpb24uCi0gICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZUJ1ZmZlcigpID0gMDsKLSAgICB2aXJ0
dWFsIFdlYkdMSWQgY3JlYXRlRnJhbWVidWZmZXIoKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZVByb2dyYW0oKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVJlbmRlcmJ1
ZmZlcigpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlU2hhZGVyKFdHQzNEZW51bSkg
PSAwOwotICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVUZXh0dXJlKCkgPSAwOwotCi0gICAgdmly
dHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcihXZWJHTElkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUZyYW1lYnVmZmVyKFdlYkdMSWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUHJv
Z3JhbShXZWJHTElkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihX
ZWJHTElkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVNoYWRlcihXZWJHTElkKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUoV2ViR0xJZCkgPSAwOwotCi0gICAgdmly
dHVhbCB2b2lkIHNldENvbnRleHRMb3N0Q2FsbGJhY2soV2ViR3JhcGhpY3NDb250ZXh0TG9zdENh
bGxiYWNrKiBjYWxsYmFjaykge30KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2soV2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VDYWxsYmFjayogY2FsbGJhY2spIHsgfQotICAg
IC8vIEdMX0FSQl9yb2J1c3RuZXNzCi0gICAgLy8KLSAgICAvLyBUaGlzIGVudHJ5IHBvaW50IG11
c3QgcHJvdmlkZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzIHRoYW4KLSAgICAvLyB0aGUg
R0xfQVJCX3JvYnVzdG5lc3MgZXh0ZW5zaW9uOyBzcGVjaWZpY2FsbHksIHRoZSBsb3N0IGNvbnRl
eHQKLSAgICAvLyBzdGF0ZSBpcyBzdGlja3ksIHJhdGhlciB0aGFuIHJlcG9ydGVkIG9ubHkgb25j
ZS4KLSAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgeyBy
ZXR1cm4gMDsgLyogR0xfTk9fRVJST1IgKi8gfQotCi0gICAgLy8gRklYTUU6IG1ha2UgdGhpcyBm
dW5jdGlvbiBwdXJlIHZpcnR1YWwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZCBpbgotICAgIC8vIGJv
dGggY29tbWFuZCBidWZmZXIgcG9ydCBhbmQgaW4tcHJvY2VzcyBwb3J0LgotICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShXZWJHTElkIHNoYWRlcikg
eyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KLQotICAgIC8vIEdMX0NIUk9NSVVNX2lvc3VyZmFjZQot
ICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZUlPU3VyZmFjZTJEQ0hST01JVU0oV0dDM0RlbnVtIHRh
cmdldCwgV0dDM0RpbnQgd2lkdGgsIFdHQzNEaW50IGhlaWdodCwgV0dDM0R1aW50IGlvU3VyZmFj
ZUlkLCBXR0MzRHVpbnQgcGxhbmUpIHsgfQotCi0gICAgLy8gR0xfRVhUX3RleHR1cmVfc3RvcmFn
ZQotICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlMkRFWFQoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RpbnQgbGV2ZWxzLCBXR0MzRHVpbnQgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0KSB7IH0KLQot
Ci0jaWYgV0VCS0lUX1VTSU5HX1NLSUEKLSAgICBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdMSW50
ZXJmYWNlKCk7Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotI2lmIFdFQktJVF9VU0lOR19TS0lBCi0g
ICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBvbkNyZWF0ZUdyR0xJbnRlcmZhY2UoKSB7IHJldHVy
biAwOyB9Ci0jZW5kaWYKLQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgor
I2luY2x1ZGUgIi4uLy4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViTm9uQ29weWFibGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L3BsYXRmb3JtL1dlYk5vbkNvcHlhYmxlLmgKaW5kZXggYjBiZDQ1NjVjMjM4YjBhNjlmNDdjMTY2
NWE3NWQ5ODRmMjYxNzdmZC4uZDQ0ZDI4MDJjNmY2NDA3MDYzYWI2NWU3MjA4YjI4YjlkZWYyY2Qx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
Tm9uQ29weWFibGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9y
bS9XZWJOb25Db3B5YWJsZS5oCkBAIC0xLDQ5ICsxLDI2IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKICAq
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2lmbmRlZiBXZWJOb25Db3B5YWJsZV9oCi0jZGVmaW5lIFdlYk5vbkNvcHlhYmxlX2gK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgYmFzZSBjbGFzcyB0byBleHRlbmQgZnJvbSBp
ZiB5b3UgZG8gbm90IHN1cHBvcnQgY29weWluZy4KLWNsYXNzIFdlYk5vbkNvcHlhYmxlIHsKLXBy
b3RlY3RlZDoKLSAgICBXZWJOb25Db3B5YWJsZSgpIHsgfQotICAgIH5XZWJOb25Db3B5YWJsZSgp
IHsgfQotCi1wcml2YXRlOgotICAgIFdlYk5vbkNvcHlhYmxlKGNvbnN0IFdlYk5vbkNvcHlhYmxl
Jik7Ci0gICAgV2ViTm9uQ29weWFibGUmIG9wZXJhdG9yPShjb25zdCBXZWJOb25Db3B5YWJsZSYp
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgorI2luY2x1ZGUgIi4uLy4u
Ly4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJOb25Db3B5YWJsZS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128783</attachid>
            <date>2012-02-24 12:31:40 -0800</date>
            <delta_ts>2012-02-24 14:26:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79301-20120224123139.patch</filename>
            <type>text/plain</type>
            <size>56800</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4Y2JiMzJkNGU2MTZh
YjM4MDNlODVlYTY2Mzk1ODcwNmVkZjBiMTQ1Li5jYmVjNWFjZGY5ZmExZjcxNjMzZGRhYTZjOGE0
MjMzN2EwMzM0N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMi0wMi0yMiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJHcmFwaGljc0NvbnRleHQzRCBoZWFkZXIgaW50byB0aGUgUGxhdGZvcm0gZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTMwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmVzIFdlYkdyYXBoaWNzQ29udGV4dDNEIGFuZCBXZWJOb25Db3B5YWJsZSAod2hpY2ggV0dDM0Qg
ZGVwZW5kcyBvbikuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAg
KEFjdGl2ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0
cmlidXRlczo6QXR0cmlidXRlcyk6CisgICAgICAgIChBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdl
YkdyYXBoaWNzQ29udGV4dExvc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEOjpXZWJHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2s6On5XZWJHcmFwaGlj
c0NvbnRleHRMb3N0Q2FsbGJhY2spOgorICAgICAgICAoV2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VD
YWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpXZWJHcmFw
aGljc0Vycm9yTWVzc2FnZUNhbGxiYWNrOjp+V2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VDYWxsYmFj
ayk6CisgICAgICAgIChXZWJHcmFwaGljc1N3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9N
SVVNKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OldlYkdyYXBoaWNz
U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU06On5XZWJHcmFwaGljc1N3YXBCdWZm
ZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKToKKyAgICAgICAgKFdlYkdyYXBoaWNzTWVtb3J5
QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0Q6OldlYkdyYXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0NIUk9NSVVNOjp+V2ViR3JhcGhpY3NNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNr
Q0hST01JVU0pOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6fldlYkdy
YXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6
OnNldE1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpzZXRQYXJlbnRDb250ZXh0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OnNldFN3YXBCdWZmZXJzQ29tcGxldGVDYWxs
YmFja0NIUk9NSVVNKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OnJh
dGVMaW1pdE9mZnNjcmVlbkNvbnRleHRDSFJPTUlVTSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNB
UkIpOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRl
ZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0Q6OnRleEltYWdlSU9TdXJmYWNlMkRDSFJPTUlVTSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkRFWFQpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRDo6b25DcmVhdGVHckdMSW50ZXJmYWNlKToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViTm9uQ29weWFibGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViTm9uQ29weWFibGUuaC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJOb25Db3B5YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vbkNv
cHlhYmxlOjpXZWJOb25Db3B5YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vbkNvcHlhYmxl
Ojp+V2ViTm9uQ29weWFibGUpOgorCiAyMDEyLTAyLTIzICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIFdlYipMYXllciogaGVh
ZGVycyBpbnRvIFBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDgyZGRlOWQ0
YTM3NzA2NjM1MmI5NjE3YzYxNjE1NmFhYTFmZTFjMDkuLmFhOTU2OGZiODRmODM5MDcyOGM2MjVi
MDQwMWQ0ZDBlYjhiZDljNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMDItMjIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIE1vdmUgV2ViR3JhcGhpY3NDb250ZXh0M0QgaGVhZGVyIGlu
dG8gdGhlIFBsYXRmb3JtIGRpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNb3ZlcyBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgV2ViTm9uQ29w
eWFibGUgKHdoaWNoIFdHQzNEIGRlcGVuZHMgb24pLgorCisgICAgICAgICogcHVibGljL3BsYXRm
b3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dl
Yk5vbkNvcHlhYmxlLmg6CisKIDIwMTItMDItMjQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBkZXByZWNhdGVkIGFuZCB1
bnVzZWQgV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmluaXRpYWxpemUgY2FsbApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0u
Z3lwaQppbmRleCBiMDc2Y2I4MjU1YTNkYjQwNDY4MzdjMWFiYzFjYzIzZjY4ZjlmOWY0Li5hODM4
NTMwNWIwNGRhYjI4M2YwYWI0MTljZTQzNGY5YjliYmYzNmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
UGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lw
aQpAQCAtNDIsMTAgKzQyLDEyIEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZs
b2F0UG9pbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZsb2F0UXVhZC5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViRmxvYXRSZWN0LmgnLAorICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYk1pbWVSZWdpc3RyeS5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTm9u
Q29weWFibGUuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlBvaW50LmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQcml2YXRlUHRyLmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZWN0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
ODA0ZDUzYmExYzNlMDhmZTk4NGU4MzVkYTJkNjkwZDc3MGYyZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTAsMCArMSw0MTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdyYXBoaWNzQ29udGV4dDNEX2gKKyNkZWZpbmUg
V2ViR3JhcGhpY3NDb250ZXh0M0RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVk
ZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworI2RlZmluZSBV
U0VfV0dDM0RfVFlQRVMKKworI2lmIFdFQktJVF9VU0lOR19TS0lBCitzdHJ1Y3QgR3JHTEludGVy
ZmFjZTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gV0dDM0QgdHlwZXMgbWF0
Y2ggdGhlIGNvcnJlc3BvbmRpbmcgR0wgdHlwZXMgYXMgZGVmaW5lZCBpbiBPcGVuR0wgRVMgMi4w
CisvLyBoZWFkZXIgZmlsZSBnbDIuaCBmcm9tIGtocm9ub3Mub3JnLgordHlwZWRlZiBjaGFyIFdH
QzNEY2hhcjsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEZW51bTsKK3R5cGVkZWYgdW5zaWdu
ZWQgY2hhciBXR0MzRGJvb2xlYW47Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0MzRGJpdGZpZWxk
OwordHlwZWRlZiBzaWduZWQgY2hhciBXR0MzRGJ5dGU7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIg
V0dDM0R1Ynl0ZTsKK3R5cGVkZWYgc2hvcnQgV0dDM0RzaG9ydDsKK3R5cGVkZWYgdW5zaWduZWQg
c2hvcnQgV0dDM0R1c2hvcnQ7Cit0eXBlZGVmIGludCBXR0MzRGludDsKK3R5cGVkZWYgaW50IFdH
QzNEc2l6ZWk7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0MzRHVpbnQ7Cit0eXBlZGVmIGZsb2F0
IFdHQzNEZmxvYXQ7Cit0eXBlZGVmIGZsb2F0IFdHQzNEY2xhbXBmOwordHlwZWRlZiBzaWduZWQg
bG9uZyBpbnQgV0dDM0RpbnRwdHI7Cit0eXBlZGVmIHNpZ25lZCBsb25nIGludCBXR0MzRHNpemVp
cHRyOworCisvLyBUeXBlZGVmIGZvciBzZXJ2ZXItc2lkZSBvYmplY3RzIGxpa2UgT3BlbkdMIHRl
eHR1cmVzIGFuZCBwcm9ncmFtIG9iamVjdHMuCit0eXBlZGVmIFdHQzNEdWludCBXZWJHTElkOwor
CisvLyBUaGlzIGludGVyZmFjZSBhYnN0cmFjdHMgdGhlIG9wZXJhdGlvbnMgcGVyZm9ybWVkIGJ5
IHRoZQorLy8gR3JhcGhpY3NDb250ZXh0M0QgaW4gb3JkZXIgdG8gaW1wbGVtZW50IFdlYkdMLiBO
ZWFybHkgYWxsIG9mIHRoZQorLy8gbWV0aG9kcyBleHBvc2VkIG9uIHRoaXMgaW50ZXJmYWNlIG1h
cCBkaXJlY3RseSB0byBlbnRyeSBwb2ludHMgaW4KKy8vIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4K
Ky8vCisvLyBDcmVhdGluZyBhIFdlYkdyYXBoaWNzQ29udGV4dCBkb2VzIG5vdCBtYWtlIGl0IGN1
cnJlbnQsIG9yIGd1YXJhbnRlZQorLy8gdGhhdCB0aGUgY29udGV4dCBoYXMgYmVlbiBjcmVhdGVk
IHN1Y2Nlc3NmdWxseS4gVXNlCisvLyBtYWtlQ29udGV4dEN1cnJlbnQoKSB0byBjb21wbGV0ZSBp
bml0aWFsaXphdGlvbiBvZiB0aGUgY29udGV4dCwgdHJlYXRpbmcKKy8vIGEgZmFsc2UgcmV0dXJu
IHZhbHVlIGFzIGluZGljYXRpb24gdGhhdCB0aGUgY29udGV4dCBjb3VsZCBub3QgYmUgY3JlYXRl
ZAorLy8gc3VjY2Vzc2Z1bGx5LgorY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0QgOiBwdWJsaWMg
V2ViTm9uQ29weWFibGUgeworcHVibGljOgorICAgIC8vIFJldHVybiB2YWx1ZSBmcm9tIGdldEFj
dGl2ZVVuaWZvcm0gYW5kIGdldEFjdGl2ZUF0dHJpYi4KKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7
CisgICAgICAgIFdlYlN0cmluZyBuYW1lOworICAgICAgICBXR0MzRGVudW0gdHlwZTsKKyAgICAg
ICAgV0dDM0RpbnQgc2l6ZTsKKyAgICB9OworCisgICAgLy8gQ29udGV4dCBjcmVhdGlvbiBhdHRy
aWJ1dGVzLgorICAgIHN0cnVjdCBBdHRyaWJ1dGVzIHsKKyAgICAgICAgQXR0cmlidXRlcygpCisg
ICAgICAgICAgICA6IGFscGhhKHRydWUpCisgICAgICAgICAgICAsIGRlcHRoKHRydWUpCisgICAg
ICAgICAgICAsIHN0ZW5jaWwodHJ1ZSkKKyAgICAgICAgICAgICwgYW50aWFsaWFzKHRydWUpCisg
ICAgICAgICAgICAsIHByZW11bHRpcGxpZWRBbHBoYSh0cnVlKQorICAgICAgICAgICAgLCBjYW5S
ZWNvdmVyRnJvbUNvbnRleHRMb3NzKHRydWUpCisgICAgICAgICAgICAsIG5vRXh0ZW5zaW9ucyhm
YWxzZSkKKyAgICAgICAgICAgICwgc2hhcmVSZXNvdXJjZXModHJ1ZSkKKyAgICAgICAgICAgICwg
Zm9yVXNlT25Bbm90aGVyVGhyZWFkKGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAg
ICAgICBib29sIGFscGhhOworICAgICAgICBib29sIGRlcHRoOworICAgICAgICBib29sIHN0ZW5j
aWw7CisgICAgICAgIGJvb2wgYW50aWFsaWFzOworICAgICAgICBib29sIHByZW11bHRpcGxpZWRB
bHBoYTsKKyAgICAgICAgYm9vbCBjYW5SZWNvdmVyRnJvbUNvbnRleHRMb3NzOworICAgICAgICBi
b29sIG5vRXh0ZW5zaW9uczsKKyAgICAgICAgYm9vbCBzaGFyZVJlc291cmNlczsKKyAgICAgICAg
Ym9vbCBmb3JVc2VPbkFub3RoZXJUaHJlYWQ7CisgICAgfTsKKworICAgIGNsYXNzIFdlYkdyYXBo
aWNzQ29udGV4dExvc3RDYWxsYmFjayB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIHZv
aWQgb25Db250ZXh0TG9zdCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB+V2ViR3JhcGhpY3NDb250
ZXh0TG9zdENhbGxiYWNrKCkgeyB9CisgICAgfTsKKworICAgIGNsYXNzIFdlYkdyYXBoaWNzRXJy
b3JNZXNzYWdlQ2FsbGJhY2sgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIG9u
RXJyb3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYsIFdHQzNEaW50KSA9IDA7CisgICAgICAgIHZp
cnR1YWwgfldlYkdyYXBoaWNzRXJyb3JNZXNzYWdlQ2FsbGJhY2soKSB7IH0KKyAgICB9OworCisg
ICAgY2xhc3MgV2ViR3JhcGhpY3NTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTSB7
CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRl
KCkgPSAwOworICAgICAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc1N3YXBCdWZmZXJzQ29tcGxldGVD
YWxsYmFja0NIUk9NSVVNKCkgeyB9CisgICAgfTsKKworICAgIGNsYXNzIFdlYkdyYXBoaWNzTWVt
b3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBvbk1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkKHNpemVfdCBncHVSZXNv
dXJjZVNpemVJbkJ5dGVzKSA9IDA7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwg
fldlYkdyYXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKCkgeyB9
CisgICAgfTsKKworICAgIC8vIFRoaXMgZGVzdHJ1Y3RvciBuZWVkcyB0byBiZSBwdWJsaWMgc28g
dGhhdCB1c2luZyBjbGFzc2VzIGNhbiBkZXN0cm95IGluc3RhbmNlcyBpZiBpbml0aWFsaXphdGlv
biBmYWlscy4KKyAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc0NvbnRleHQzRCgpIHsgfQorCisgICAg
Ly8gTWFrZXMgdGhlIE9wZW5HTCBjb250ZXh0IGN1cnJlbnQgb24gdGhlIGN1cnJlbnQgdGhyZWFk
LiBSZXR1cm5zIHRydWUgb24KKyAgICAvLyBzdWNjZXNzLgorICAgIHZpcnR1YWwgYm9vbCBtYWtl
Q29udGV4dEN1cnJlbnQoKSA9IDA7CisKKyAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgcmVnaW9uIGlu
dG8gd2hpY2ggdGhpcyBXZWJHcmFwaGljc0NvbnRleHQzRCBpcyByZW5kZXJpbmcuCisgICAgLy8g
UmV0dXJucyB0aGUgbGFzdCB2YWx1ZXMgcGFzc2VkIHRvIHJlc2hhcGUoKS4KKyAgICB2aXJ0dWFs
IGludCB3aWR0aCgpID0gMDsKKyAgICB2aXJ0dWFsIGludCBoZWlnaHQoKSA9IDA7CisKKyAgICAv
LyBSZXNpemVzIHRoZSByZWdpb24gaW50byB3aGljaCB0aGlzIFdlYkdyYXBoaWNzQ29udGV4dDNE
IGlzIGRyYXdpbmcuCisgICAgdmlydHVhbCB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9zZXRWaXNpYmlsaXR5IC0gQ2hhbmdlcyB0
aGUgdmlzaWJpbGl0eSBvZiB0aGUgYmFja2J1ZmZlcgorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNp
YmlsaXR5Q0hST01JVU0oYm9vbCB2aXNpYmxlKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9n
cHVfbWVtb3J5X21hbmFnZXIgLSBzZXRzIGNhbGxiYWNrIHRvIG9ic2VydmUgY2hhbmdlcyB0byBt
ZW1vcnkgYWxsb2NhdGlvbiBsaW1pdHMuCisgICAgdmlydHVhbCB2b2lkIHNldE1lbW9yeUFsbG9j
YXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb25D
aGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTSogY2FsbGJhY2spIHsgfQorCisgICAgLy8gUXVlcnkgd2hl
dGhlciBpdCBpcyBidWlsdCBvbiB0b3Agb2YgY29tcGxpYW50IEdMRVMyIGltcGxlbWVudGF0aW9u
LgorICAgIHZpcnR1YWwgYm9vbCBpc0dMRVMyQ29tcGxpYW50KCkgPSAwOworCisgICAgdmlydHVh
bCBib29sIHNldFBhcmVudENvbnRleHQoV2ViR3JhcGhpY3NDb250ZXh0M0QqIHBhcmVudENvbnRl
eHQpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAvLyBIZWxwZXIgZm9yIHNvZnR3YXJlIGNvbXBv
c2l0aW5nIHBhdGguIFJlYWRzIGJhY2sgdGhlIGZyYW1lIGJ1ZmZlciBpbnRvCisgICAgLy8gdGhl
IG1lbW9yeSByZWdpb24gcG9pbnRlZCB0byBieSAicGl4ZWxzIiB3aXRoIHNpemUgImJ1ZmZlclNp
emUiLiBJdCBpcworICAgIC8vIGV4cGVjdGVkIHRoYXQgdGhlIHN0b3JhZ2UgZm9yICJwaXhlbHMi
IGNvdmVycyAoNCAqIHdpZHRoICogaGVpZ2h0KSBieXRlcy4KKyAgICAvLyBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KKyAgICB2aXJ0dWFsIGJvb2wgcmVhZEJhY2tGcmFtZWJ1ZmZlcih1bnNpZ25l
ZCBjaGFyKiBwaXhlbHMsIHNpemVfdCBidWZmZXJTaXplLCBXZWJHTElkIGZyYW1lYnVmZmVyLCBp
bnQgd2lkdGgsIGludCBoZWlnaHQpID0gMDsKKworICAgIC8vIFJldHVybnMgdGhlIGlkIG9mIHRo
ZSB0ZXh0dXJlIHdoaWNoIGlzIHVzZWQgZm9yIHN0b3JpbmcgdGhlIGNvbnRlbnRzIG9mCisgICAg
Ly8gdGhlIGZyYW1lYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRleHQuIFRoaXMgdGV4
dHVyZSBpcyBhY2Nlc3NpYmxlCisgICAgLy8gYnkgdGhlIGdwdS1iYXNlZCBwYWdlIGNvbXBvc2l0
b3IuCisgICAgdmlydHVhbCBXZWJHTElkIGdldFBsYXRmb3JtVGV4dHVyZUlkKCkgPSAwOworCisg
ICAgLy8gQ29waWVzIHRoZSBjb250ZW50cyBvZiB0aGUgb2ZmLXNjcmVlbiByZW5kZXIgdGFyZ2V0
IHVzZWQgYnkgdGhlIFdlYkdMCisgICAgLy8gY29udGV4dCB0byB0aGUgY29ycmVzcG9uZGluZyB0
ZXh0dXJlIHVzZWQgYnkgdGhlIGNvbXBvc2l0b3IuCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
ZXh0dXJlKCkgPSAwOworCisgICAgLy8gR0xfQ0hST01JVU1fcG9zdF9zdWJfYnVmZmVyIC0gQ29w
aWVzIHBhcnQgb2YgdGhlIGJhY2sgYnVmZmVyIHRvIHRoZSBmcm9udCBidWZmZXIuCisgICAgdmly
dHVhbCB2b2lkIHBvc3RTdWJCdWZmZXJDSFJPTUlVTShpbnQgeCwgaW50IHksIGludCB3aWR0aCwg
aW50IGhlaWdodCkgPSAwOworCisgICAgLy8gU3ludGhlc2l6ZXMgYW4gT3BlbkdMIGVycm9yIHdo
aWNoIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBhCisgICAgLy8gbGF0ZXIgY2FsbCB0byBnZXRFcnJv
ci4gVGhpcyBpcyB1c2VkIHRvIGVtdWxhdGUgT3BlbkdMIEVTCisgICAgLy8gMi4wIGJlaGF2aW9y
IG9uIHRoZSBkZXNrdG9wIGFuZCB0byBlbmZvcmNlIGFkZGl0aW9uYWwgZXJyb3IKKyAgICAvLyBj
aGVja2luZyBtYW5kYXRlZCBieSBXZWJHTC4KKyAgICAvLworICAgIC8vIFBlciB0aGUgYmVoYXZp
b3Igb2YgZ2xHZXRFcnJvciwgdGhpcyBzdG9yZXMgYXQgbW9zdCBvbmUKKyAgICAvLyBpbnN0YW5j
ZSBvZiBhbnkgZ2l2ZW4gZXJyb3IsIGFuZCByZXR1cm5zIHRoZW0gZnJvbSBjYWxscyB0bworICAg
IC8vIGdldEVycm9yIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuCisgICAgdmlydHVhbCB2
b2lkIHN5bnRoZXNpemVHTEVycm9yKFdHQzNEZW51bSkgPSAwOworCisgICAgdmlydHVhbCBib29s
IGlzQ29udGV4dExvc3QoKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9tYXBfc3ViCisgICAg
dmlydHVhbCB2b2lkKiBtYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdldCwg
V0dDM0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIFdHQzNEZW51bSBhY2Nlc3Mp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oY29uc3Qg
dm9pZCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0Rp
bnQgeW9mZnNldCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51
bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBXR0MzRGVudW0gYWNjZXNzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVubWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKGNvbnN0IHZvaWQqKSA9IDA7CisK
KyAgICAvLyBHTF9DSFJPTUlVTV9yZXF1ZXN0X2V4dGVuc2lvbgorICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGdldFJlcXVlc3RhYmxlRXh0ZW5zaW9uc0NIUk9NSVVNKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0RXh0ZW5zaW9uQ0hST01JVU0oY29uc3QgY2hhciopID0gMDsKKworICAgIC8v
IEdMX0NIUk9NSVVNX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlCisgICAgdmlydHVhbCB2b2lkIGJs
aXRGcmFtZWJ1ZmZlckNIUk9NSVVNKFdHQzNEaW50IHNyY1gwLCBXR0MzRGludCBzcmNZMCwgV0dD
M0RpbnQgc3JjWDEsIFdHQzNEaW50IHNyY1kxLCBXR0MzRGludCBkc3RYMCwgV0dDM0RpbnQgZHN0
WTAsIFdHQzNEaW50IGRzdFgxLCBXR0MzRGludCBkc3RZMSwgV0dDM0RiaXRmaWVsZCBtYXNrLCBX
R0MzRGVudW0gZmlsdGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZUNIUk9NSVVNKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEc2l6ZWkgc2FtcGxl
cywgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVp
IGhlaWdodCkgPSAwOworCisgICAgLy8gR0xfQ0hST01JVU1fc3dhcGJ1ZmZlcnNfY29tcGxldGVf
Y2FsbGJhY2sKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNr
Q0hST01JVU0oV2ViR3JhcGhpY3NTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTSog
Y2FsbGJhY2spIHsgfQorCisgICAgLy8gR0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5f
Y29udGV4dAorICAgIHZpcnR1YWwgdm9pZCByYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hST01J
VU0oKSB7IH0KKworICAgIC8vIFRoZSBlbnRyeSBwb2ludHMgYmVsb3cgbWFwIGRpcmVjdGx5IHRv
IHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KKyAgICAvLyBTZWU6IGh0dHA6Ly93d3cua2hyb25vcy5v
cmcvcmVnaXN0cnkvZ2xlcy8KKyAgICAvLyBhbmQ6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvb3Bl
bmdsZXMvc2RrL2RvY3MvbWFuLworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKFdHQzNE
ZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFNoYWRlcihXZWJHTElk
IHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRy
aWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0Rj
aGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRCdWZmZXIoV0dDM0RlbnVtIHRh
cmdldCwgV2ViR0xJZCBidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1lYnVm
ZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIHJlbmRl
cmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShXR0MzRGVudW0gdGFy
Z2V0LCBXZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihX
R0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBXR0MzRGNsYW1wZiBibHVlLCBXR0Mz
RGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uKFdHQzNE
ZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0ZShX
R0MzRGVudW0gbW9kZVJHQiwgV0dDM0RlbnVtIG1vZGVBbHBoYSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBibGVuZEZ1bmMoV0dDM0RlbnVtIHNmYWN0b3IsIFdHQzNEZW51bSBkZmFjdG9yKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBzcmNSR0IsIFdH
QzNEZW51bSBkc3RSR0IsIFdHQzNEZW51bSBzcmNBbHBoYSwgV0dDM0RlbnVtIGRzdEFscGhhKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShXR0MzRGVudW0gdGFyZ2V0LCBXR0Mz
RHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIFdHQzNEZW51bSB1c2FnZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBidWZmZXJTdWJEYXRhKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50
cHRyIG9mZnNldCwgV0dDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFdHQzNEZW51bSBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKFdHQzNEZW51bSB0
YXJnZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBtYXNrKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoV0dDM0RjbGFtcGYgcmVkLCBXR0MzRGNs
YW1wZiBncmVlbiwgV0dDM0RjbGFtcGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJEZXB0aChXR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhclN0ZW5jaWwoV0dDM0RpbnQgcykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjb2xvck1hc2soV0dDM0Rib29sZWFuIHJlZCwgV0dDM0Rib29sZWFuIGdyZWVuLCBXR0MzRGJv
b2xlYW4gYmx1ZSwgV0dDM0Rib29sZWFuIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNv
bXBpbGVTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb21w
cmVzc2VkVGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwg
V0dDM0RpbnQgYm9yZGVyLCBXR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChXR0MzRGVudW0g
dGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0RpbnQgeW9mZnNl
dCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQs
IFdHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlUZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBX
R0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEaW50IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6
ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29weVRleFN1YkltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQg
bGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdHQzNEaW50IHgsIFdH
QzNEaW50IHksIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGN1bGxGYWNlKFdHQzNEZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRlcHRoRnVuYyhXR0MzRGVudW0gZnVuYykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXB0
aE1hc2soV0dDM0Rib29sZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhSYW5n
ZShXR0MzRGNsYW1wZiB6TmVhciwgV0dDM0RjbGFtcGYgekZhcikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkZXRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBXZWJHTElkIHNoYWRlcikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFdHQzNEdWludCBpbmRleCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzKFdHQzNEZW51bSBtb2RlLCBXR0MzRGludCBmaXJzdCwg
V0dDM0RzaXplaSBjb3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3RWxlbWVudHMoV0dD
M0RlbnVtIG1vZGUsIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEZW51bSB0eXBlLCBXR0MzRGludHB0
ciBvZmZzZXQpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoV0dDM0RlbnVtIGNhcCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVpbnQg
aW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSByZW5k
ZXJidWZmZXJ0YXJnZXQsIFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRh
Y2htZW50LCBXR0MzRGVudW0gdGV4dGFyZ2V0LCBXZWJHTElkIHRleHR1cmUsIFdHQzNEaW50IGxl
dmVsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZyb250RmFjZShXR0MzRGVudW0gbW9kZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZU1pcG1hcChXR0MzRGVudW0gdGFyZ2V0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlQXR0cmliKFdlYkdMSWQgcHJvZ3JhbSwgV0dD
M0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3Rp
dmVVbmlmb3JtKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoV2ViR0xJZCBwcm9ncmFt
LCBXR0MzRHNpemVpIG1heENvdW50LCBXR0MzRHNpemVpKiBjb3VudCwgV2ViR0xJZCogc2hhZGVy
cykgPSAwOworICAgIHZpcnR1YWwgV0dDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xJZCBw
cm9ncmFtLCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
Qm9vbGVhbnYoV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGJvb2xlYW4qIHZhbHVlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldEJ1ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNE
ZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBBdHRyaWJ1dGVz
IGdldENvbnRleHRBdHRyaWJ1dGVzKCkgPSAwOworICAgIHZpcnR1YWwgV0dDM0RlbnVtIGdldEVy
cm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYoV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVu
dCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0SW50ZWdlcnYoV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RlbnVtIHBu
YW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRQcm9n
cmFtSW5mb0xvZyhXZWJHTElkIHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJ
ZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVySW5mb0xvZyhXZWJHTElkIHNoYWRlcikgPSAwOworCisg
ICAgLy8gVEJECisgICAgLy8gdm9pZCBnbEdldFNoYWRlclByZWNpc2lvbkZvcm1hdCAoR0xlbnVt
IHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250eXBlLCBHTGludCogcmFuZ2UsIEdMaW50KiBw
cmVjaXNpb24pOworCisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdlYkdM
SWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U3RyaW5nKFdHQzNEZW51
bSBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcmZ2KFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVt
IHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VW5pZm9y
bWZ2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQqIHZhbHVl
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihXZWJHTElkIHByb2dyYW0sIFdH
QzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIGNvbnN0IFdHQzNEY2hhciog
bmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRWZXJ0ZXhBdHRyaWJmdihXR0MzRHVpbnQg
aW5kZXgsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliaXYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0gcG5h
bWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0RzaXplaXB0ciBnZXRW
ZXJ0ZXhBdHRyaWJPZmZzZXQoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0gcG5hbWUpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBoaW50KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBtb2Rl
KSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNCdWZmZXIoV2ViR0xJZCBidWZmZXIp
ID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0VuYWJsZWQoV0dDM0RlbnVtIGNhcCkg
PSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoV2ViR0xJZCBmcmFt
ZWJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUHJvZ3JhbShXZWJHTElk
IHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1JlbmRlcmJ1ZmZlcihX
ZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzU2hh
ZGVyKFdlYkdMSWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNUZXh0
dXJlKFdlYkdMSWQgdGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5lV2lkdGgoV0dD
M0RmbG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShXZWJHTElkIHByb2dy
YW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGl4ZWxTdG9yZWkoV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGludCBwYXJhbSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb2x5Z29uT2Zmc2V0KFdHQzNE
ZmxvYXQgZmFjdG9yLCBXR0MzRGZsb2F0IHVuaXRzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQg
cmVhZFBpeGVscyhXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0Mz
RHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIHZvaWQqIHBp
eGVscykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VTaGFkZXJDb21waWxlcigpID0g
MDsKKworICAgIHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXpl
aSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQ292ZXJhZ2UoV0dDM0RjbGFt
cGYgdmFsdWUsIFdHQzNEYm9vbGVhbiBpbnZlcnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Np
c3NvcihXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVp
IGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaGFkZXJTb3VyY2UoV2ViR0xJZCBzaGFk
ZXIsIGNvbnN0IFdHQzNEY2hhciogc3RyaW5nKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5j
aWxGdW5jKFdHQzNEZW51bSBmdW5jLCBXR0MzRGludCByZWYsIFdHQzNEdWludCBtYXNrKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUoV0dDM0RlbnVtIGZhY2UsIFdH
QzNEZW51bSBmdW5jLCBXR0MzRGludCByZWYsIFdHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0ZW5jaWxNYXNrKFdHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHN0ZW5jaWxNYXNrU2VwYXJhdGUoV0dDM0RlbnVtIGZhY2UsIFdHQzNEdWludCBtYXNrKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcChXR0MzRGVudW0gZmFpbCwgV0dDM0RlbnVt
IHpmYWlsLCBXR0MzRGVudW0genBhc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9w
U2VwYXJhdGUoV0dDM0RlbnVtIGZhY2UsIFdHQzNEZW51bSBmYWlsLCBXR0MzRGVudW0gemZhaWws
IFdHQzNEZW51bSB6cGFzcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHRleEltYWdlMkQoV0dD
M0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
V0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEaW50IGJvcmRlciwgV0dD
M0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOwor
CisgICAgdmlydHVhbCB2b2lkIHRleFBhcmFtZXRlcmYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0Rl
bnVtIHBuYW1lLCBXR0MzRGZsb2F0IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleFBh
cmFtZXRlcmkoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCBwYXJh
bSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHRleFN1YkltYWdlMkQoV0dDM0RlbnVtIHRhcmdl
dCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdH
QzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVudW0gZm9ybWF0LCBXR0Mz
RGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFmKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdW5pZm9ybTFmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwg
Y29uc3QgV0dDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkoV0dD
M0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9y
bTFpdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RpbnQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmKFdHQzNEaW50IGxvY2F0aW9uLCBX
R0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MmZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGZsb2F0
KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaShXR0MzRGludCBsb2NhdGlvbiwg
V0dDM0RpbnQgeCwgV0dDM0RpbnQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMml2
KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGludCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2YoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNE
ZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3Qg
V0dDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2koV0dDM0RpbnQg
bG9jYXRpb24sIFdHQzNEaW50IHgsIFdHQzNEaW50IHksIFdHQzNEaW50IHopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTNpdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3Vu
dCwgY29uc3QgV0dDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRmKFdH
QzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6
LCBXR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RmbG9hdCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGkoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgs
IFdHQzNEaW50IHksIFdHQzNEaW50IHosIFdHQzNEaW50IHcpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTRpdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3Qg
V0dDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJpeDJmdihXR0Mz
RGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgV0dDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1h
dHJpeDNmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgV0dDM0Rib29sZWFu
IHRyYW5zcG9zZSwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybU1hdHJpeDRmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwg
V0dDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCB1c2VQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB2YWxpZGF0ZVByb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMWYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGZsb2F0IHgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMWZ2KFdHQzNEdWludCBpbmRleCwg
Y29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjJmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHkpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2KFdHQzNEdWludCBpbmRleCwgY29uc3Qg
V0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNm
KFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQg
eikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoV0dDM0R1aW50IGluZGV4
LCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4
QXR0cmliNGYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dD
M0RmbG9hdCB6LCBXR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliNGZ2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoV0dDM0R1aW50IGluZGV4LCBXR0Mz
RGludCBzaXplLCBXR0MzRGVudW0gdHlwZSwgV0dDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0dDM0RzaXplaSBzdHJpZGUsIFdHQzNE
aW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KFdHQzNEaW50
IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICAvLyBTdXBwb3J0IGZvciBidWZmZXIgY3JlYXRpb24gYW5kIGRlbGV0aW9uLgorICAg
IHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVCdWZmZXIoKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZUZyYW1lYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVQcm9n
cmFtKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVSZW5kZXJidWZmZXIoKSA9IDA7
CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNoYWRlcihXR0MzRGVudW0pID0gMDsKKyAgICB2
aXJ0dWFsIFdlYkdMSWQgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVCdWZmZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGcmFtZWJ1
ZmZlcihXZWJHTElkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVByb2dyYW0oV2ViR0xJ
ZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJidWZmZXIoV2ViR0xJZCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVTaGFkZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVUZXh0dXJlKFdlYkdMSWQpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZXh0TG9zdENhbGxiYWNrKFdlYkdyYXBoaWNzQ29udGV4dExvc3RDYWxsYmFjayogY2Fs
bGJhY2spIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhXZWJH
cmFwaGljc0Vycm9yTWVzc2FnZUNhbGxiYWNrKiBjYWxsYmFjaykgeyB9CisgICAgLy8gR0xfQVJC
X3JvYnVzdG5lc3MKKyAgICAvLworICAgIC8vIFRoaXMgZW50cnkgcG9pbnQgbXVzdCBwcm92aWRl
IHNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MgdGhhbgorICAgIC8vIHRoZSBHTF9BUkJfcm9i
dXN0bmVzcyBleHRlbnNpb247IHNwZWNpZmljYWxseSwgdGhlIGxvc3QgY29udGV4dAorICAgIC8v
IHN0YXRlIGlzIHN0aWNreSwgcmF0aGVyIHRoYW4gcmVwb3J0ZWQgb25seSBvbmNlLgorICAgIHZp
cnR1YWwgV0dDM0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSB7IHJldHVybiAwOyAv
KiBHTF9OT19FUlJPUiAqLyB9CisKKyAgICAvLyBGSVhNRTogbWFrZSB0aGlzIGZ1bmN0aW9uIHB1
cmUgdmlydHVhbCBvbmNlIGl0IGlzIGltcGxlbWVudGVkIGluCisgICAgLy8gYm90aCBjb21tYW5k
IGJ1ZmZlciBwb3J0IGFuZCBpbi1wcm9jZXNzIHBvcnQuCisgICAgdmlydHVhbCBXZWJTdHJpbmcg
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFdlYkdMSWQgc2hhZGVyKSB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQorCisgICAgLy8gR0xfQ0hST01JVU1faW9zdXJmYWNlCisgICAgdmlydHVh
bCB2b2lkIHRleEltYWdlSU9TdXJmYWNlMkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0Mz
RGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0LCBXR0MzRHVpbnQgaW9TdXJmYWNlSWQsIFdHQzNE
dWludCBwbGFuZSkgeyB9CisKKyAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9yYWdlCisgICAgdmly
dHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZl
bHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQorCisKKyNpZiBXRUJL
SVRfVVNJTkdfU0tJQQorICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsK
KyNlbmRpZgorCitwcm90ZWN0ZWQ6CisjaWYgV0VCS0lUX1VTSU5HX1NLSUEKKyAgICB2aXJ0dWFs
IEdyR0xJbnRlcmZhY2UqIG9uQ3JlYXRlR3JHTEludGVyZmFjZSgpIHsgcmV0dXJuIDA7IH0KKyNl
bmRpZgorCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk5vbkNvcHlhYmxlLmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk5vbkNvcHlhYmxlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjBiZDQ1NjVjMjM4YjBhNjlmNDdjMTY2NWE3NWQ5ODRmMjYxNzdmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTm9uQ29weWFibGUuaApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJOb25Db3B5YWJsZV9oCisjZGVmaW5lIFdlYk5vbkNvcHlh
YmxlX2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEEgYmFzZSBjbGFzcyB0byBleHRlbmQg
ZnJvbSBpZiB5b3UgZG8gbm90IHN1cHBvcnQgY29weWluZy4KK2NsYXNzIFdlYk5vbkNvcHlhYmxl
IHsKK3Byb3RlY3RlZDoKKyAgICBXZWJOb25Db3B5YWJsZSgpIHsgfQorICAgIH5XZWJOb25Db3B5
YWJsZSgpIHsgfQorCitwcml2YXRlOgorICAgIFdlYk5vbkNvcHlhYmxlKGNvbnN0IFdlYk5vbkNv
cHlhYmxlJik7CisgICAgV2ViTm9uQ29weWFibGUmIG9wZXJhdG9yPShjb25zdCBXZWJOb25Db3B5
YWJsZSYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgKaW5kZXggM2IyMTE2NDFhNDJiZGNmZGJlNTJjN2YyOTRlODcyOTc5NTgw
ZGQ2MC4uODc2YjVkOWJiYzk5Mjc0MDhlMzRlNjAyOGQwYTE4MWY3NWVkZDYzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250
ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJH
cmFwaGljc0NvbnRleHQzRC5oCkBAIC0xLDQxNSArMSwyNiBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CiAg
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgV2ViR3JhcGhpY3NDb250ZXh0M0RfaAotI2RlZmluZSBXZWJHcmFwaGlj
c0NvbnRleHQzRF9oCi0KLSNpbmNsdWRlICJXZWJDb21tb24uaCIKLSNpbmNsdWRlICJXZWJOb25D
b3B5YWJsZS5oIgotI2luY2x1ZGUgIldlYlN0cmluZy5oIgotCi0jZGVmaW5lIFVTRV9XR0MzRF9U
WVBFUwotCi0jaWYgV0VCS0lUX1VTSU5HX1NLSUEKLXN0cnVjdCBHckdMSW50ZXJmYWNlOwotI2Vu
ZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBXR0MzRCB0eXBlcyBtYXRjaCB0aGUgY29y
cmVzcG9uZGluZyBHTCB0eXBlcyBhcyBkZWZpbmVkIGluIE9wZW5HTCBFUyAyLjAKLS8vIGhlYWRl
ciBmaWxlIGdsMi5oIGZyb20ga2hyb25vcy5vcmcuCi10eXBlZGVmIGNoYXIgV0dDM0RjaGFyOwot
dHlwZWRlZiB1bnNpZ25lZCBpbnQgV0dDM0RlbnVtOwotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFdH
QzNEYm9vbGVhbjsKLXR5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEYml0ZmllbGQ7Ci10eXBlZGVm
IHNpZ25lZCBjaGFyIFdHQzNEYnl0ZTsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBXR0MzRHVieXRl
OwotdHlwZWRlZiBzaG9ydCBXR0MzRHNob3J0OwotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBXR0Mz
RHVzaG9ydDsKLXR5cGVkZWYgaW50IFdHQzNEaW50OwotdHlwZWRlZiBpbnQgV0dDM0RzaXplaTsK
LXR5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEdWludDsKLXR5cGVkZWYgZmxvYXQgV0dDM0RmbG9h
dDsKLXR5cGVkZWYgZmxvYXQgV0dDM0RjbGFtcGY7Ci10eXBlZGVmIHNpZ25lZCBsb25nIGludCBX
R0MzRGludHB0cjsKLXR5cGVkZWYgc2lnbmVkIGxvbmcgaW50IFdHQzNEc2l6ZWlwdHI7Ci0KLS8v
IFR5cGVkZWYgZm9yIHNlcnZlci1zaWRlIG9iamVjdHMgbGlrZSBPcGVuR0wgdGV4dHVyZXMgYW5k
IHByb2dyYW0gb2JqZWN0cy4KLXR5cGVkZWYgV0dDM0R1aW50IFdlYkdMSWQ7Ci0KLS8vIFRoaXMg
aW50ZXJmYWNlIGFic3RyYWN0cyB0aGUgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYnkgdGhlCi0vLyBH
cmFwaGljc0NvbnRleHQzRCBpbiBvcmRlciB0byBpbXBsZW1lbnQgV2ViR0wuIE5lYXJseSBhbGwg
b2YgdGhlCi0vLyBtZXRob2RzIGV4cG9zZWQgb24gdGhpcyBpbnRlcmZhY2UgbWFwIGRpcmVjdGx5
IHRvIGVudHJ5IHBvaW50cyBpbgotLy8gdGhlIE9wZW5HTCBFUyAyLjAgQVBJLgotLy8KLS8vIENy
ZWF0aW5nIGEgV2ViR3JhcGhpY3NDb250ZXh0IGRvZXMgbm90IG1ha2UgaXQgY3VycmVudCwgb3Ig
Z3VhcmFudGVlCi0vLyB0aGF0IHRoZSBjb250ZXh0IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1
bGx5LiBVc2UKLS8vIG1ha2VDb250ZXh0Q3VycmVudCgpIHRvIGNvbXBsZXRlIGluaXRpYWxpemF0
aW9uIG9mIHRoZSBjb250ZXh0LCB0cmVhdGluZwotLy8gYSBmYWxzZSByZXR1cm4gdmFsdWUgYXMg
aW5kaWNhdGlvbiB0aGF0IHRoZSBjb250ZXh0IGNvdWxkIG5vdCBiZSBjcmVhdGVkCi0vLyBzdWNj
ZXNzZnVsbHkuCi1jbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRCA6IHB1YmxpYyBXZWJOb25Db3B5
YWJsZSB7Ci1wdWJsaWM6Ci0gICAgLy8gUmV0dXJuIHZhbHVlIGZyb20gZ2V0QWN0aXZlVW5pZm9y
bSBhbmQgZ2V0QWN0aXZlQXR0cmliLgotICAgIHN0cnVjdCBBY3RpdmVJbmZvIHsKLSAgICAgICAg
V2ViU3RyaW5nIG5hbWU7Ci0gICAgICAgIFdHQzNEZW51bSB0eXBlOwotICAgICAgICBXR0MzRGlu
dCBzaXplOwotICAgIH07Ci0KLSAgICAvLyBDb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZXMuCi0g
ICAgc3RydWN0IEF0dHJpYnV0ZXMgewotICAgICAgICBBdHRyaWJ1dGVzKCkKLSAgICAgICAgICAg
IDogYWxwaGEodHJ1ZSkKLSAgICAgICAgICAgICwgZGVwdGgodHJ1ZSkKLSAgICAgICAgICAgICwg
c3RlbmNpbCh0cnVlKQotICAgICAgICAgICAgLCBhbnRpYWxpYXModHJ1ZSkKLSAgICAgICAgICAg
ICwgcHJlbXVsdGlwbGllZEFscGhhKHRydWUpCi0gICAgICAgICAgICAsIGNhblJlY292ZXJGcm9t
Q29udGV4dExvc3ModHJ1ZSkKLSAgICAgICAgICAgICwgbm9FeHRlbnNpb25zKGZhbHNlKQotICAg
ICAgICAgICAgLCBzaGFyZVJlc291cmNlcyh0cnVlKQotICAgICAgICAgICAgLCBmb3JVc2VPbkFu
b3RoZXJUaHJlYWQoZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wg
YWxwaGE7Ci0gICAgICAgIGJvb2wgZGVwdGg7Ci0gICAgICAgIGJvb2wgc3RlbmNpbDsKLSAgICAg
ICAgYm9vbCBhbnRpYWxpYXM7Ci0gICAgICAgIGJvb2wgcHJlbXVsdGlwbGllZEFscGhhOwotICAg
ICAgICBib29sIGNhblJlY292ZXJGcm9tQ29udGV4dExvc3M7Ci0gICAgICAgIGJvb2wgbm9FeHRl
bnNpb25zOwotICAgICAgICBib29sIHNoYXJlUmVzb3VyY2VzOwotICAgICAgICBib29sIGZvclVz
ZU9uQW5vdGhlclRocmVhZDsKLSAgICB9OwotCi0gICAgY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0
TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNvbnRl
eHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5XZWJHcmFwaGljc0NvbnRleHRMb3N0Q2Fs
bGJhY2soKSB7IH0KLSAgICB9OwotCi0gICAgY2xhc3MgV2ViR3JhcGhpY3NFcnJvck1lc3NhZ2VD
YWxsYmFjayB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3Nh
Z2UoY29uc3QgV2ViU3RyaW5nJiwgV0dDM0RpbnQpID0gMDsKLSAgICAgICAgdmlydHVhbCB+V2Vi
R3JhcGhpY3NFcnJvck1lc3NhZ2VDYWxsYmFjaygpIHsgfQotICAgIH07Ci0KLSAgICBjbGFzcyBX
ZWJHcmFwaGljc1N3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNIHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvblN3YXBCdWZmZXJzQ29tcGxldGUoKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgfldlYkdyYXBoaWNzU3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hS
T01JVU0oKSB7IH0KLSAgICB9OwotCi0gICAgY2xhc3MgV2ViR3JhcGhpY3NNZW1vcnlBbGxvY2F0
aW9uQ2hhbmdlZENhbGxiYWNrQ0hST01JVU0gewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVh
bCB2b2lkIG9uTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWQoc2l6ZV90IGdwdVJlc291cmNlU2l6ZUlu
Qnl0ZXMpID0gMDsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCB+V2ViR3JhcGhp
Y3NNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQ0hST01JVU0oKSB7IH0KLSAgICB9Owot
Ci0gICAgLy8gVGhpcyBkZXN0cnVjdG9yIG5lZWRzIHRvIGJlIHB1YmxpYyBzbyB0aGF0IHVzaW5n
IGNsYXNzZXMgY2FuIGRlc3Ryb3kgaW5zdGFuY2VzIGlmIGluaXRpYWxpemF0aW9uIGZhaWxzLgot
ICAgIHZpcnR1YWwgfldlYkdyYXBoaWNzQ29udGV4dDNEKCkge30KLQotICAgIC8vIE1ha2VzIHRo
ZSBPcGVuR0wgY29udGV4dCBjdXJyZW50IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gUmV0dXJucyB0
cnVlIG9uCi0gICAgLy8gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJy
ZW50KCkgPSAwOwotCi0gICAgLy8gVGhlIHNpemUgb2YgdGhlIHJlZ2lvbiBpbnRvIHdoaWNoIHRo
aXMgV2ViR3JhcGhpY3NDb250ZXh0M0QgaXMgcmVuZGVyaW5nLgotICAgIC8vIFJldHVybnMgdGhl
IGxhc3QgdmFsdWVzIHBhc3NlZCB0byByZXNoYXBlKCkuCi0gICAgdmlydHVhbCBpbnQgd2lkdGgo
KSA9IDA7Ci0gICAgdmlydHVhbCBpbnQgaGVpZ2h0KCkgPSAwOwotCi0gICAgLy8gUmVzaXplcyB0
aGUgcmVnaW9uIGludG8gd2hpY2ggdGhpcyBXZWJHcmFwaGljc0NvbnRleHQzRCBpcyBkcmF3aW5n
LgotICAgIHZpcnR1YWwgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkgPSAwOwot
Ci0gICAgLy8gR0xfQ0hST01JVU1fc2V0VmlzaWJpbGl0eSAtIENoYW5nZXMgdGhlIHZpc2liaWxp
dHkgb2YgdGhlIGJhY2tidWZmZXIKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eUNIUk9N
SVVNKGJvb2wgdmlzaWJsZSkgPSAwOwotCi0gICAgLy8gR0xfQ0hST01JVU1fZ3B1X21lbW9yeV9t
YW5hZ2VyIC0gc2V0cyBjYWxsYmFjayB0byBvYnNlcnZlIGNoYW5nZXMgdG8gbWVtb3J5IGFsbG9j
YXRpb24gbGltaXRzLgotICAgIHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlBbGxvY2F0aW9uQ2hhbmdl
ZENhbGxiYWNrQ0hST01JVU0oV2ViR3JhcGhpY3NNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxi
YWNrQ0hST01JVU0qIGNhbGxiYWNrKSB7IH0KLQotICAgIC8vIFF1ZXJ5IHdoZXRoZXIgaXQgaXMg
YnVpbHQgb24gdG9wIG9mIGNvbXBsaWFudCBHTEVTMiBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0
dWFsIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBzZXRQ
YXJlbnRDb250ZXh0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBwYXJlbnRDb250ZXh0KSB7IHJldHVy
biBmYWxzZTsgfQotCi0gICAgLy8gSGVscGVyIGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZyBwYXRo
LiBSZWFkcyBiYWNrIHRoZSBmcmFtZSBidWZmZXIgaW50bwotICAgIC8vIHRoZSBtZW1vcnkgcmVn
aW9uIHBvaW50ZWQgdG8gYnkgInBpeGVscyIgd2l0aCBzaXplICJidWZmZXJTaXplIi4gSXQgaXMK
LSAgICAvLyBleHBlY3RlZCB0aGF0IHRoZSBzdG9yYWdlIGZvciAicGl4ZWxzIiBjb3ZlcnMgKDQg
KiB3aWR0aCAqIGhlaWdodCkgYnl0ZXMuCi0gICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3Mu
Ci0gICAgdmlydHVhbCBib29sIHJlYWRCYWNrRnJhbWVidWZmZXIodW5zaWduZWQgY2hhciogcGl4
ZWxzLCBzaXplX3QgYnVmZmVyU2l6ZSwgV2ViR0xJZCBmcmFtZWJ1ZmZlciwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KSA9IDA7Ci0KLSAgICAvLyBSZXR1cm5zIHRoZSBpZCBvZiB0aGUgdGV4dHVyZSB3
aGljaCBpcyB1c2VkIGZvciBzdG9yaW5nIHRoZSBjb250ZW50cyBvZgotICAgIC8vIHRoZSBmcmFt
ZWJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0LiBUaGlzIHRleHR1cmUgaXMgYWNj
ZXNzaWJsZQotICAgIC8vIGJ5IHRoZSBncHUtYmFzZWQgcGFnZSBjb21wb3NpdG9yLgotICAgIHZp
cnR1YWwgV2ViR0xJZCBnZXRQbGF0Zm9ybVRleHR1cmVJZCgpID0gMDsKLQotICAgIC8vIENvcGll
cyB0aGUgY29udGVudHMgb2YgdGhlIG9mZi1zY3JlZW4gcmVuZGVyIHRhcmdldCB1c2VkIGJ5IHRo
ZSBXZWJHTAotICAgIC8vIGNvbnRleHQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dHVyZSB1c2Vk
IGJ5IHRoZSBjb21wb3NpdG9yLgotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVGV4dHVyZSgpID0g
MDsKLQotICAgIC8vIEdMX0NIUk9NSVVNX3Bvc3Rfc3ViX2J1ZmZlciAtIENvcGllcyBwYXJ0IG9m
IHRoZSBiYWNrIGJ1ZmZlciB0byB0aGUgZnJvbnQgYnVmZmVyLgotICAgIHZpcnR1YWwgdm9pZCBw
b3N0U3ViQnVmZmVyQ0hST01JVU0oaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp
ID0gMDsKLQotICAgIC8vIFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJl
IHJldHVybmVkIGZyb20gYQotICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMg
dXNlZCB0byBlbXVsYXRlIE9wZW5HTCBFUwotICAgIC8vIDIuMCBiZWhhdmlvciBvbiB0aGUgZGVz
a3RvcCBhbmQgdG8gZW5mb3JjZSBhZGRpdGlvbmFsIGVycm9yCi0gICAgLy8gY2hlY2tpbmcgbWFu
ZGF0ZWQgYnkgV2ViR0wuCi0gICAgLy8KLSAgICAvLyBQZXIgdGhlIGJlaGF2aW9yIG9mIGdsR2V0
RXJyb3IsIHRoaXMgc3RvcmVzIGF0IG1vc3Qgb25lCi0gICAgLy8gaW5zdGFuY2Ugb2YgYW55IGdp
dmVuIGVycm9yLCBhbmQgcmV0dXJucyB0aGVtIGZyb20gY2FsbHMgdG8KLSAgICAvLyBnZXRFcnJv
ciBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGFkZGVkLgotICAgIHZpcnR1YWwgdm9pZCBzeW50aGVz
aXplR0xFcnJvcihXR0MzRGVudW0pID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRM
b3N0KCkgPSAwOwotCi0gICAgLy8gR0xfQ0hST01JVU1fbWFwX3N1YgotICAgIHZpcnR1YWwgdm9p
ZCogbWFwQnVmZmVyU3ViRGF0YUNIUk9NSVVNKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50cHRy
IG9mZnNldCwgV0dDM0RzaXplaXB0ciBzaXplLCBXR0MzRGVudW0gYWNjZXNzKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHVubWFwQnVmZmVyU3ViRGF0YUNIUk9NSVVNKGNvbnN0IHZvaWQqKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkKiBtYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0oV0dDM0RlbnVtIHRh
cmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQs
IFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVudW0gZm9ybWF0LCBX
R0MzRGVudW0gdHlwZSwgV0dDM0RlbnVtIGFjY2VzcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1
bm1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShjb25zdCB2b2lkKikgPSAwOwotCi0gICAgLy8gR0xf
Q0hST01JVU1fcmVxdWVzdF9leHRlbnNpb24KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRSZXF1
ZXN0YWJsZUV4dGVuc2lvbnNDSFJPTUlVTSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEV4dGVuc2lvbkNIUk9NSVVNKGNvbnN0IGNoYXIqKSA9IDA7Ci0KLSAgICAvLyBHTF9DSFJPTUlV
TV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZQotICAgIHZpcnR1YWwgdm9pZCBibGl0RnJhbWVidWZm
ZXJDSFJPTUlVTShXR0MzRGludCBzcmNYMCwgV0dDM0RpbnQgc3JjWTAsIFdHQzNEaW50IHNyY1gx
LCBXR0MzRGludCBzcmNZMSwgV0dDM0RpbnQgZHN0WDAsIFdHQzNEaW50IGRzdFkwLCBXR0MzRGlu
dCBkc3RYMSwgV0dDM0RpbnQgZHN0WTEsIFdHQzNEYml0ZmllbGQgbWFzaywgV0dDM0RlbnVtIGZp
bHRlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1w
bGVDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRHNpemVpIHNhbXBsZXMsIFdHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0g
MDsKLQotICAgIC8vIEdMX0NIUk9NSVVNX3N3YXBidWZmZXJzX2NvbXBsZXRlX2NhbGxiYWNrCi0g
ICAgdmlydHVhbCB2b2lkIHNldFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKFdl
YkdyYXBoaWNzU3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0qIGNhbGxiYWNrKSB7
IH0KLQotICAgIC8vIEdMX0NIUk9NSVVNX3JhdGVfbGltaXRfb2Zmc2NyZWVuX2NvbnRleHQKLSAg
ICB2aXJ0dWFsIHZvaWQgcmF0ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVNKCkgeyB9Ci0K
LSAgICAvLyBUaGUgZW50cnkgcG9pbnRzIGJlbG93IG1hcCBkaXJlY3RseSB0byB0aGUgT3BlbkdM
IEVTIDIuMCBBUEkuCi0gICAgLy8gU2VlOiBodHRwOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5
L2dsZXMvCi0gICAgLy8gYW5kOiBodHRwOi8vd3d3Lmtocm9ub3Mub3JnL29wZW5nbGVzL3Nkay9k
b2NzL21hbi8KLSAgICB2aXJ0dWFsIHZvaWQgYWN0aXZlVGV4dHVyZShXR0MzRGVudW0gdGV4dHVy
ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBX
ZWJHTElkIHNoYWRlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24o
V2ViR0xJZCBwcm9ncmFtLCBXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEY2hhciogbmFtZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBiaW5kQnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdM
SWQgYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihXR0MzRGVu
dW0gdGFyZ2V0LCBXZWJHTElkIGZyYW1lYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJp
bmRSZW5kZXJidWZmZXIoV0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJZCByZW5kZXJidWZmZXIpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZFRleHR1cmUoV0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJ
ZCB0ZXh0dXJlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJsZW5kQ29sb3IoV0dDM0RjbGFtcGYg
cmVkLCBXR0MzRGNsYW1wZiBncmVlbiwgV0dDM0RjbGFtcGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxw
aGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRFcXVhdGlvbihXR0MzRGVudW0gbW9kZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoV0dDM0RlbnVtIG1v
ZGVSR0IsIFdHQzNEZW51bSBtb2RlQWxwaGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRG
dW5jKFdHQzNEZW51bSBzZmFjdG9yLCBXR0MzRGVudW0gZGZhY3RvcikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShXR0MzRGVudW0gc3JjUkdCLCBXR0MzRGVudW0gZHN0
UkdCLCBXR0MzRGVudW0gc3JjQWxwaGEsIFdHQzNEZW51bSBkc3RBbHBoYSkgPSAwOwotCi0gICAg
dmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RzaXplaXB0ciBz
aXplLCBjb25zdCB2b2lkKiBkYXRhLCBXR0MzRGVudW0gdXNhZ2UpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgYnVmZmVyU3ViRGF0YShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludHB0ciBvZmZzZXQs
IFdHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOwotCi0gICAgdmlydHVh
bCBXR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhXR0MzRGVudW0gdGFyZ2V0KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKFdHQzNEYml0ZmllbGQgbWFzaykgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhckNvbG9yKFdHQzNEY2xhbXBmIHJlZCwgV0dDM0RjbGFtcGYgZ3JlZW4s
IFdHQzNEY2xhbXBmIGJsdWUsIFdHQzNEY2xhbXBmIGFscGhhKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyRGVwdGgoV0dDM0RjbGFtcGYgZGVwdGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJTdGVuY2lsKFdHQzNEaW50IHMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29sb3JNYXNr
KFdHQzNEYm9vbGVhbiByZWQsIFdHQzNEYm9vbGVhbiBncmVlbiwgV0dDM0Rib29sZWFuIGJsdWUs
IFdHQzNEYm9vbGVhbiBhbHBoYSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVy
KFdlYkdMSWQgc2hhZGVyKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY29tcHJlc3NlZFRleElt
YWdlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5h
bGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEaW50IGJv
cmRlciwgV0dDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdHQzNEc2l6
ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRHNpemVp
IGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb3B5
VGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBX
R0MzRHNpemVpIGhlaWdodCwgV0dDM0RpbnQgYm9yZGVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGNvcHlUZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0Mz
RGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBX
R0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShXR0MzRGVudW0gbW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZXB0aEZ1
bmMoV0dDM0RlbnVtIGZ1bmMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKFdHQzNE
Ym9vbGVhbiBmbGFnKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlcHRoUmFuZ2UoV0dDM0RjbGFt
cGYgek5lYXIsIFdHQzNEY2xhbXBmIHpGYXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
U2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2ViR0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZShXR0MzRGVudW0gY2FwKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVpbnQgaW5kZXgpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZHJhd0FycmF5cyhXR0MzRGVudW0gbW9kZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNEc2l6ZWkg
Y291bnQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51bSBtb2Rl
LCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9
IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKFdHQzNEZW51bSBjYXApID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2go
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0gcmVuZGVyYnVmZmVydGFy
Z2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1
ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dD
M0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2UoV0dDM0RlbnVtIG1vZGUpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAoV0dDM0RlbnVtIHRhcmdldCkgPSAwOwotCi0gICAgdmly
dHVhbCBib29sIGdldEFjdGl2ZUF0dHJpYihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRl
eCwgQWN0aXZlSW5mbyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShX
ZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RzaXpl
aSBtYXhDb3VudCwgV0dDM0RzaXplaSogY291bnQsIFdlYkdMSWQqIHNoYWRlcnMpID0gMDsKLSAg
ICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgY29u
c3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEJvb2xlYW52KFdH
QzNEZW51bSBwbmFtZSwgV0dDM0Rib29sZWFuKiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUs
IFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgQXR0cmlidXRlcyBnZXRDb250ZXh0
QXR0cmlidXRlcygpID0gMDsKLSAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRFcnJvcigpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCog
dmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51
bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEludGVn
ZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGdldFByb2dyYW1pdihXZWJHTElkIHByb2dyYW0sIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2co
V2ViR0xJZCBwcm9ncmFtKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZh
bHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldFNoYWRlcml2KFdlYkdMSWQgc2hhZGVyLCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coV2ViR0xJZCBzaGFkZXIpID0gMDsKLQotICAgIC8vIFRCRAot
ICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51bSBzaGFkZXJ0eXBl
LCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCogcHJlY2lzaW9uKTsK
LQotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikg
PSAwOwotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldFRleFBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihXZWJHTElk
IHByb2dyYW0sIFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtaXYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGludCBsb2Nh
dGlvbiwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBXR0MzRGludCBnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoV0dDM0R1aW50IGluZGV4LCBXR0Mz
RGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdl
dFZlcnRleEF0dHJpYml2KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGlu
dCogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIFdHQzNEc2l6ZWlwdHIgZ2V0VmVydGV4QXR0cmli
T2Zmc2V0KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lKSA9IDA7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgaGludChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gbW9kZSkgPSAwOwotICAg
IHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzQnVmZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7Ci0gICAg
dmlydHVhbCBXR0MzRGJvb2xlYW4gaXNFbmFibGVkKFdHQzNEZW51bSBjYXApID0gMDsKLSAgICB2
aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0ZyYW1lYnVmZmVyKFdlYkdMSWQgZnJhbWVidWZmZXIpID0g
MDsKLSAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9
IDA7Ci0gICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIoV2ViR0xJZCByZW5k
ZXJidWZmZXIpID0gMDsKLSAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1NoYWRlcihXZWJHTElk
IHNoYWRlcikgPSAwOwotICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzVGV4dHVyZShXZWJHTElk
IHRleHR1cmUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKFdHQzNEZmxvYXQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFy
YW0pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9seWdvbk9mZnNldChXR0MzRGZsb2F0IGZhY3Rv
ciwgV0dDM0RmbG9hdCB1bml0cykgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHJlYWRQaXhlbHMo
V0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWln
aHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCB2b2lkKiBwaXhlbHMpID0gMDsK
LQotICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKSA9IDA7Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKFdHQzNEY2xhbXBmIHZhbHVlLCBX
R0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoV0dDM0Rp
bnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyLCBjb25zdCBX
R0MzRGNoYXIqIHN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuYyhXR0Mz
RGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZnVu
YywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsTWFzayhXR0MzRHVpbnQgbWFzaykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGVuY2ls
TWFza1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRHVpbnQgbWFzaykgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dDM0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFpbCwgV0dD
M0RlbnVtIHpwYXNzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNlcGFyYXRlKFdH
QzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZmFpbCwgV0dDM0RlbnVtIHpmYWlsLCBXR0MzRGVudW0g
enBhc3MpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkg
d2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIsIFdHQzNEZW51bSBmb3Jt
YXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKLQotICAgIHZpcnR1
YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwg
V0dDM0RmbG9hdCBwYXJhbSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKFdH
QzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKLQot
ICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50
IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdp
ZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUs
IGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZihX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNE
ZmxvYXQqIHYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFpKFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRGludCB4KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoV0dDM0Rp
bnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4
LCBXR0MzRGZsb2F0IHkpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RmbG9hdCogdikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgs
IFdHQzNEaW50IHkpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpdihXR0MzRGludCBs
b2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RpbnQqIHYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdH
QzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0z
ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQq
IHYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpKFdHQzNEaW50IGxvY2F0aW9uLCBX
R0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEaW50KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZihXR0MzRGludCBsb2Nh
dGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9h
dCB3KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoV0dDM0RpbnQgbG9jYXRpb24s
IFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5
LCBXR0MzRGludCB6LCBXR0MzRGludCB3KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00
aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV0dDM0RpbnQgbG9jYXRp
b24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoV0dD
M0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2Us
IGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm1N
YXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVh
biB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihXR0Mz
RHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjJmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQq
IHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihXR0MzRHVpbnQg
aW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHopID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliM2Z2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dD
M0RmbG9hdCogdmFsdWVzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmKFdH
QzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwg
V0dDM0RmbG9hdCB3KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmdihXR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKFdHQzNEdWludCBpbmRleCwgV0dDM0RpbnQgc2l6ZSwg
V0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9vbGVhbiBub3JtYWxpemVkLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdHQzNEc2l6ZWkgc3RyaWRlLCBXR0MzRGludHB0ciBvZmZz
ZXQpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydChXR0MzRGludCB4LCBXR0MzRGlu
dCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOwotCi0gICAgLy8g
U3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4KLSAgICB2aXJ0dWFsIFdl
YkdMSWQgY3JlYXRlQnVmZmVyKCkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFt
ZWJ1ZmZlcigpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpID0gMDsK
LSAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOwotICAgIHZpcnR1
YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dDM0RlbnVtKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJH
TElkIGNyZWF0ZVRleHR1cmUoKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVy
KFdlYkdMSWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJ
ZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMSWQpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlVGV4dHVyZShXZWJHTElkKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGV4dExv
c3RDYWxsYmFjayhXZWJHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2sqIGNhbGxiYWNrKSB7fQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhXZWJHcmFwaGljc0Vycm9y
TWVzc2FnZUNhbGxiYWNrKiBjYWxsYmFjaykgeyB9Ci0gICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MK
LSAgICAvLwotICAgIC8vIFRoaXMgZW50cnkgcG9pbnQgbXVzdCBwcm92aWRlIHNsaWdodGx5IGRp
ZmZlcmVudCBzZW1hbnRpY3MgdGhhbgotICAgIC8vIHRoZSBHTF9BUkJfcm9idXN0bmVzcyBleHRl
bnNpb247IHNwZWNpZmljYWxseSwgdGhlIGxvc3QgY29udGV4dAotICAgIC8vIHN0YXRlIGlzIHN0
aWNreSwgcmF0aGVyIHRoYW4gcmVwb3J0ZWQgb25seSBvbmNlLgotICAgIHZpcnR1YWwgV0dDM0Rl
bnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSB7IHJldHVybiAwOyAvKiBHTF9OT19FUlJP
UiAqLyB9Ci0KLSAgICAvLyBGSVhNRTogbWFrZSB0aGlzIGZ1bmN0aW9uIHB1cmUgdmlydHVhbCBv
bmNlIGl0IGlzIGltcGxlbWVudGVkIGluCi0gICAgLy8gYm90aCBjb21tYW5kIGJ1ZmZlciBwb3J0
IGFuZCBpbi1wcm9jZXNzIHBvcnQuCi0gICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0VHJhbnNsYXRl
ZFNoYWRlclNvdXJjZUFOR0xFKFdlYkdMSWQgc2hhZGVyKSB7IHJldHVybiBXZWJTdHJpbmcoKTsg
fQotCi0gICAgLy8gR0xfQ0hST01JVU1faW9zdXJmYWNlCi0gICAgdmlydHVhbCB2b2lkIHRleElt
YWdlSU9TdXJmYWNlMkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCB3aWR0aCwg
V0dDM0RpbnQgaGVpZ2h0LCBXR0MzRHVpbnQgaW9TdXJmYWNlSWQsIFdHQzNEdWludCBwbGFuZSkg
eyB9Ci0KLSAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9yYWdlCi0gICAgdmlydHVhbCB2b2lkIHRl
eFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWlu
dCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNE
aW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQotCi0KLSNpZiBXRUJLSVRfVVNJTkdfU0tJ
QQotICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKLSNlbmRpZgotCi1w
cm90ZWN0ZWQ6Ci0jaWYgV0VCS0lUX1VTSU5HX1NLSUEKLSAgICB2aXJ0dWFsIEdyR0xJbnRlcmZh
Y2UqIG9uQ3JlYXRlR3JHTEludGVyZmFjZSgpIHsgcmV0dXJuIDA7IH0KLSNlbmRpZgotCi19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4v
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJOb25Db3B5YWJs
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViTm9uQ29weWFi
bGUuaAppbmRleCBiMGJkNDU2NWMyMzhiMGE2OWY0N2MxNjY1YTc1ZDk4NGYyNjE3N2ZkLi5kNDRk
MjgwMmM2ZjY0MDcwNjNhYjY1ZTcyMDhiMjhiOWRlZjJjZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJOb25Db3B5YWJsZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYk5vbkNvcHlhYmxlLmgKQEAg
LTEsNDkgKzEsMjYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgogICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYk5vbkNv
cHlhYmxlX2gKLSNkZWZpbmUgV2ViTm9uQ29weWFibGVfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotLy8gQSBiYXNlIGNsYXNzIHRvIGV4dGVuZCBmcm9tIGlmIHlvdSBkbyBub3Qgc3VwcG9ydCBj
b3B5aW5nLgotY2xhc3MgV2ViTm9uQ29weWFibGUgewotcHJvdGVjdGVkOgotICAgIFdlYk5vbkNv
cHlhYmxlKCkgeyB9Ci0gICAgfldlYk5vbkNvcHlhYmxlKCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAg
V2ViTm9uQ29weWFibGUoY29uc3QgV2ViTm9uQ29weWFibGUmKTsKLSAgICBXZWJOb25Db3B5YWJs
ZSYgb3BlcmF0b3I9KGNvbnN0IFdlYk5vbkNvcHlhYmxlJik7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYk5vbkNvcHlhYmxlLmgiCg==
</data>
<flag name="review"
          id="131269"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>